我需要使用ffmpeg将许多avi文件(超过100个)转换为mp4。我制作了这样的批处理文件,它可以工作。
ffmpeg.exe -i "A.avi" -s 320x240 "A.mp4"
ffmpeg.exe -i "B.avi" -s 320x240 "B.mp4"
ffmpeg.exe -i "C.avi" -s 320x240 "C.mp4"
ffmpeg.exe -i "D.avi" -s 320x240 "D.mp4"
...
问题是它们按顺序发生,而不是同时发生,因此需要花费太多时间。我的CPU是8核,64位,8G Ram,所以我想尽可能同时做它们会更好。我该怎么办?
答案 0 :(得分:2)
您可以设置ffmpeg可以与-threads
参数一起使用的最大线程数,但这并不能保证它完全使用cpu。
ffmpeg -i ... -threads 8 ...
如果您不想从批处理脚本并行运行多个转码作业,可以尝试使用start
命令启动它们。
由于您有超过100个作业,您可能希望将它们分成较小的批处理脚本,您可以并行运行。
Start_all.bat:
start batch_1.bat
start batch_2.bat
Batch_1.bat
ffmpeg -i ...
ffmpeg -i ...
ffmpeg -i ...
Batch_2.bat
ffmpeg -i ...
ffmpeg -i ...
ffmpeg -i ...