我正在尝试解码通过RTSP流接收的H264视频帧。
我能够确定框架的开始和在RTP数据包中结束帧并重建我的视频帧。
但我没有收到来自我的RTSP会话的任何SPS,PPS数据。我在 SDP(会话描述协议)中查找字符串" sprop-parameter-sets" ,但没有。
第一个RTP数据包中的有效载荷如下:" 1c 80 00 00 01 61 9a 03 03 6a 59 ff 97 e0 a9 f6"
这表示它是一个零散的数据(" 1C" )和框架的开头(" 80" )。我复制了有效载荷数据的其余部分(前2个字节除外;#34; 1C 80")。
以下RTP数据包有"有效负载"从" 1C 00" 开始,这是帧数据的延续。我不断将有效载荷数据(前2个字节" 1C 00" 除外)添加到字节缓冲区中,用于以下所有RTP数据包。
当我得到带有效载荷的RTP数据包以" 1C 40" 开始,这是帧的结尾时,我复制了剩余的有效载荷数据(除了前2个)字节" 1C 40" )该RTP数据包进入字节缓冲区。
因此,我将视频帧重建为字节缓冲区。
然后我先将4字节 [0x00,0x00,0x00,0x01] 添加到字节缓冲区,然后发送到解码器,因为我没有收到任何SPS,PPS NAL字节。
当我将此字节缓冲区发送到解码器时,解码器在尝试初始化sws Context 时失败。
我是否正确发送了NAL字节和视频帧数据?