解密为什么音视频流媒体直播的延迟很高

供稿:hz-xin.com     日期:2025-01-14
通信技术的发展推动了视频点播和直播业务的兴起,4G 和 5G 网络技术的进步使得流媒体技术日益重要。然而,网络技术并不能解决流媒体直播的高延迟问题。本文探讨直播中常见的现象——主播与观众间感知到的明显网络延迟。除了业务上要求的延迟直播之外,哪些因素会导致视频直播的延迟如此之高呢?

当观众通过弹幕与主播进行互动时,从看到弹幕到得到主播的响应可能需要 5 秒或更长的时间。尽管主播看到弹幕的时间与观众看到弹幕的时间相差不大,但直播系统将主播的音视频数据传输至客户端或浏览器的时间一般被称为端到端音视频延迟。

流媒体直播从音视频采集和编码到解码和播放涉及漫长的过程,需要经过主播端、流媒体服务器和观众端,这三方提供不同的功能。在这个冗长的流程中,为了确保直播质量,使用了多种技术以提高可靠性并降低系统带宽,这些手段共同导致了直播高延迟的问题。本文将从数据编码、数据传输和多端缓存三个方面解析流媒体直播端到端延迟高的原因。

视频直播应用音视频编码技术,主流方式为高级音频编码(AAC)和高级视频编码(AVC),AVC 也被称为 H.264。这一节不讨论音频编解码算法,而是深入探讨为什么需要 H.264 编码以及它如何影响直播延迟。假设需要观看一部时长为 2 小时、1080p、60FPS 的电影,如果每个像素需要 2 字节的存储,整部电影需要占用 1668.54GB 的资源。然而,实际情况下,一部电影仅占用几百 MB 或几 GB,音视频编码技术是压缩音视频数据,减少磁盘和网络带宽占用的关键。

H.264 作为视频压缩的行业标准,使用关键帧(I 帧)作为视频的全量数据,不断使用向前参考帧(P 帧)和双向参考帧(B 帧)对全量数据进行增量式修改以达到压缩目的。H.264 使用 I 帧、P 帧和 B 帧将视频数据压缩成一系列连续的视频帧,客户端在解码视频数据时会先找到视频数据的第一个关键帧,然后增量修改关键帧。如果客户端接收到的第一个视频帧是关键帧,客户端可以直接播放视频;否则,需要等待下一个关键帧才能播放。

图像组(GOP)决定了视频帧的组织方式,编码的视频流由连续的 GOP 组成,每个 GOP 都以关键帧开头。GOP 的大小影响播放端的延迟,视频占用网络带宽也与 GOP 密切相关。在通常情况下,移动端直播的 GOP 设置为 1~4 秒,但也可通过设置更长的 GOP 降低带宽占用。

本文福利:免费领取 C++ 音视频学习资料包+学习路线大纲、技术视频/代码,内容涵盖音视频开发、面试题、FFmpeg、webRTC、rtmp、hls、rtsp、ffplay、编解码、推拉流、srs 等主题。有需要的朋友可加入企鹅裙 927239107 领取。

音视频数据传输可选择不同的应用层协议,如实时消息传输协议(RTMP)和 HTTP 实时流式传输协议(HLS)。RTMP 基于 TCP,将音视频流切分为片段进行传输,音频数据段大小为 64 字节,视频数据段大小为 128 字节。使用 RTMP 协议时,数据块传输,每个数据块包含 1~18 字节的协议头,除了基本协议头,其他两个部分可以省略,传输阶段的 RTMP 协议只需要 1 字节的协议头,开销极低。

HLS 协议基于 HTTP,是苹果在 2009 年发布的码率自适应流媒体网络传输协议。当播放器获取使用 HLS 协议的拉流地址时,播放器会从拉流地址中获取 m3u8 文件,文件中包含一系列视频流切片,播放器根据文件描述依次播放各个视频流。HLS 将直播流拆分成小文件并使用 m3u8 组织,播放器根据 m3u8 描述依次播放 ts 文件。ts 文件大小影响端到端直播延迟,苹果官方推荐使用 6 秒的 ts 切片,带来至少 6 秒的延迟。使用更短切分方式会带来巨大额外开销和存储压力。

应用层协议受限于物理设备的 MTU(最大传输单元)只能分段传输音视频数据,但不同协议对数据切分粒度的差异决定了端到端网络延迟。基于流分发的 RTMP 和 HTTP-FLV 协议切分粒度较小,延迟低于 3 秒,被视为实时传输协议;而基于文件分发的 HLS 协议切分粒度较大,在实际使用中可能带来 20~30 秒的延迟。

需要注意的是,基于文件分发不等于高延迟,分片大小才是关键因素。在确保分片小的同时降低额外开销是实时流媒体传输协议需要考虑的问题。

视频直播架构链路较长,无法保证整条链路的稳定性,为提供流畅的数据传输和用户体验,服务端和客户端都会增加缓存以应对直播音视频卡顿。服务器会缓存一部分直播数据,将数据传输至客户端,在网络抖动时使用缓存中的数据保证直播流的流畅。网络状况恢复时,会重新缓存数据;客户端使用预读缓冲区提高直播质量。可以调整缓冲区大小以增加实时性,但在网络状况抖动较多时会严重影响客户端用户体验。

