val*_*ldo 11 c++ video-streaming h.264
我正在研究一种需要通过UDP(一种视频通话)实时传输H.264编码视频的应用程序.
最近我们改用硬件编码器,它只支持有限数量的H.264配置文件.结果,每个编码视频帧现在由单个NALu组成.更确切地说,对于IDR(关键)帧,编码器为其他帧生成SSP,PSP和单个IDR切片 - 单个非IDR切片.
现在,我的目标是将切片NALu分成几个较小的切片,因为如果NALu无法完全组装,则会丢失数据包 - 它完全丢失了.至少我需要在空间上分割切片,即将宏块的范围放入不同的NALus中.如果可能的话 - 我还想提取高质量的图层,以便可以通过更多冗余数据包(FEC)保护基础层.
注意:我不是在谈论转码.它是关于重新打包/重新格式化,定位宏块定义数据块并以不同的方式放置它们.
我现在正在尝试使用H.264标准规范和一些开源解码器代码来解析相应的数据头:SPS,PPS和编码片.这项任务似乎有可能,虽然有点棘手,但有很多技术细节.
我的问题是:这是一个已知的问题吗?是否有一些API /库正是这样做的?
问题是:这是一个已知问题吗?有没有一些 API/库可以做到这一点?”
据我所知,没有 API 库,但我相信您可以在源代码中找到您的解决方案,或者接近您的解决方案,这些源代码可以从 github 上的 h264bitstream 项目编译到库中:https://github。 com/aizvorski/h264bitstream/blob/master/svc_split.c 让我们知道它是如何为您服务的。当然,您必须在这里阅读一些代码,但基本解决方案或接近解决方案似乎就在那里。
| 归档时间: |
|
| 查看次数: |
1679 次 |
| 最近记录: |