MPEG-TS,Android和FFMPEG

时间:2012-02-15 04:42:03

标签: android ffmpeg h.264 mpeg mpeg-4

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

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

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

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

此致 斯登

4 个答案:

答案 0 :(得分:2)

Android 4.x拥有OpenMAX,可以使用H264和AAC播放TS。您甚至不必担心音频和视频的同步。

查看NDK中的nativemedia示例。

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

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

VIBGYOR

答案 3 :(得分:0)

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

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

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