音视频直播延时优化

721 篇文章 529 订阅
订阅专栏

直播播放延时,指的是从主播推流一帧画面到用户观看到这帧画面之间的时间差。字节跳动曾经提供过一份数据来说明直播延时对用户的影响:对比直播延时在 15s 和 5s 时,用户观看延时更低的直播流,观看时长会增长 0.8% 以上,同时,用户付费渗透增长 1.4%,进房转化率增长 1.2%。

要统计直播播放延时,可以在推流端编码视频时增加 SEI 信息,其中可以添加时间戳信息。在播放时,将 SEI 中的时间戳解出来,同时获取本地的时间戳,这两个时间戳的差值即直播播放延时。

这里有一个问题:这两个时间戳如果是从本地取得,则可能由于设备对时问题存在误差。这种情况下可以从服务端的 NTP 服务来取时间。

1、播放策略

1.1、高缓冲高倍速播放

当播放器缓冲区的数据累积的较多时,对应的播放延时会比较大,这时候可以加速播放来加快对缓冲区数据的消耗从而降低延时;反之,当播放器缓冲区剩余的数据较少时,很有可能由于网络原因造成数据下载的速度跟不上数据消耗的速度而发生卡顿,这时候可以低速播放来减慢对缓冲区数据的消耗从而防止卡顿。

下图示例了一种倍速播放策略:

  • max-play-ratemin-play-rate 表示播放器的最大播放速率和最低播放速率。通常来讲,播放速率过低或过高会影响视频观看的体验。一般来讲,[0.9, 1.2] 是一个可以接受的区间,具体情况可以测试确定。

  • 当缓存时长在 [0, normal-low-cache) 区间时,播放器使用慢速播放。其中,当缓存时长在 [0, min-cache] 区间时,播放器使用设定的最低播放速率 min-play-rate 进行播放。

  • 当缓存时长在 [normal-low-cache, normal-high-cache] 区间时,播放器正常播放,播放速率 1.0。

  • 当缓存时长在 (normal-high-cache, limit-cache] 区间时,播放器使用快速播放。其中,当缓存时长在 [max-cache, limit-cache] 区间时,播放器使用设定的最高播放速率 max-play-rate 进行播放。limit-cache 是播放器缓冲区大小的上限。

  • 1.2、丢帧

    当缓冲区的累积的数据已经非常多(通常是发生卡顿后播放器等待数据加载时间较长造成),通过倍速播放可能需要较长的时间才能消耗掉累积起来的延时,这时候如果要快速的消耗掉这个延时,可以直接丢掉缓冲区的音视频帧。

    丢帧策略可以配合倍速播放来做,接着上面的策略:

  • 当缓存时长在 [drop-cache, limit-cache] 区间时,触发播放器的丢帧策略。

  • 丢帧会将缓存时长从 drop-cache 丢到 drop-to-cachedrop-to-cache 一般可以设定在 [normal-low-cache, normal-high-cache] 区间,这样丢帧后就能保持正常速度进行播放。

2、CDN 策略

2.1、CDN 吐数据控制

在直播中,CDN 的基本原则是从一个 GOP 开始吐数据,因为 GOP 是以 I 帧开始,这样才能保证播放器拿到数据就可以解码出画面,防止出现解码错误引起花屏。

这里示例一种快手使用的 CDN 吐数据策略,该策略总的来说遵循三个原则:

  • 1、下发数据长度不能超过快手拉流端接受缓冲区长度。

  • 2、必须从一个 GOP(Group of Pictures)的开始下发。

  • 3、在不违背前面两点的情况下,下发尽可能多的数据。

GOP 吐数据策略

上图是两个根据服务端缓存的不同 GOP 结构,决定下发数据策略的实际 case,假设快手拉流端接收缓冲区长度是 5 秒。

第一个例子,如果从第一个 GOP 开始下发数据,总数据长度 6.5s,大于快手接受缓冲区长度,所以只能从第二个 GOP 开始下发,总数据长度是 4.5s,在缓冲区长度的限制下,做到了下发数据长度最大。

第二个例子,如果从第二个 GOP 的开始下发,数据长度已经达到 6s,那么只能从最后一个 GOP 的开始下发,数据长度 3s,在接受缓冲区长度限制范围内。

3、传输协议优化

3.1、基于 WebRTC 实现直播推拉流

