由于项目中需要用到将其他协议转换到rtsp服务中,进行代理转发
其中实现了,媒体文件和网络流的RTSP传输。
主要问题,媒体文件的解析,需要进行h264裸流的NALU处理
pushFrame()需要确保RFC6184进行预处理
int find_h264_iframe(unsigned char *data,unsigned int length)
{
int have_next_nal = 0;
int ret = 0;
int k = 0;
int find_iframe_exit = 0;
while(find_iframe_exit == 0)
{
if((k + 4) > length)
{
break;
}
if((*(data + k) == 0) && (*(data + 1 + k) == 0) && (*(data + 2 + k) == 0) && (*(data + 3 + k) == 1))
{
have_next_nal = 0;