我正在研究一种需要通过UDP(一种视频通话)实时传输H.264编码视频的应用程序.
最近我们改用硬件编码器,它只支持有限数量的H.264配置文件.结果,每个编码视频帧现在由单个NALu组成.更确切地说,对于IDR(关键)帧,编码器为其他帧生成SSP,PSP和单个IDR切片 - 单个非IDR切片.
现在,我的目标是将切片NALu分成几个较小的切片,因为如果NALu无法完全组装,则会丢失数据包 - 它完全丢失了.至少我需要在空间上分割切片,即将宏块的范围放入不同的NALus中.如果可能的话 - 我还想提取高质量的图层,以便可以通过更多冗余数据包(FEC)保护基础层.
注意:我不是在谈论转码.它是关于重新打包/重新格式化,定位宏块定义数据块并以不同的方式放置它们.
我现在正在尝试使用H.264标准规范和一些开源解码器代码来解析相应的数据头:SPS,PPS和编码片.这项任务似乎有可能,虽然有点棘手,但有很多技术细节.
我的问题是:这是一个已知的问题吗?是否有一些API /库正是这样做的?