ffmpeg:Android 上的一些玩家对视频持续时间感到困惑

ffmpeg: Video duration confused for some players on Android

我正在使用 ffmpeg 缩小和压缩要在 Android 应用中使用的视频。 原始文件播放没有问题,也没有元数据问题。然而,当我重新编码它们时,Android 播放器能够播放它们,但显示错误的持续时间。我的应用程序正在生产中,它正在使用官方播放器实现,所以我想知道是否有办法使用 ffmpeg 或向生成的文件添加一些元数据来修复损坏。希望这是可能的,但如果不是 - 任何其他可能的修复将受到高度赞赏:)

我的 ffmpeg 命令很复杂,包括缩放和编码,但我可以确认这个问题在我这边用最简单的 ffmpeg -i video.mp4 -c:v libx264 videogen.mp4 命令是可以重现的。

如果这对参考有帮助,我将留下指向这两个文件的链接。

任何想法可能导致此问题以及如何解决它?

播放器问题展示:

video.mp4 (原创)

videogen.mp4 (重新编码)

经过一些测试,我发现播放器播放的文件具有以下元数据:

major_brand=mp42
encoder=Lavf58.24.101

所以我使用 ffmpeg -movflags use_metadata_tags 来设置工作元数据:)