我正在尝试将视频文件从1080p格式转换为更小的240p,360p和720p格式。我目前的代码工作正常,但确实需要很长时间。我在ffmpeg.org寻求帮助,但我无法重写我当前的代码以更快地工作。
我试图添加:
-preset fast
但这不是有效的
我的代码
exec('ffmpeg -i 1080p.mp4 -s 800x480 -c:v libx264 480p.mp4 -s 640x360 -c:v libx264 360p.mp4 -s 320x240 -c:v libx264 240p.mp4');
答案 0 :(得分:0)
1)我不介意牺牲文件大小,然后你可以尝试最快的预设:
-preset ultrafast
2)还要确保你正在使用所有核心(我使用的是linux ffmpeg版本,默认情况下似乎没有这样做)通过设置:
-threads 0
这是你的最后一个命令,为每个缩减设置这些参数:
exec('ffmpeg -i 1080p.mp4 -threads 0 -preset ultrafast -s 800x480 -c:v libx264 480p.mp4 -threads 0 -preset ultrafast -s 640x360 -c:v libx264 360p.mp4 -threads 0 -preset ultrafast -s 320x240 -c:v libx264 240p.mp4');
上面的命令使我的速度加倍,但文件大小增加了一倍以上。
3)除此之外,您可能需要考虑添加更高/更快的核心CPU。使用基准here查找最佳价格/速度比。
4)如果您有支持它的intel CPU,您还可以考虑使用QuickSync支持构建ffmpeg。另外,您可以添加NVIDA视频卡并通过NVENC在卡上进行编码。硬件编码的详细信息为here。