|
新手求教。。
现在可以收到一个RTP数据包 格式如下:
struct RTP_PACKET
{
RTP_HEADER RtpHeader; // RTP头
H264_HEADER H264Header; // H.264头
vector<BYTE> Payload; // 载荷
};
根据观察 可以发现接收到的前3包是 SPS PPS SEI 请问 这3包要怎么处理?
我接收到的这RTP数据包是属于什么流? ES ? 或者啥米?
查资料说 SPS PPS 是来初始化decode的
我就把SPS PPS 拼接起来 放在pcSPS_PPS
然后
m_CodecCtx->extradata = new uint8_t[nSPS_PPS + FF_INPUT_BUFFER_PADDING_SIZE];
m_CodecCtx->extradata_size = nSPS_PPS;
memcpy(m_CodecCtx->extradata, pcSPS_PPS, nSPS_PPS);
memset(&m_CodecCtx->extradata[nSPS_PPS], 0, FF_INPUT_BUFFER_PADDING_SIZE);
接着avcodec_open 这样对吗?
SEI 该怎么处理? 第4包是IDR 该怎么办? 对视频编码不甚了解
我直接把NAL类型是1的直接扔avcodec_decode_video2 返回是-1
求赐教 |
|
|
|
很抱歉,刚接触ffmpeg不能回答您的问题。。。。
可以请教您几个问题吗?
1)H264 NALU可以直接打包成RTP包,并且发送吗?
2)这样做和打包为mpeg-TS包有什么区别吗?
3)这些都可以在ffmpeg里面做吗?可不可以共享一些代码? |
|
|
|
|
|