C语言 如何在libav中设置sps和pps的频率

xxhby3vn  于 2023-10-16  发布在  其他
关注(0)|答案(1)|浏览(92)

我在webrc上流一个原始的h264。我面临的问题是,视频只有2或3的SPS和PPS包在文件的开始。因此,每当观众加入到中间的流,他不能看到视频。我发现ffmpeg中有一个过滤器,叫做dump_extra。我用ffmpeg的过滤器,它做instert sps和pps和视频播放时,有人从中间加入。我面临的问题是,当我试图使用这个过滤器从libav的代码只是直了不工作。我没有通过任何错误,它成功地产生了数据包,但数据包不包含sps或pps。我查看了dump_extra filter的代码,它正在将extra data字段从codeccontext转储到avpacket,但我的codeccontext extra data字段设置为null,extra data_size为零。虽然它可以用ffmpeg处理相同的h264原始视频,但用libav处理它会失败,有人能给我一些代码或解决方案吗?

jw5wzhpr

jw5wzhpr1#

我认为ffmpeg复制了第一个数据包的sps和pps(或者有sps和pps的数据包),并将其放入extradata。之后,过滤器复制该额外数据并将其放在每个nalu之前。我只需要从nalu中提取extradata并将其放入AVContextextradata字段中,然后运行dump_extra过滤器。

相关问题