流媒体直播的高延迟是一个系统性工程问题,与微信视频等一对一会话相比,视频流生产方和消费方之间的链路极长,许多因素影响主播与观众的感受。带宽成本、历史惯性和网络不确定性使得只能通过不同技术解决遇到的问题,但不可避免地牺牲了用户体验。本文从数据编码、数据传输和多端缓存三个方面解析了流媒体直播端到端延迟高的原因。

在正常的直播系统中,使用 RTMP 和 HTTP-FLV 可以达到 3 秒以下的延迟,但 GOP 设置和多端缓存都会影响这一指标,延迟在 10 秒以内是正常的。最后,我们提出一些较为开放的问题供有兴趣的读者深入思考:

电脑开直播卡怎么办家里台式电脑开抖音直播为什么会那么卡有没有办法...
设置合理的码率,帧率,分辨率,关键帧间隔,音视频编码格式等参数;尽量遵循标准的视频编码方案,流媒体传输协议,对视频流进行采集,编码,解码,播放等操作。网络直播网络目前存在三种情况:无线、有线、4G。无线网络:WIFI 连接的直播受距离、环境等使用因素的影响,需要让设备尽量靠近 WIFI 信号源,避免穿墙或金属物遮挡,保持...

音视频流媒体直播工作原理,直播CDN、推流拉流、流媒体服务
直播流输出和使用CDN服务是直播流程的最后阶段。用户通过流媒体服务拉取视频流进行观看。常用的观看协议包括HTTP-FLV、HLS等,而RTMP适用于对延迟度有较高要求的情况。使用CDN服务可以分散请求压力,并提供多个观看协议的选项,但通常不包括转码服务,可能需要额外的直播转码云服务或自建视频转码软件来实现高清...

电脑直播卡顿怎么解决
3、建议关闭部分启动项:开始---运行---msconfig,一些不重要的启动项、或第三方软件程序前面的“勾选”去掉取消。4、系统方面,建议使用预装系统或纯净版系统,避免ghost版本系统兼容性和稳定性不是很好。5、电脑配置也是很重要的,如果您的电脑配置比较低,那么就会造成卡顿的情况,这个情况只能是升级性能...

科普!音视频直播推流和拉流到底是什么意思?
为了推流,音视频数据需要使用传输协议进行封装,如RTSP、RTMP、HLS等。RTMP传输的延时通常在1-3秒,适用于手机直播等实时性要求高的场景。推流后,通过Qos算法将音视频流数据推送至网络,CDN进行分发。直播场景中,网络不稳定常见,Qos算法可以保证用户观看体验。策略包括主播和播放端设置缓存,使码率均匀。

音视频直播——HTTP\/RTSP\/RTMP协议的区别
每个RTP数据报由固定头部和负载组成,负载部分可承载音频或视频数据。在直播应用中,RTMP和HLS成为广泛应用的传输协议。RTMP由于Adobe的广泛支持,适合长时间播放,且延迟较低,适用于视频会议和一般直播场景。HLS虽然在延时方面表现一般,但易于部署和实现,成为另一种流行的选择。RTMP在商业流媒体应用中提供...

音视频流媒体原理以及基础入门知识
最后,流媒体传输涉及多种协议,如RTMP、HLS,各有优缺点。RTMP基于TCP,延迟低;HLS基于HTTP,支持点播和直播,但延迟较高。优化策略包括网络优化、错误纠正(如音频FEC)以及处理网络挑战,如丢帧、卡顿和声画同步问题。总的来说,音视频流媒体是一门精细的技术,每个细节都可能影响用户体验。从编码原理...

流媒体影响视频上传吗
帧率、码率和分辨率这几个专业名词是流媒体服务器中我们经常会遇到的词,我们每天都在说降低分辨率、提高帧率码率,是因为流媒体传输中遇到的基本问题大多是通过调整这几个参数解决的,尤其是优化视频的延迟方面,这几个参数的作用真的是举足轻重。所以身为视频流媒体技术的精英分子,大家怎么可以不知道这几...

为什么视频不能快进?
1. 流式传输的视频不能快进 流式传输是一种在网络上传输音视频数据的方式。这种方式下,视频数据是分段传输的,用户只能在接收并缓冲足够的数据后才能播放。在这种情况下,快进功能可能无法实现,因为用户只能按照流媒体数据的传输速度观看视频。例如,在线直播和某些实时流媒体服务就是这种类型的视频,用户...

FLV 格式:为什么直播首选这个流媒体格式?丨音视频基础
然而,随着主流浏览器平台逐步放弃对Flash插件的支持以及移动互联网的兴起,App取代浏览器成为更多内容的载体,在短视频领域FLV的地位逐渐被MP4取代。不过,在直播领域,FLV仍然是多数直播产品的首选流媒体格式,这得益于RTMP推流和HTTP-FLV播放的低延迟特性,以及服务端普遍提供的HTTP Web服务,使得FLV能更...

流媒体音视频实践的目的和意义
2、实现高质量的传输和播放:流媒体音视频实践利用了压缩算法、网络传输协议以及音视频编解码等技术,使得高质量的音视频内容可以在网络上快速传输和播放,减少了传输延迟和数据丢失,提供更流畅、清晰的观看体验。3、多设备跨平台支持:流媒体音视频实践通常支持多种设备和平台,例如电脑、手机、平板等,...