首页 > 解决方案 > ffmpeg:Android 上的某些播放器对视频持续时间感到困惑

问题描述

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

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

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

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

球员问题展示:

视频.mp4 (原创)

在此处输入图像描述

videogen.mp4 (重新编码)

在此处输入图像描述

标签: androidfluttervideoffmpegandroid-videoview

解决方案


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

major_brand=mp42
encoder=Lavf58.24.101

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


推荐阅读