I think the title says it all.

I have a .flv file I am transcoding to h.264 mp4 file. The source uses a variable framerate.

Transcoding the file to an .mp4 file with constant framerate generates a file of almost double size than the same file transcoded to a variable framerate .mp4 but the later does not render at all in Windows Media Player (unfortunately I depend on this player for this files).

Files are 1920x1080 yuv420p, should I play with other options (profile preset and level) or there is no chance that a vfr mp4 file will play correctly in Windows 7 WMP?

  • You probably should play with other options. VFR (from what I can tell) is rather unusual. Do you have the option to install additional codecs in order to get it playback? – Seth Apr 28 '17 at 10:27
  • @Seth I cannot relay in nothing but a default Windows 7 installation. I am making one last test, but I think the only option is to transcode the files to constant frame rate. – Super Rey Apr 28 '17 at 10:29

Ok, so here at my findings.

Windows Media Player on Windows 7 does support variable frame rate. It all involves H.264 profiles and levels. In the following table are the profiles/levels I tested:

Profile     Level   Works?
High        5.2     No
High        5.0     Yes
Main        4.0     Yes
Baseline    3.0     Yes

There was some issues with seek performance, but that is another issue that can be resolved forcing keyframes (http://paulherron.com/blog/forcing_keyframes_with_ffmpeg).

I hope you find it useful :)

P.S.: The ffmpeg command used was:

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

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.