目前直播场景大多是基于 RTMP 推流、HTTP-FLV/HLS 拉流的技术方案,在不考虑网络延时的情况下都会产生秒级延时。RTMP 推流主要基于 TCP 传输,TCP 为了保证传输质量,因此会产生很多 ACK,在网络不好的情况下会产生很多重传包,所以延时自然就相对较高了。通过调整 CDN 缓冲和吐数据策略、播放器缓冲区策略,可以在一定程度上降低延时,但最终还是会受限于传输协议的制约,无法将延时降低到更低的水平。这时候我们就可以考虑基于 WebRTC 来实现更低延时的直播推拉流了。

WebRTC 传输是基于 RTP 和 RTCP 实现,而 RTP/RTCP 底层是基于 UDP 协议进行传输,UDP 协议的头小,而且不用保证可靠性,所以传输延时通常更低。WebRTC 的重传策略是基于 NACK 完成,并且可以进行调整,从而有比较大的可控空间。

本文福利, 免费领取C++音视频学习资料包、技术视频/代码,内容包括(音视频开发,面试题,FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,编解码,推拉流,srs)↓↓↓↓↓↓见下面↓↓文章底部点击免费领取↓↓

深入探究音视频开源库WebRTC中NetEQ音频抗网络延时与抗丢包的实现机制
dvlinker的技术专栏
04-24 1万+
深入探究音视频开源库WebRTC中NetEQ音频抗网络延时与抗丢包的实现机制
详解iOS 音视频延时
最新发布
yinshipin007的博客
03-17 446
它是指每秒钟刷新的图像帧数。编解码延时:以 H.264 为例,它包含 I、P、B 三种帧(下文会详细分析),如果是每秒 30 帧相连帧,且不包括 B 帧(由于 B 帧的解码依赖前后视频帧会增加延迟),采集的一帧数据可能直接进入编码器,没有 B 帧时,编码的帧延时可以忽略不计,但如果有 B 帧,会带来算法延时。采集延时:采集时会遇到成像延迟,主要由 CCD 相关硬件产生,市面上较好的 CCD 一秒可达 50 帧,成像延时约为 20ms,如果是一秒 20~25 帧的 CCD,会产生 40~50ms 的延时
直播卡顿问题及优化方案
m0_60259116的博客
07-26 5204
直播卡顿问题及优化方案
于冰:用户导向的音视频体验优化
LiveVideoStack
03-06 1343
在LiveVideoStackCon2018音视频技术大会上,快手音视频技术负责人于冰分享了题为《用户导向的音视频体验优化》的主题演讲,从用户的角度来去谈音视频的体验优化...
ffmpeg的转码延时测试与设置优化
热门推荐
北雨南萍
07-13 1万+
我测试了下ffmpeg直播流的转码延时,这些参数对文件的转码也是通用的; 测试环境:  . ffmpeg 版本为v3.0.2  . 从同一台服务器拉流,转码再推送到同一台服务器上,这样减少了服务器与网络影响;  . 播放器使用实时模式,不缓冲 1. 设置slow参数 $ ./ffmpeg -i rtmp://192.168.1.12/live/src -vcodec libx2
音视频优化
diankuini1374的博客
05-22 227
https://www.cnblogs.com/kevingod/p/4904133.html 很多音视频处理教程 https://blog.csdn.net/nothingl3/article/details/42265483?locationNum=6&fps=1 音频处理错误信息说明 https://blog.csdn.net/sbadhwm/article/d...
直播中累积延时优化
dazhouchi7149的博客
06-23 1115
本文转自:直播中累积延时优化 | www.samirchen.com 对于交互性要求较高的直播业务来说,采集推流端和观看端的延时太高是不可接受的。在 直播协议的选择:RTMP vs. HLS 一文中提到了采用 RTMP 协议做直播业务,一般可以将延时控制在 1-3s 或者更低。但是如果在直播中发生卡顿、播放暂停等情况时,也会不断积累推流端和观看端的延时。这种累积延时要怎么优化呢? 优化...
网易视频云:视频云播放器秒开和播放流畅度优化
heua5555的博客
10-18 928
一、概述      目前,移动视频直播正处于一个高速膨胀的时期。游戏直播,秀场直播等APP铺天盖地。如何在千军万马中脱颖而出,直播的实时性和流畅性是重中之重。      直播的实时性对于用户体验非常重要,主要体现在两个方面:秒开和延时。秒开是指用户点击播放到看到画面的时间非常短,在1秒之内;延时是指播放端的画面和主播端的画面的时间差,时间差越小,实时性越好,体验越佳。      保证直
详解音视频直播中的低延时
yinshipin007的博客
12-09 377
音视频实时通讯的应用场景已经随处可见,从“吃鸡”的语音对讲、直播连麦、直播答题组队开黑,再到银行视频开户等。对于开发者来讲,除了关注如何能快速实现不同应用场景重点额音视频通讯,另一个更需要关注的可能就是“低延时”。但是,到底实时音视频传输延时应该如何“低”,才能满足你的应用场景呢?在聊低延时之前,我们先要讲清延时是如何产生的。由于音视频的传输路径一样,我们可以通过一张图来说明延时的产生:在音视频传输过程中,在不同阶段都会产生延时。总体可以分为三类:T1:设备端上的延时 音视频数据在设备端上产生延时还可以细分
腾讯音视频QOE、QOS优化策略
03-06
总结来说,腾讯音视频QOE、QoS优化策略涵盖了从网络传输到终端设备的全过程,通过精细的算法选择、抗丢包和抗抖动技术、流量和延时管理,以及针对不同场景的差异化策略,为用户提供稳定、高质量的音视频体验。...
超低延迟RTSP/RTMP/HTTP播放器实测小于100ms
02-24
超低延迟的网络流播放器,基于ffmpeg,可用于测试视频流的延迟
Qt + FFmpeg RTSP视频流解码,延迟0.2s以内!
01-07
实现了一路Qt + FFmpeg RTSP视频流的解码,调用FFmpeg API实现,版本为FFmpeg 4.1.2。实测视频延迟为200ms 以内,已达到商业使用标准。
ffmpeg-video-client:一款优化后低延时ffmpeg视频解码器,以及演示如何用dui制作出多路的网络视频播放器
05-02
#说明 .一个优秀的ffmpeg视频解码器源代码,编译方式:Release.x64版本。 .windows下播放网络视频流低延时 .解码器支持网络摄像头、本地视频文件、电脑自带usb摄像头、桌面抓取方法。 .视频解码处理过程已经经过硬解码,及如何从硬解码后采用SSE,ipp,等intel优化提取数据。单路1080P下视频从解码到复原RGB数据CPU降至%2以内。 .duilib下多路网络视频播放demo.内部采用opencv播放(D3D播放版本暂未上传) #第三方开源库 .opencv;dlib;opencv;SSE;ipp;boost库 .boost文件过大需自己去官网下载编译 #其他 .如有其他代码问题,请联系我QQ136111526
腾讯云trtc实时音视频完整案例 音视频+共享屏幕直播
08-12
修复直播(TXLivePlayer)延时可能会升高且不恢复的 bug。 优化音量大小的回调算法,音量回调数值更加合理。 发送自定义音频、视频数据支持外部指定数据帧时间戳。 增加混流 setMixTranscodingConfig API 的设置回调...
rtmp直播如何实现200ms内级别延迟?(1)
ye568974617的博客
06-05 8441
前言 最近有机会跟几个一线大厂专家讨论了下直播延迟技术方案,感触颇多,也学习很多,顺便把自己方案完善了一下作为记录.低延时效果截图如下: 图1 ps:左侧为相机采集画面.右侧为拉流端公网拉取画面,延迟为172ms(由于第三相机拍摄照片故延迟计算为包含采集延时) 图2 ps:推拉流两端视频截图,由于是桌面截图,故延迟不包含设备采集延时,延迟为132ms,后续会放出测试程序,供大家进行实测对比 手术示教及手术指导 直播延迟方案是我在17年 18年在上一家公司医疗直播进行的应用,医疗直播
ios 音视频处理优化总结
颜忠贤 JoesRain
04-19 4139
做了那么多年C底层,现在做iOS上层,感觉还是有很多优势的。做底层的时候就做过音视频的东西,上层有很多类似,相通的东西。 公司做了个视频软件,实时监控。程序丢包严重,卡顿,还会黑屏。我接手之前就是这个样子。经过一天的摸索,结合之前看了一天的经验,把丢包问题,黑屏问题跟卡顿问题通通解决了。          由于代码不是我写的,我想了个很初级的办法,在所有音视频关键函数打上断点(对xcode来说
FFmpeg 优化点播延时
weixin_34217773的博客
07-31 404
场景 探测ES流,avformat_open_input会非常快的返回,PS反而是一个例外。通过调用av_log_set_callback设置日志写文件的方式,在调用avformat_open_input函数探测PS输入格式时候,会打印如下的日志:Probing mp3 score:1 size:2048Probing mp3 score:1 size:4096Prob...
利用ffmpeg打造播放器直播观看公网rtmp1s延时极致优化
weixin_33753003的博客
08-19 624
为什么80%的码农都做不了架构师?>>> ...
基于ffmpeg的播放器起播延迟优化
未名湖917号的博客
03-29 9297
一个视频的播放,播放器的执行步骤大致如下:读取原始数据、解复用、解码、显示。对于vlc和ijk播放器的编解码部分都是使用ffmpeg,在这里以开源项目ijkplayer为例分析播放器在读取原始数据后的解码执行步骤: 1. avformat_open_input()该函数用于打开多媒体数据并且获得一些相关的信息,声明位置libavformat\avformat.h,函数执行成功的话,其返回值大于等
腾讯云H5音视频优化:QoS与QOE策略详解
腾讯音视频QOE(Quality of Experience)和QoS(Quality of Service)优化策略是腾讯云针对其H5双向/多人音视频解决方案的核心优化技术。该策略主要涉及以下几个关键领域: 1. **腾讯云H5解决方案**:腾讯云提供了...
写文章

热门文章

  • 流媒体服务器之 ZLMediaKit介绍 22855
  • 使用VLC轻松体验本地视频推流、拉流、播放功能 22307
  • FFmpeg 代码实现流媒体推流(RTSP) 17045
  • 三种方法使用FFmpeg截取视频片断 16113
  • flv.js解析与使用 15379

分类专栏

  • Qt开发 642篇
  • C++Linux后端 179篇
  • 音视频开发进阶 721篇

最新评论

  • WebRTC + WebSocket 实现视频通话

    ClearLoveQ: 在发起视频通话,点接受时,接收方的会报错这个;Failed to execute 'addIceCandidate' on 'RTCPeerConnection'

  • C++后端开发技能全解析,打造完美学习路线!

    程序员老舅: 更详细的学习路线导图,可以来文章底部拿

  • Qt使用QAudioInput、QAudioOutput实现局域网的音频通话

    程序员老舅: 可以,来文章底部拿

  • QT5基础教程(介绍,下载,安装,第一个QT程序)

    程序员老舅: 来文章底部拿,有网盘下载

  • QT5基础教程(介绍,下载,安装,第一个QT程序)

    无敌小束: 引用「https://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt」 下不了,提示 404 。

大家在看

  • “魔域”游戏中gamedata.dll文件丢失这怎么办?魔域gamedata.dll丢失问题的终极解决方案
  • 【Kubernetes】常见面试题汇总(二十四) 485
  • 【Kubernetes】常见面试题汇总(二十九) 161
  • 解决QFC810.exe运行时错误:soundplayer.dll文件丢失,恢复音频播放的实用指南

最新文章

  • 推荐几个高质量C/C++项目,全程干货没有废话!
  • C++11 新特性面试题
  • 详解哈希表的查找
2024
09月 5篇
08月 6篇
07月 5篇
06月 10篇
05月 6篇
04月 11篇
03月 24篇
02月 9篇
01月 17篇
2023年566篇
2022年841篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司姑苏网站优化多少钱厦门优化网站排名枣庄网站优化哪家收费低诚鑫科技网站优化眉山企业网站建设优化盐城阜宁网站优化排名天津网站优化排名定制广东网站友链优化南京 网站 优化长春搜索网站优化网站10万条数据优化亳州企业网站排名优化哪家有实力鼓楼区网站优化费用如何做网站优化山东智能网站优化哪家好洛阳网站优化托管网站内部优化包括沈阳seo网站优化信息流苏州网站快速优化平湖网站优化排名福泉市网站优化公司网站页面优化优化建议珠海有实力的网站推广与优化seo网站优化是干啥河南卫浴行业网站优化推广网站优化和seo优化金华网站长尾关键词优化浙江嘉兴网站优化西青区网站优化哪家便宜优化网站优化软件优质商家歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化