手动生成“空”的H264 P帧

6

如果一个p帧在当前解码的视频中不改变任何像素(即没有运动矢量、没有其他变化),我们称之为空白帧。

我需要能够在请求时手动将空白的p帧插入到视频流中(需要以恒定的帧速率向流媒体客户端发送帧,但是流媒体服务器上的帧源可以提供不同/较低的帧速率的帧)。

因此,我需要能够正确地形成表示当前分辨率下空白p帧的字节序列(我想知道还需要哪些参数?)

理想情况下,我更喜欢有一种与编码器无关的解决方案,因为我使用两个不同的编码器:通过Nvidia Video SDK使用nvenc和通过FFmpeg使用x264。

我应该去哪里寻找?


1
这个问题对于stackoverflow来说太过宽泛了。为了指导你朝正确的方向前进,可以研究一下h264比特流解析、VCL和CABAC编码以及SKIP宏块。 - szatmary
@szatmary 好的,我会研究一下 FFmpeg 的!对于两个编码器来说,它应该基本相同,是吧? - leavittx
还有,刚刚发现这个:h264bitstream - leavittx
你找到解决办法了吗? - David Hogan
@DavidQHogan 抱歉晚回复。我记不太清了,但可能只需将两个(或多个)相同的帧顺序提供给h264编码器,然后查看其字节流输出。 - leavittx
1个回答

0

我认为有一个专门用于数据填充的h264 nal单元(nal_unit_type: 12 : filler_data_rbsp( ))。这可能对你有用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接