【发布时间】:2013-04-08 09:05:10
【问题描述】:
我最近在 Android 应用中播放视频时遇到了很多困难。有问题的视频是一个 M3U8 文件,该文件又链接到一系列辅助 M3U8,每个辅助 M3U8 都有一个分量 MPEG-TS 视频文件的列表,以及一个包含 AAC 格式音频分量的单个 M3U8 文件。我在让 M3U8 合作时遇到了一些麻烦,但现在似乎工作正常。
很遗憾,音频比视频晚了大约一秒。这种滞后既存在于我自己的包含 MediaPlayer 的 Activity 中,也存在于启动指向流的 Android 的默认视频播放器中。播放中还经常出现视觉卡顿或损坏。使用 VLC Beta 播放或在此应用的 iPhone 版本中播放时均不存在任何问题,因此视频文件本身没有问题。我尝试了 Vitamio 库,这运行得更糟(更频繁的损坏,根本没有音频)。很遗憾,无法更改视频格式。
在我看来,这个问题可能是由 Android 对 MPEG-TS 的有限支持引起的 - 支持的媒体格式列表指定它使用 AAC 音频(而我假设 iOS 版本只是从.ts 文件)。解决此滞后的任何建议/解决方案?
【问题讨论】:
-
大多数 ts 文件相对于其视频有音频延迟。重新打包流(使用 ffmpeg) ffmpeg -i {input} -c copy -f mpegts out.ts 或更改生成流的编码器上的设置。
标签: android http-live-streaming mpeg2-ts