移动端实时音视频直播如何做给延迟做优化

wecloud1314 wecloud1314     2022-12-03     250

关键词:

实际上,音视频的直播系统是一个复杂的工程系统,要做到非常低延迟的直播,需要复杂的系统工程优化和对各组件非常熟悉的掌握。
编码优化

1、确保 Codec 开启了最低延迟的设置。Codec 一般都会有低延迟优化的开关,对于 H.264 来说其效果尤其明显。很多人可能不知道 H.264 的解码器正常情况下会在显示之前缓存一定的视频帧,对于 QCIF 分辨率大小的视频(176 × 144)一般会缓存 16 帧,对于 720P 的视频则缓存 5 帧。对于第一帧的读取来说,这是一个很大的延迟。如果你的视频不是使用 H.264 来编码压缩的,确保没有使用到 B 帧,它对延迟也会有较大的影响,因为视频中 B 帧的解码依赖于前后的视频帧,会增加延迟。

 

2、编码器一般都会有码控造成的延迟,一般也叫做初始化延迟或者视频缓存检验器 VBV 的缓存大小,把它当成编码器和解码器比特流之间的缓存,在不影响视频质量的情况下可以将其设置得尽可能小也可以降低延迟。

3、如果是仅仅优化首开延迟,可以在视频帧间插入较多的关键帧,这样客户端收到视频流之后可以尽快解码。但如果需要优化传输过程中的累计延迟,尽可能少使用关键帧也就是 I 帧(GOP 变大),在保证同等视频质量的情况下,I 帧越多,码率越大,传输所需的网络带宽越多,也就意味着累计延迟可能越大。这个优化效果可能在秒级延迟的系统中不是很明显,但是在 100 ms 甚至更低延迟的系统中就会非常明显。同时,尽量使用 ACC-LC Codec 来编码音频,HE-ACC 或者 HE-ACC 2 虽然编码效率高,但是编码所需时间更长,而产生更大体积的音频造成的传输延迟对于视频流的传输来说影响更小。

4、不要使用视频 MJPEG 的视频压缩格式,至少使用不带 B 帧的 MPEG4 视频压缩格式(Simple profile),甚至最好使用 H.264 baseline profile(X264 还有一个「-tune zerolatency」的优化开关)。这样一个简单的优化可以降低延迟,因为它能够以更低的码率编码全帧率视频。

5、如果使用了 FFmpeg,降低「-probesize 」和「 -analyze duration」参数的值,这两个值用于视频帧信息监测和用于监测的时长,这两个值越大对编码延迟的影响越大,在直播场景下对于视频流来说 analyzeduration 参数甚至没有必要设定。

6、固定码率编码 CBR 可以一定程度上消除网络抖动影响,如果能够使用可变码率编码 VBR 可以节省一些不必要的网络带宽,降低一定的延迟。因此建议尽量使用 VBR 进行编码。

传输协议优化

1、在服务端节点和节点之间尽量使用 RTMP 而非基于 HTTP 的 HLS 协议进行传输,这样可以降低整体的传输延迟。这个主要针对终端用户使用 HLS 进行播放的情况。即时通讯开发

2、如果终端用户使用 RTMP 来播放,尽量在靠近推流端的收流节点进行转码,这样传输的视频流比原始视频流更小。

3、如果有必要,可以使用定制的 UDP 协议来替换 TCP 协议,省去弱网环节下的丢包重传可以降低延迟。它的主要缺点在于,基于 UDP 协议进行定制的协议的视频流的传输和分发不够通用,CDN 厂商支持的是标准的传输协议。另一个缺点在于可能出现丢包导致的花屏或者模糊(缺少关键帧的解码参考),这就要求协议定制方在 UDP 基础之上做好丢包控制。

推流、播放优化

1、考察发送端系统自带的网络 buffer 大小,系统可能在发送数据之前缓存数据,这个参数的调优也需要找到一个平衡点。

2、播放端缓存控制对于视频的首开延迟也有较大影响,如果仅优化首开延迟,可以在 0 缓存情况下在数据到达的时候立即解码。但如果在弱网环境下为了消除网络抖动造成的影响,设置一定的缓存也有必要,因此需要在直播的稳定性和首开延迟优化上找到平衡,调整优化缓冲区大小这个值。

3、播放端动态 buffer 策略,这是上面播放端缓存控制的改进版本。如果只是做 0 缓存和固定大小的缓存之间进行选择找到平衡,最终还是会选择一个固定大小的缓存,这对亿级的移动互联网终端用户来说并不公平,他们不同的网络状况决定了这个固定大小的缓存并不完全合适。因此,我们可以考虑一种「动态 buffer 策略」,在播放器开启的时候采用非常小甚至 0 缓存的策略,通过对下载首片视频的耗时来决定下一个时间片的缓存大小,同时在播放过程中实时监测当前网络,实时调整播放过程中缓存的大小。这样即可做到极低的首开时间,又可能够尽量消除网络抖动造成的影响。

以上,是我们在低延迟优化方面的部分技巧。实际上我们优化低延迟的时候并不是只关注「低延迟」,而是在保证其它条件不影响用户体验的情况下尽量做到低延迟,因此它的内容涉及到更多广泛的话题。而视频直播的优化也包含方方面面,这里只分享了其中经过我们实践的部分。

移动端实时视频直播如何做到实时秒开流畅不卡

...或电脑直播,其完整的处理环节包括但不限于:音视频采集、美颜/滤镜/特效处理、编码、封包、推流、转码、分发、解码/渲染/播放等。 移动端实时音视频直播常见的问题包括:主播在不稳定的网络环境下如何稳定... 查看详情

