2017-04-25 994 views
5

我需要将MP4转换为带有ffmpeg的webm。 所以,我用:FFmpeg - 将MP4转换为Webm速度很慢

ffmpeg -i input.mp4 -c:v libvpx -crf 10 -b:v 1M -c:a libvorbis output.webm 

但它很长。

有没有更快?

+0

“mp4”视频的长度是多少? –

+0

在100Mo和1000Mo之间 – Luzwitz

回答

1

使用ffmpeg将电影文件从mp4转换为webm需要时间。在你的情况下,一个大小为100 MB的视频,可能需要很长时间。

使用您给出的示例加快速度的最佳方法是使用功能更强大的机器。 ffmpeg的性能是在机器的CPU功率(主要)上传递,在你的情况下,也是机器的RAM。使用更强大的机器,获得更快的转换。

具有说,如果你想更快的转换,但你不介意失去一些质量,你可以使用ffmpeg presetsultrafast

ffmpeg -i input.mp4 -preset ultrafast out.webm 
+0

您链接到的x264编码预设已过时:'ffmpeg'不再使用外部文件进行x264编码预设 - 它们是内置的。我不相信libvpx使用'-preset'。 Luzwitz想要WebM的VP8,但你的例子将H.264输出到WMV。 – LordNeckbeard

+0

@LordNeckbeard非常真实。感谢更新。 –

+0

因为libvpx不使用'-preset',所以你会得到一个警告,说它没有被使用,因为“它是某个编码器的私有选项,它实际上没有用于任何流”。 – LordNeckbeard

3

libvpx是一个相对缓慢的编码器。根据VP8 Encode Parameter Guide: Encode Quality vs. Speed,您可以使用-cpu-used选项来提高编码速度。较高的值会导致编码更快但质量更低:

将值设置为0将会产生最佳质量输出,但是会非常缓慢地输出 。使用1(默认)或2将进一步提高编码速度,但会开始对质量产生更显着的影响,并且也可能开始影响数据速率控制的准确性。设置为4或5的值将关闭“速率 失真优化”,这对质量有很大的影响,而且 大大加快了编码器的速度。

另外,似乎VA-API可以用于硬件加速VP8编码,但我没有这方面的经验。

+0

好的,谢谢!但是没有其他编码器的libvpx?更快的编码器吗? – Luzwitz

+0

@Luzwitz对于VP8,我猜你的选择是libvpx或VA-API。 – LordNeckbeard

+0

@LordNeckbeard,我面临着用ffmpeg停止录像的问题,我看到了这个答案[https://askubuntu.com/questions/436956/stop-the-recording-after-some-period-of-time]用于停止经过一段时间后,它工作正常,但我想在点击按钮后停止录制,我该怎么做?请帮忙 – Liya