Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Android MediaCodec使用RTSP H.264编码流_Android_H.264_Rtp - Fatal编程技术网

使用Android MediaCodec使用RTSP H.264编码流

使用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数据包,但这并没有解决问题。我怎样才能发现,出了什么问题。有没有一些例子可以说明

我正在尝试显示通过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,但仍然没有成功


谢谢你

看看这两个线程,第一个线程包含一个用C#实现的去打包过程,第二个线程也解释了它。总是有RFC…谢谢,是的,我已经看过RFC了。但很明显我做错了什么。MediaCodec没有说明它的错误