使用Android MediaCodec使用RTSP H.264编码流
我正在尝试显示通过RTSP(RTP/H.264编码)GStreamer服务器提供的视频。我可以用VLC和ffmpeg打开流。 我已经在Java/Android中实现了RTSP和RTP。 每次我将H.264帧(=RTP的有效负载)放入MediaCodec时,我都会得到一个“MediaCodec.INFO\u重试\u稍后”关于取消MediaCodec输出缓冲区的请求 我尝试将0x0,0x0,0x0,0x1前置到H.264数据包,但这并没有解决问题。我怎样才能发现,出了什么问题。有没有一些例子可以说明如何从Android/Java上的RTP获取h.264帧,并将其传递给媒体编解码器 编辑: 我将带有FFMpeg的H.264帧转储到文件中。当我将这些文件推送到Android上的MediaCodec(设置SPS和PPS)时,它确实适用于示例RTSP流rtsp://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov 但不是为我的Gstreamer创建的RTSP流。使用Gstreamer生成的所有数据包(文件)都有一个访问单元分隔符(0x0 0x0 0x0 0x1 0x9…)。样本流没有此AUDs。在将帧传递给mediacodec之前,我尝试删除这些AUD,但仍然没有成功使用Android MediaCodec使用RTSP H.264编码流,android,h.264,rtp,Android,H.264,Rtp,我正在尝试显示通过RTSP(RTP/H.264编码)GStreamer服务器提供的视频。我可以用VLC和ffmpeg打开流。 我已经在Java/Android中实现了RTSP和RTP。 每次我将H.264帧(=RTP的有效负载)放入MediaCodec时,我都会得到一个“MediaCodec.INFO\u重试\u稍后”关于取消MediaCodec输出缓冲区的请求 我尝试将0x0,0x0,0x0,0x1前置到H.264数据包,但这并没有解决问题。我怎样才能发现,出了什么问题。有没有一些例子可以说明
谢谢你看看这两个线程,第一个线程包含一个用C#实现的去打包过程,第二个线程也解释了它。总是有RFC…谢谢,是的,我已经看过RFC了。但很明显我做错了什么。MediaCodec没有说明它的错误