ffmpeg: Video duration confused for some players on Android

199

After some testing I found out that the player was playing fine files with the following metadata:

major_brand=mp42
encoder=Lavf58.24.101

So I used ffmpeg -movflags use_metadata_tags to set the working metadata :)

Share:
199
John
Author by

John

Updated on December 24, 2022

Comments

  • John
    John over 1 year

    I am using ffmpeg to scale down and compress videos to be used in Android app. The original files are played with no problem and have no metadata issues. When I re-encode them however, the Android player is able to play them, but displays wrong durations. My app is in production and it is using official player implementations, so I wonder if there is a way to fix the corruption using ffmpeg or adding some metadata to the generated files. Hopefully that's possible, but if not - any other possible fixes will be highly appreciated :)

    My ffmpeg command is complex, including scaling and encoding but I can confirm this issue is reproducible on my end with the simplest ffmpeg -i video.mp4 -c:v libx264 videogen.mp4 command.

    I'm leaving links to the two files if that's helpful for reference.

    Any ideas what could be causing this and how to fix it?

    Player issues showcase:

    video.mp4 (original)

    enter image description here

    videogen.mp4 (re-encoded)

    enter image description here