使用ffmpeg将FLV转码为MP4非常缓慢

3

我正在尝试支持我们网站上的网络摄像头视频录制,然后需要将其转码为MP4和WebM以支持HTML5播放。 我们的服务器上安装了ffmpeg 1.2,并且整个过程运行得相当顺利。

但是我遇到的一个问题是将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参数,我有点迷失在解决这个问题的最佳方法上。 您可以从此处下载测试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

在四核心i7 MacBook Pro上,我需要大约6秒钟的时间。当您在“-c:v libx264”之后添加“-preset superfast”时会发生什么?请注意,这通常会降低压缩效率。请提供命令的完整未剪辑控制台输出,并向我们提供有关您的硬件的一些信息。 - slhck
谢谢您的回复@slhck,它让我回过头仔细查看了ffmpeg的输出,从而给了我解决问题的线索。感谢。 - bhu Boue vidya
1个回答

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

对于所有类型的音视频输入,制定“通用”的ffmpeg设置仍然像黑魔法一样神秘......


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接