4

我正在尝试支持在我们的网站上录制网络摄像头视频,然后我需要将其转码为 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 网络摄像头.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 旋转=0 webcam.webm
4

1 回答 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

多哈。所以我在输出文件之前添加了“-vsync 2”作为最后一个参数,它很有魅力,将转码时间缩短到大约 10 秒!很高兴。

为所有类型的 a/v 输入制定“通用”ffmpeg 设置对我来说仍然像是黑魔法......

于 2013-04-12T07:47:40.940 回答