我认为标题说明了一切。
我有一个 .flv 文件,正在将其转码为 h.264 mp4 文件。源使用可变帧速率。
将文件转码为具有恒定帧速率的 .mp4 文件会生成一个几乎是转码为可变帧速率 .mp4 的相同文件两倍大小的文件,但后者根本无法在 Windows Media Player 中呈现(不幸的是,我依靠此播放器来播放这些文件)。
文件是 1920x1080 yuv420p,我应该使用其他选项(配置文件预设和级别)吗,或者 vfr mp4 文件不可能在 Windows 7 WMP 中正确播放?
答案1
好的,这是我的发现。
Windows 7 上的 Windows Media Player 确实支持可变帧速率。这一切都涉及 H.264 配置文件和级别。下表是我测试的配置文件/级别:
Profile Level Works?
High 5.2 No
High 5.0 Yes
Main 4.0 Yes
Baseline 3.0 Yes
查找性能存在一些问题,但这是另一个可以通过强制关键帧来解决的问题(http://paulherron.com/blog/forcing_keyframes_with_ffmpeg)。
希望对你有帮助 :)
PS:使用的ffmpeg命令是:
ffmpeg.exe -i input.flv -preset slow -profile:v high -level 5.0 -acodec copy -vsync 0 -pix_fmt yuv420p -filter:v "crop=1920:1080:0:0" output.mp4