[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]请问下 bat 中如何多线程调用 ffmpeg?

本帖最后由 loli 于 2020-11-2 14:15 编辑

脚本是用于批量ts转mp4
具体代码:
  1. @codepage=65001
  2. for %%a in ("*.ts") do ffmpeg -i "%%a" -threads 4 -f mp4 -codec copy "%%~na.mp4
复制代码
原代码没有 -threads 4 这个选项
我是搜索后自己添加的,说是代表4线程
但是实测没用,还是一个线程跑完再继续下一个线程

ffmpeg 显示命令行是这样
  1. ffmpeg -i "1.ts" -threads 4 -f mp4 -codec copy "1.mp4
复制代码
我想达到的效果是这样,同时运行4个ffmpeg线程
  1. ffmpeg -i "1.ts"  -f mp4 -codec copy "1.mp4
  2. ffmpeg -i "2.ts" -f mp4 -codec copy "2.mp4
  3. ffmpeg -i "3.ts"  -f mp4 -codec copy "3.mp4
  4. ffmpeg -i "4.ts" -f mp4 -codec copy "4.mp4
复制代码
依然需要等待其中一个完成再继续下一个,就是不能重复处理已经完成的任务。

另外bat不能实现的AHK能否实现?我就稍微会这两一点。

回复 3# loli


是你视频命名错了吧? 我看见你用了 "-f mp4" 应该不是 .ts 是 .mp4
有样本吗?

TOP

回复 3# loli


    是的,转封装不转码很快的

TOP

那个threads是ffmpeg的内部多线程参数
批处理不支持多线程,你这个需求只能用多进程模拟一下
每个开头加个 ...
老刘1号 发表于 2020-11-2 12:33


   
我在想不限制4线程有没有办法
就是遍历所有.ts文件
有几个就开几个ffmpeg线程
我有用过一个gui软件就是这样处理的 Medlexo Ultimate
但是他那个命令行转换出来有问题。
用上面所说才是正常的。

不过刚刚测试了下好像一个线程一个线程的也不慢,差不多和复制没太大差别,估计是参数copy没转码的原因吧。
好像也没啥必要多线程了
还是谢谢了吧

TOP

那个threads是ffmpeg的内部多线程参数
批处理不支持多线程,你这个需求只能用多进程模拟一下
每个开头加个【start "" 】试试(保留空格和引号

TOP

返回列表