ffmpeg:某些Android播放器的视频时长令人困惑 玩家问题展示:

问题描述

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

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

如果有帮助,我将保留两个文件链接

有什么想法会导致此问题以及如何解决

玩家问题展示:

video.mp4 (原始)

enter image description here

videogen.mp4 (重新编码)

enter image description here

解决方法

经过一些测试,我发现播放器正在播放以下元数据:

major_brand=mp42
encoder=Lavf58.24.101

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