Q5.E3 如何在SRT流当中插入空包 - H.264/H.265视频编码器 - kiloview

Q5.E3 如何在SRT流当中插入空包

12/29/2025 / 341

问题背景

客户发现即使将码率设置为CBR, 也依然出现码率无法达到设置的恒定值, 询问如何插入空包,将码率固定为恒定值。

常见问题排查思路

实际编码码率可能无法始终达到设置的固定CBR的原因有:

  1. 视频内容变化 :视频中的不同场景具有不同的复杂度,这可能导致比特率波动。如果视频源的画面复杂程度低, 根据动态码率算法,那么实际的编码码率也不会太高。
  2. 网络条件 :可用的网络带宽可能会影响编码器维持恒定比特率的能力。
  3. 服务质量(QoS)设置 :如果有QoS设置,它们可能会优先考虑其他流量而不是视频流,影响比特率。
  4. 编码参数 :编码设置,如分辨率、帧率和GOP(图像组)大小,可能会影响整体码率。

Solution:

很多广播电视行业对码率有严格的控制, 要达到恒定码率, 可以对SRT流设置空包。空包(Null Packet)是一种特殊的网络数据包,其内容为空或只包含填充数据,不包含实际的有效数据。
空包通常用于以下几个目的:

  1. 维持流媒体连接: 在流媒体传输中,即使没有实际的数据传输,也需要保持连接的活跃状态。空包可以帮助维持流媒体传输的连接,确保接收端不会因为长时间没有数据而断开连接。
  2. 同步和时钟管理 :在实时流媒体传输中,空包可以帮助接收端维持时间同步。它们可能包含时间戳或同步信息,帮助接收端与发送端保持时间同步。
  3. 网络拥塞控制: 空包可以作为拥塞控制的一部分。发送端可以通过发送空包来检测网络的拥塞程度,从而调整发送速率。
  4. 错误检测和恢复: 空包可以用于检测网络错误。例如,如果接收端在预期的时间间隔内没有接收到数据包,它可以发送一个空包作为心跳包,以检测连接状态。
  5. 防止丢包: 在某些传输协议中,发送空包可以减少接收端因为连续丢包而需要重新请求数据的情况。

设置空包的操作如下:
第一步:将固件先升级到最新版本

只支持SRT和TS-UDP协议。
image.png

第二步:创建SRT流服务

填写SRT流服务配置信息, 选择需要插入的空包倍数。

注意,此处的倍数是设置的编码码率的倍数。比如设置CBR为6M,插入空包倍数为x1.5 实际的码率则为6MB*1.5=9MB。 它表明CBR可能会根据视频源的画面复杂程度和画面质量产生波动, 但是一定会将码率插到9Mbps,从某种程度上来说就是固定的码率。

插入空包最多插到50MB。
image.png

第三步:点击 OK, 保存配置, 开启推流
image.png


版权所有:长沙千视电子科技有限公司 | 网站地图 | 湘ICP备14007359号-1
Back to Top
申请借测