-->

编码最佳实践以减少延迟

从流媒体东连接观看完整的面板, 延迟仍然很糟糕(以及你能做些什么) 在 流媒体YouTube频道.

了解有关低延迟流的更多信息 流媒体西部2020.

阅读这段录音的完整文本:

杰森·Thibeault: 如果我们假设延时是从一个玻璃到另一个玻璃, 我们知道,从获取内容到观看者消费内容这一过程中存在许多组件. 有编码. 有一个虚拟容器, 把视频从一个比特率转换成另一个比特率的东西, 一个格式或一个包到另一个. 有数字版权管理,有隐藏式字幕,中间还有各种各样的东西.

我们来讨论一下编码. 我知道有很多编码供应商都在大力推动上下文感知编码——而不是将一个配置文件应用于视频的每一帧, 但是对框架应用多个配置文件, 取决于坐标系中发生了什么. 所以,如果你有一个会说话的脑袋,那和一个在球场上踢球的人是不同的, 在编码过程中可以做哪些选择来改善延迟? 如果那个编码器在把视频从玻璃杯传送到玻璃杯时造成了一些延迟怎么办? 比如说,关于块大小有哪些最佳实践? 关于概要文件变量有哪些最佳实践?

凯西•布: 假设你的相机增加了一两帧延迟, 你的视频切换器增加了两帧延迟. 在我们的编码器上,我们使用了一些速率控制技术,它向前看四帧. 所以它在编码器中有一个四帧的缓冲区. 接收SDI信号的采集卡有缓冲器.

所以在我们开始处理视频帧之前, 我们已经拍了六帧了, 在每秒30帧的情况下,这大约是五分之一秒. 所以很容易发现在字节离开起始站点之前就有一秒或半秒的延迟.

我们所做的一些事情是我们可以决定我们不太关心利率控制. 所以我们要把它扔出窗外. 我们要关闭这个四帧,前视缓冲. 如果我们想要低延迟,我们不太关心每字节的质量效率. 所以我们愿意花更多的字节来降低延迟. 所以我们可能有更短的关键帧间隔. 所以我们发送了更多的i帧. 如果您想要尽可能低的延迟, 你只是把一些东西放进了一个近乎实时的编码器, MPEG-TS和I-Frame-only,然后把它扔到某个地方. 你会有35毫秒的延迟,这很棒, 但当我们试图提供受限带宽或大规模交付时,这就行不通了.

我认为肯定有办法在初始端调整你的编码配置文件以获得更低的延迟. 如果你从那里开始,一直到你的生产管道, 最后的净延迟很低. 如果你一开始就有很多延迟, 你会一直与之抗争的.

Marc Cymontowski: 区分故事的两个方面是很重要的——摄取方面和传递方面. 关于摄取, 您通常使用低延迟协议, 因为, 正如凯西提到的, 如果你有MPEG-TS编码器, 它是一个硬件设备,就像我们的编码器, 例如, 您可以实现非常低的延迟. 你可以把它包装在传输流中,或者你可以通过本地网络发送它,你不会有任何问题. 但一旦你通过公共互联网到达云端——无论是进行转码和重新包装,然后传送视频,还是端到端直接分发视频——这就变成了一个复杂的部分,因为你通常无法获得你希望在本地拥有的网络质量. 因此,将内容放到云端是第一个挑战.

在过去的很多情况下, RTMP已经被用来做这件事, 基于TCP的协议有很多限制因为拥塞控制和一些线路阻塞问题不能给你完全的吞吐量. 基于udp的协议(如SRT)可以更好地利用可用带宽, 但是你必须对途中发生的数据包丢失进行恢复. 但当你进入云计算领域,你想向很多人提供服务, 许多, 对于很多人来说,像MPEG-TS这样的流不是很可扩展,因为你需要传递整个数据, 对每一个人都保持线性生活. 这就是HLS繁荣的开始因为你突然重新打包数据和TS, 这很简单. 你只需要把TS分割成块然后你就可以把它做成HLS流. 当你把它分成块,把数据分成段的时候, 您可以更好地扩展,因为您可以使用缓存机制跨服务器分发文件,然后再交付. 这就是在传送端,延迟被引入的地方.

流媒体覆盖
免费的
合资格订户
现在就订阅 最新一期 过去的问题
相关文章

缓存是否仍然会影响后hls世界的延迟?

GigCasters的Casey Charvet报道, 海视科技的Marc Symontowski说, 流媒体视频联盟(Streaming Video Alliance)的杰森·蒂博(杰森Thibeault)也在考虑缓存, 延迟, 以及后分块媒体世界的内容交付.

低延迟编解码器在多大程度上减少了延迟?

GigCasters的Casey Charvet和CenturyLink的Rob Roskin讨论了新的低延迟版本对现有协议的有效性,以减少流媒体东2020的流媒体延迟.

提及的公司及供应商