我正在接收带有多路复用 H.264 视频和 AAC 音频流的 MPEG-TS(MPEG 传输流)数据包。我需要能够在 Android 手机上显示音频和视频。我的假设是我需要:
假设我当时(在 Android 2.x 中)MPEG-TS 解复用器不是操作系统的一部分,必须移植,AAC 和 H.264 解码器都是 Android 操作系统的一部分,但我不确定它们有接口(interface),允许在缓冲区中传递数据,如果它们允许相互定时同步。在最坏的情况下,这些组件也必须在这里移植。
你能给我一些建议从哪里开始吗?我在考虑 FFMPEG 移植。还有其他方法吗?
问候,
斯坦
最佳答案
Android 4.x 具有 OpenMAX,它可以播放带有 H264 和 AAC 的 TS。您甚至无需担心音频和视频的同步。
查看 NDK 中的 nativemedia 示例。
如果您想支持以前版本的 Android,那么 ffmpeg 可能是一个不错的选择,但它最多只能为您提供 RGB 或任何其他格式的解码视频帧和 PCM 中的解码音频。然后你必须自己实现渲染器和音频播放。我建议阅读本教程 - http://dranger.com/ffmpeg/ 。它不是特定于 android 的,但它会让您了解视频播放的工作原理。
关于android - MPEG-TS、Android 和 FFMPEG,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9287971/