如何在Android中使用MediaCodec Api通过RTP解码H264

如何在Android中使用MediaCodec Api通过RTP解码H264,android,h.264,rtp,android-mediacodec,Android,H.264,Rtp,Android Mediacodec,我正在做一个关于现场视频广播的项目 在发送方,我使用android手机捕获视频,获取H264帧,并按照相应的RFC->RFC 3984将其打包成RTP数据包。派遣方没有任何问题。该流由VLC接收和播放 在接收器端,同样是android手机。我成功地得到了RTP数据包。它是一个包含H264动态负载的RTP流。我想解压这个流,解码它,并使用android mediacodec API在接收器端呈现它。有人请指导我如何实现这一点 谢谢。您需要将RTP数据包从UDP中解包,并将每个帧传递给MediaCo

我正在做一个关于现场视频广播的项目

在发送方,我使用android手机捕获视频,获取H264帧,并按照相应的RFC->RFC 3984将其打包成RTP数据包。派遣方没有任何问题。该流由VLC接收和播放

在接收器端,同样是android手机。我成功地得到了RTP数据包。它是一个包含H264动态负载的RTP流。我想解压这个流,解码它,并使用android mediacodec API在接收器端呈现它。有人请指导我如何实现这一点


谢谢。

您需要将RTP数据包从UDP中解包,并将每个帧传递给MediaCodec。如果您为MediaCodec设置了视频视图,您将获得所需的内容,这就是我将尝试执行的操作,并使用结果更新您。

您需要通过输入参数集和正确的nalu头来解包。这是一个相对简单的小文档,我不能分享我的代码,但我可以分享我的硬件android解码器的东西,这是在前一篇文章:


这就是在实时中解码h.264所需的全部操作,其余部分由android完成。

您是否能够在设备上播放h.264流?i、 这是一个一般性的“如何播放原始视频”问题,还是RTP用例特有的问题?我无法播放接收到的数据。。。我不知道怎么做。。。。你可以把它看作是一种问题,也可以作为我的向导。下面有一些例子。您可以尝试类似于
ExtractMpegFramesTest
的方法,但不使用
MediaExtractor
从您的网络向其提供NAL单元。您需要以某种方式向其提供SPS/PPS(可能相关:)。您有任何结果吗?我很想知道这是怎么回事