首先说明一下nalu的格式:
nalu由三个部分组成:开始码(0x01000000)+nalu头+nalu数据。
使用live555 testrtspclient那个例子来接收rtp流,接收到的nalu是没有开始码的,
需要自己加上起始码,然后喂个ffmepg的packet.data,然后就可以解码了,
将sps,pps补偿给ffmepg:
在ffmpeg解码其他nalu之前,需要将h264视频流的 sps,pps补偿给ffmepg,这两个东西也是nalu
在rtsp的连接过程中,describe命令响应那里,可以拿到sps,pps,拿到的是使用了base64编码的
需要进行base64解码,解码出来的sps,pps是没有起始码的nalu,需要自己加上起始码,
然后喂给ffmepg的packet.data,然后解码这两个nalu即可,这样ffmepg就知道了视频的宽度高度
这些信息了,这样就可以解码后面的nalu视频流数据了。