3

我需要使用 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,所以我想最好尽可能同时做。我应该怎么办?

4

1 回答 1

1

您可以使用参数设置 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 ...    
于 2013-06-23T11:26:25.237 回答