如何使用ffmpeg快速将mp4转换为webm?


20

为了使用HTML5视频的网站,我必须将76个mp4文件转换为webm。我说的是10 Gb的mp4文件...我知道我可以简单地要求ffmpeg使用以下方法:

ffmpeg -i input_file.mp4 output_file.webm

当然,我将通过以下方式递归执行此操作:

find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" "${0%%.mp4}.webm"' {} \;

我什至尝试了一些在互联网上找到的东西:

ffmpeg -i input_file.mp4 -cpu-used 4 -threads 8 output_file.webm

但问题是,我花了不到一周的时间!!!我究竟做错了什么?有什么办法可以加快速度吗?如果转换为ogg,我会提高速度吗?请帮忙!!!



@LordNeckbeard,您应该根据该指南写出答案。另外,应该注意的是,与x264相比,vpx编码器像糖蜜一样缓慢,即使设置了合理的设置等。除非您愿意牺牲很多质量,否则使用它进行真正的快速编码是不可能的。
evilsoup

问题是关于兼容性的问题。这是一个小的兼容性表:{x264:IE(+)Safari(+)Chrome(+)Firefox(-)Opera(-)} {webm:IE(-)Safari(-)Chrome (+)Firefox(+)Opera(+)}我知道他们说Safari和IE占据了最大的市场份额,但我对此表示严重怀疑,并将押宝Firefox和Opera!;)
pr.nizar

@ pr.nizar感谢Cisco在BSD下发布OpenH264,firefox现在支持h.264。
Wyatt8740

Answers:


11

视频转码需要时间。它还需要更多有关编码参数的知识。ffmpeg的默认设置不太可能适合您,甚至可能不会创建可用的输出文件。

这是一个开始:

http://blog.pcode.nl/2010/10/17/encoding-webm-using-ffmpeg/

这些设置将编码为特定的平均比特率(3900kbit的视频比特率),因此比特率将出现峰值。

MP4和WebM使用不同的视频编解码器,因此没有捷径可走。视频必须进行转码。

当然,编码速度将根据帧大小,帧速率和质量设置而变化很大。对于720p编码,您可能希望在最近几年中能够在CPU上编码大约1:1(即10小时内10个小时的视频)。如果像链接中给出的示例那样进行两次ABR编码,则几乎将其翻倍。


8

加倍或减半?所以这是一个死胡同。.我不会玩比特率,我永远都不知道要从质量或大小上期待什么。

find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -vcodec libvpx -acodec libvorbis -cpu-used 5 -threads 8 "${0%%.mp4}.webm"' {} \;

我正在将它发布给将来的用户,实际上我的速度有所提高,但是我的CPU却像地狱般工作:每个内核60%到80%!现在,我认为它将花费更少的时间:3天而不是6或7天。我希望它不会分解。.^ _ ^

谢谢你,伙计!

编辑:从LordNeckbeard和neon_overload -sameq发表评论后,删除了-sameq开关 并不意味着相同的“质量”


3
-sameq并不表示“质量相同”而是已在上游删除。不要使用它。请参阅我的评论中指向您问题的链接,以获取详细的libvpx编码说明。
llogan

2
-sameq表示相同的量化器,但是不可能在h.264和VP8之间比较量化器,因此,即使这样做确实可行,如果使用它,您几乎肯定会得到错误的结果-因此请不要这样做。
thomasrutter

2
谢谢您引起我的注意!我编辑了响应。.;)实际上,我没有使用该开关,因为我发现它变得更慢了。.我什至放下了ffmpeg并使用了avconv:它的速度更快!这项工作用了一天半的时间完成:find ./ -name'* .mp4'-exec bash -c'avconv -i“ $ 0” -vcodec libvpx -acodec libvorbis -cpu-used 5 -threads 8“ $ {0 %%。mp4} .webm“'{} \; 我知道我要用此评论来转移话题,但我认为这是值得说的。^ _ ^希望它能帮助到别人!;)
pr.nizar 2013年

对于质量,我实在无法分辨原始文件和转码后的webm之间的区别:几乎是相同的音频和视频质量!
pr.nizar 2013年

1
仍然建议您设置crf或比特率值,而不要使用ffmpeg / avconv的默认值,无论使用哪种设置。
thomasrutter
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.