ffmpeg 1080-240p的长时间转换

时间:2017-11-28 16:35:51

标签: php-ffmpeg

我正在尝试将视频文件从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');

1 个答案:

答案 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