2013-04-11 287 views
3

我试图支持在我们的网站上录制网络摄像头视频,然后我需要将其转码为MP4和WebM以支持HTML5播放。我在我们的服务器上安装了ffmpeg 1.2,整个过程都运行得很好。使用ffmpeg将FLV转码为MP4

我遇到的一个问题是将FLV转码为MP4。它是不可接受的慢,例如8秒的FLV大约需要2.5分钟的代码转换!

ffmpeg命令我使用的是:

 
ffmpeg -y -i webcam.flv -c:a libfaac -ac 2 -b:a 64k -ar 44100 -c:v libx264 \ 
    -b:v 350k webcam.mp4 

有这么多ffmpeg PARAMS,我有点失去了作为前锋这个问题的最好办法。你可以从这里下载测试FLV:

dropbox.com/s/hhd6uhdiuhk800w/webcam.flv

相比之下,转码的WebM大约需要5秒钟:

 
ffmpeg -y -i webcam.flv -c:a libvorbis -ac 2 -b:a 64k -ar 44100 -c:v libvpx \ 
    -b:v 350k -metadata:s:v:0 rotate=0 webcam.webm 
+0

这需要我大约6秒一四的Core i7的MacBook Pro。在'-c:v libx264'之后添加'-preset superfast'时会发生什么?请注意,这通常会降低压缩效率。请为这些命令提供完整的未切割控制台输出,并向我们提供有关您的硬件的一些信息。 – slhck 2013-04-11 19:53:04

+0

thx foryour reply @slhck,它让我回头看看ffmpeg输出,这反过来又给了我解决方案的线索。干杯。 – 2013-04-12 07:48:18

回答

4

好,我找到了答案。我曾在ffmpeg的输出细看,并注意到:

[mp4 @ 0xa0060c0] Frame rate very high for a muxer not efficiently supporting it. 
Please consider specifying a lower framerate, a different muxer or -vsync 2 

卫生署。所以我添加了“-vsync 2”作为输出文件之前的最后一个参数,并且它的工作魅力,将转码时间降低到约10秒!很高兴。

工作了“广义”的ffmpeg所有类型的A/V输入的设置还像个黑魔法我...