3

我正在接收带有多路复用 H.264 视频和 AAC 音频流的 MPEG-TS(MPEG 传输流)数据包。我需要能够在 Android 手机上显示音频和视频。我的假设是我需要:

  • MPEG-TS 解复用器
  • AAC解码器
  • H.264 解码器
  • 同步音频和视频播放

假设我当时是对的(在 Android 2.x 中)MPEG-TS 解复用器不是操作系统的一部分,必须移植,AAC 和 H.264 解码器都是 Android 操作系统的一部分,但我不确定是否它们有接口,允许在缓冲区中传递数据,如果它们允许相互定时同步。在最坏的情况下,这些组件也必须移植到这里。

你能给我一些建议从哪里开始吗?我在考虑 FFMPEG 移植。还有其他方法吗?

问候, STeN

4

4 回答 4

2

Android 4.x 有 OpenMAX,可以播放带有 H264 和 AAC 的 TS。您甚至无需担心音频和视频的同步问题。

查看 NDK 中的 nativemedia 示例。

如果您想支持以前版本的 Android,那么 ffmpeg 可能是一个不错的选择,但它可以为您提供的最大功能只是解码 RGB 或任何其他格式的视频帧和解码 PCM 中的音频。然后你必须自己实现渲染器和音频播放。我建议阅读本教程 - http://dranger.com/ffmpeg/。它不是特定于 android 的,但它会让您了解视频播放的工作原理。

于 2012-08-19T00:27:14.387 回答
1

你可以参考github上的android-ffmpeg项目。

https://github.com/guardianproject/android-ffmpeg

于 2012-02-15T04:47:06.583 回答
1

在 Gingerbread ( 2.3 ) 中,实际上您可以使用 stagefright 框架中的 MPEG TS 解析器。此外,我相信它可以很好地与 H264 和 AAC 解码器集成。MPEG TS 解析器没有在任何地方宣传,但支持默默地坐在那里。我相信他们已经在 HC 或更高版本中支持 Apple HTTP Live 流媒体,但代码也位于 Gingerbread ( 2.3 ) 代码库中。对框架稍加修改,就可以播放 http 直播流(实际上是发送 TS 包)。我想以上信息会对你有所帮助。

维焦尔

于 2012-02-15T05:33:51.447 回答
0

(免责声明:我个人参与开发下面链接的免费和开源程序)

ZShaolin http://dyne.org/software/zshaolin提供了 FFMpeg 的静态版本(库和命令行),还包含其他媒体转换工具。

它的使用可以促进脚本实验,而无需从头开始编译 FFMpeg。

于 2012-09-10T23:22:23.757 回答