H.264编码NAL/切片分割
H.264 coded NAL/slice splitting
我正在开发一个应用程序,该应用程序需要通过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让我们知道它是如何为您工作的。当然,您必须在这里阅读一些代码,但基本的解决方案或接近解决方案的解决方案似乎已经存在。
相关文章:
- 如何在C++中从字符串中分割字符
- C++映射分割错误(核心转储)
- C++为线程工作动态地分割例程
- 如何优雅地切片对象
- 由cin中的字符串中未捕获空白引起的分割错误
- 删除映射和分割错误中的一个过去结束元素
- 避免矢量中的对象切片<Base><shared_ptr>
- 在指向函数中读取变量时出现分割错误
- 从 std::vector<无符号字符>切片中提取 int?
- 在链表中的第 n 位插入显示分割错误
- 较高值 n 的分割错误(例如 n=999997)
- 专门化模板覆盖函数/避免对象切片
- 我如何告诉叮叮当当的整洁切片特定类是可以的?
- FFMPEG:sws_scale返回错误:切片参数 0, 2160 无效
- 是否可以制作没有内部分割的cgal 3d多多马因网格?
- 如何在 c++ 中进行 python 样式的字符串切片
- 尝试通过memcpy复制大尺寸浮点向量时的分割错误
- Valarray 切片数组与 'operator*' 不匹配
- 分割错误:向量中的擦除功能
- H.264编码NAL/切片分割