MJPEG RTP头信息扩展, VLC 播放 视频断开
根据 RTP 头扩展协议,对于负载类型为MJPEG的码流, 在RTP 固定头后,增加头扩展。
发现用vlc rtsp方式播放时,一会流就自己断掉了。
不加头扩展信息时,vlc 可以正常播放。
主要代码如下:
if (fRTPPayloadType == 26)
rtpHdr = 0x90000000; // RTP version 2. set X bit, mean there is header extension.
else
rtpHdr = 0x80000000; // RTP version 2. not set X bit.
rtpHdr |= (fRTPPayloadType<<16);
rtpHdr |= fSeqNo; // sequence number
fOutBuf->enqueueWord(rtpHdr);
// Note where the RTP timestamp will go.
// (We can't fill this in until we start packing payload frames.)
fTimestampPosition = fOutBuf->curPacketSize();
fOutBuf->skipBytes(4); // leave a hole for the timestamp
fOutBuf->enqueueWord(SSRC());
if (fRTPPayloadType == 26)
{
if (fIsFirstPacketInFrame)
{
fOutBuf->enqueueWord(0xFFD80000);
fIsFirstPacketInFrame = 0;
}
else
fOutBuf->enqueueWord(0xFFFF0000);
} .
有人遇到类似的问题吗?请教高手哈。