如何优化传输机制来实现实时音视频的超低延迟?

1、前言要在语音视频SDK中实现超低延迟,实时的语音视频传输机制是必不可少的,而FEC和ARQ的智能结合是实时语音视频传输机制的基石。在语音社交、视频社交、游戏语音和互动直播等领域,关于在语音视频实时传输中实现低... 查看详情

移动直播技术秒开优化经验

...传统设备或电脑直播,其完整的处理环节包括但不限于:音视频采集、美颜/滤镜/特效处理、编码、封包、推流、转码、分发、解码/渲染/播放等。直播常见的问题包括 主播在不稳定的网络环境下如何稳定推流?偏远地区的... 查看详情

直播体验深度优化方案——连麦互动直播

作者:吴桐,网易云信音视频实时通话项目与互动直播项目负责人。先后参与网易UU网游加速器、易信音视频实时通话等项目,在高性能服务器、网络传输技术、实时音视频多媒体与直播技术各模块有资深的实践与经验。 一... 查看详情

前端开发:h5直播起航

...播,做了下研究与探索,了解其整体实现流程,以及探讨移动端HTML5直播可行性方案。发现目前WEB上主流的视频直播方案有HLS和RTMP,移动WEB端目前以HLS为主(HLS存在延迟性问题,也可以借助 video.js 采用RTMP),PC端则以RTMP... 查看详情

IOS 设备的 Wowza 媒体服务器直播视频流延迟?

...输的实时视频时。我可以同时查看两者的视频,但是每当移动相机时,rtm 查看详情

如何建立html5直播?

...ff1a;这个部分分为也分为PC端和手机端,包括电脑上的音视频输入设备,比如摄像头录像、手机的摄像头麦克风等,由于移动直播队伍的壮大,目前主要的采集还是以移动端手机视频为主。直播流视频服务端:... 查看详情

easycvr平台如何实现超低延时的安防视频监控直播?

...展和应用。传统直播技术的延迟非常大,通过流媒体音视频技术降低直播延迟、提高实时互动效率是我们研究低延迟直播技术的初衷。我们对当前主流的直播技术做了一个简单的分析。常见的直播大部分采用RTMP、HLS、FLV协议... 查看详情

淘系技术讲解webrtc做视频直播

淘宝直播是基于WebRTC实现的一秒内的低延迟直播,低延时这一块儿我们在业内做得比较好,关于我们的方案可以分享给大家~(欢迎关注我们,后续分享更多有关淘宝直播的技术方案)本篇回答内容来自于阿里... 查看详情

手机自动播放直播

...:2014-04-1118:50:56【问题描述】:我们正在开发一个需要在移动设备中自动播放实时流媒体视频的应用程序。目前我们只能通过点击视频来开始流式传输。如何在移动端自动播放直播视频(在html内)?如何防止点击视频打开手机... 查看详情

视频直播技术:延迟优化

音视频的直播系统是一个复杂的工程系统,要做到非常低延迟的直播,需要复杂的系统工程优化和对各组件非常熟悉的掌握。下面整理几个简单常用的调优技巧:编码优化1.确保Codec开启了最低延迟的设置。Codec一般都会有低延迟... 查看详情

如何实现1080p延迟低于500ms的实时超清直播传输技术

...架,学霸君工程师袁荣喜的如何实现1080P延迟低于500ms的实时超清直播传输技术。    导语:视频直播是很多技术团队及架构师关注的问题,在实时性方面,大部分直播是准实时的,存在1-3秒延迟。本文由袁荣喜向... 查看详情

移动端互动直播(入门篇)

本文来自网易云社区前言本文为手机视频直播开发新手,为了快速入门,利用强大google搜索引擎结合自身理解而整理的"视频直播入门背景知识"。背景知识名词解释推流协议RTMPRealTimeMessagingProtocol(实时消息传送协议) 使用FlashP... 查看详情

移动端互动直播(入门篇)

本文来自网易云社区前言本文为手机视频直播开发新手,为了快速入门,利用强大google搜索引擎结合自身理解而整理的"视频直播入门背景知识"。背景知识名词解释推流协议RTMPRealTimeMessagingProtocol(实时消息传送协议)使用FlashPlayer... 查看详情

关于锐动的直播iossdk解决方案

   直播iOSSDK,可以在手机iOS端实时采集视频,同时在拍摄过程中支持多种实时滤镜效果,只要调用视频直播接口,通过3G、4G、WIFI等网络,推流发送给云端流媒体直播系统处理,并通过CDN视频加速分发做现场直播播出... 查看详情

技术干货:实时视频直播首屏耗时400ms内的优化实践

本文由“逆流的鱼yuiop”原创分享于“何俊林”公众号,感谢作者的无私分享。1、引言直播行业的竞争越来越激烈,进过2018年这波洗牌后,已经度过了蛮荒暴力期,剩下的都是在不断追求体验。最近正好在做直播首开优化工作... 查看详情

如何将实时直播链接到视频点播?

...时刻,当我们实施新的多流媒体平台以适应消费者与实时视频互动时不断变化的动态时,首先要考虑到依靠内容交付网络(CDN)来支持其内容的点播可用性。无法回避的事实是,视频流媒体市场不再完全依赖基于HTTP的CDN... 查看详情

网络视频直播系统需要执行的优化方案

  什么样的视频直播系统才能算得上优秀呢?因人而异,喜好不同,对于网络视频直播系统的评判标准也各不相同。但是相信大家对于网络视频直播系统性能的判定标准会是一致的。即直播中的延迟、卡顿和首屏耗时,这三点... 查看详情