AV_CODEC_FLAG_GLOBAL_HEADER的设置问题

如果AVCodecContext中设置了AV_CODEC_FLAG_GLOBAL_HEADER标志,对于生成的视频文件(如mp4),在windows操作系统下,并以图标的方式查看该视频文件时,视频文件的图标将是视频文件的第一帧,从而起到预览的作用


以下为转载内容(http://blog.51cto.com/fengyuzaitu/2058061

http://blog.csdn.net/passionkk/article/details/75528653指出了在实时视频传输时,需要发送

SPS/PPS数据,必须设置
       param.b_repeat_headers = 1;  // 重复SPS/PPS放到关键帧前面
种种情况下,codec中不能设置AV_CODEC_FLAG_GLOBAL_HEADER标志,从上面的代码,就可以知道
如果设置了videosteam 的codec中设置了AV_CODEC_FLAG_GLOBAL_HEADER就会导致x264_param_t参数中的b_repeat_header赋值为0,
这样每个关键帧前面就不会添加SPS/PPS,如果在探测码流的时候,无法获取正确的SPS/PPS,就会导致解码失败。

0x00000001或者0x000001是起始码,0x67是sps的开头,0x68是pps的开头。


猜你喜欢

转载自blog.csdn.net/a812073479/article/details/79856262