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
来设置工作元数据:)
我正在使用 ffmpeg 缩小和压缩要在 Android 应用中使用的视频。 原始文件播放没有问题,也没有元数据问题。然而,当我重新编码它们时,Android 播放器能够播放它们,但显示错误的持续时间。我的应用程序正在生产中,它正在使用官方播放器实现,所以我想知道是否有办法使用 ffmpeg 或向生成的文件添加一些元数据来修复损坏。希望这是可能的,但如果不是 - 任何其他可能的修复将受到高度赞赏:)
我的 ffmpeg 命令很复杂,包括缩放和编码,但我可以确认这个问题在我这边用最简单的 ffmpeg -i video.mp4 -c:v libx264 videogen.mp4
命令是可以重现的。
如果这对参考有帮助,我将留下指向这两个文件的链接。
任何想法可能导致此问题以及如何解决它?
播放器问题展示:
video.mp4 (原创)经过一些测试,我发现播放器播放的文件具有以下元数据:
major_brand=mp42
encoder=Lavf58.24.101
所以我使用 ffmpeg -movflags use_metadata_tags
来设置工作元数据:)