2013-12-17 99 views
1

正在做一个直播视频广播项目。如何在Android上使用MediaCodec API解码H264通过RTP

发件人方面,我正在使用android手机捕获视频,获取H264帧并将它们打包成RTP数据包,分别在RFC> RFC 3984之后。发送方没有问题。该流被VLC接收和播放。

在接收端,再次一个Android手机。我得到了RTP包成功。它是一个包含H264动态有效载荷的RTP流。我想解开这个流并解码它,并使用android mediacodec API在接收端渲染它。有人请指导我如何实现这一点。

谢谢。

+0

您是否可以在设备上播放H.264流?即这是一个普遍的“我该如何播放原始视频”的问题,或者是您的RTP使用案例的具体情况? – fadden

+0

我无法播放正在接收的数据......我不知道该怎么做......你可以把它当作两种问题并且请指导我 – Ravi

+0

http:// bigflake上有很多例子。 COM/mediacodec /。你可以尝试一些类似'ExtractMpegFramesTest'的东西,但是从你的网络提供NAL单元而不是使用'MediaExtractor'。您需要以某种方式为其提供SPS/PPS(可能相关:http://stackoverflow.com/questions/20077240/)。 – fadden

回答

0

如果你为MediaCodec设置了一个视频视图,你需要将来自UDP的RTP数据包解包并传递给MediaCodec,这样你就可以渲染你所得到的内容,这就是我将尽力去更新你的结果

+0

你有任何结果吗?我很好奇,看看它是如何工作的 – rayryeng

1

您需要通过放入参数集和正确的nalu标头来解包。这是比较简单的吧小文件和我不能分享我的代码,这一点,但我可以分享我的硬件的Android解码器的东西这是在以前的文章:

MediaCodec crash on high quality stream

这是所有你需要做的解码^ h .264实时android完成剩下的工作。