直播卡顿原因详解及优化

这篇具有很好参考价值的文章主要介绍了直播卡顿原因详解及优化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

随着视频直播的发展,很多直播团队可能会遇到视频直播卡顿,频繁出现缓冲标志或者直播画面一卡一卡等情况。究竟是哪些原因造成了视频直播观看的卡顿情况呢?

又拍直播云结合实践经验,从设备、视频流、网络这三方面进行解剖分析造成直播卡顿的问题及其解决方法。

1、视频直播卡顿原因

造成直播视频卡顿的原因主要有设备、视频流、网络这三方面的问题。

直播卡顿,编程,音视频开发,程序员,ffmpeg,音视频,网络

2、问题排查及解决方法

2.1 设备

高清视频往往会给硬件带来解码压力,由于解码造成的卡顿尤为明显。同时如果PC端Flash Player或移动端播放软件版本过低,可能也会造成解码问题导致播放卡顿情况。

如果是这个原因,解决方法有以下几点:

  • 升级硬件、软件设备,提高兼容性和容错率;

  • 使用硬编硬解方案,充分利用GPU 加速;

  • 降低视频码率,选择流畅或者标清画质进行视频播放;

  • 增大播放器缓冲区,缓解因网络或解码不稳定引起的卡顿。

2.2 视频流

2.2.1 音视频时间戳不同步

在直播中,当音视频时间戳不同时,会影响画面渲染,导致画面解析时出现问题,造成一卡一卡的现象,如下图所示,音视频时间戳非单调递增会导致播放器在解析画面时出现错乱的情况,前后画面衔接会出现不连续甚至花屏的现象。

直播卡顿,编程,音视频开发,程序员,ffmpeg,音视频,网络

△ 音画不同步

针对此类问题,我们需要对推流器的源码进行研究,把读取到的每一针音频、视频的时间戳进行查阅、分析,然后通过程序干涉推流器或者流媒体服务器,矫正逻辑值,从而使音画同步。

2.2.2 视频流参数配置问题

如果视频的帧率设置过低(帧率即每秒的画面张数),根据人眼的视觉暂留原理,每秒的画面张数必须达到一定的数值,人眼观看才是连续有效的。导致视频流的编码方式与传输服务器有不兼容的情况,部分音视频数据出现了解析错误甚至无法解析的情况,也会出现视频流播放卡顿的问题。

如果是这个原因,解决方法有:

  • 设置合理的码率,帧率,分辨率,关键帧间隔,音视频编码格式等参数;

  • 尽量遵循标准的视频编码方案,流媒体传输协议,对视频流进行采集,编码,解码,播放等操作。

【学习地址】:FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发 

【文章福利】:免费领取更多音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击1079654574加群领取哦~

直播卡顿,编程,音视频开发,程序员,ffmpeg,音视频,网络

3、网络

直播网络目前存在三种情况:无线、有线、4G。

无线网络:WIFI 连接的直播受距离、环境等使用因素的影响,需要让设备尽量靠近 WIFI 信号源,避免穿墙或金属物遮挡,保持信号强度,带宽6M以上,同时避免其他设备接入 WIFI 信号源抢占信号;

有线网络:直播场地有专门的网口使用,最好是专线网络,上下行带宽不少于4M;

4G网络:手机网络受到周围的环境影响大,需要在手机信号良好的地方,并且防止网络波动,在直播时最好选择4G卡。

3.1 上传网络

当主播端网络较差时,会导致推流端上行不稳定,这个时候可以通过 speedtest 进行测速,判断主播端的网络速度。

直播卡顿,编程,音视频开发,程序员,ffmpeg,音视频,网络

△ speedtest测速示例

同时国内CDN厂商后台也多会提供推流端检测工具,这个时候就可以使用又拍云CDN后台进行推流端检测,查看是否是推流端网速问题。

直播卡顿,编程,音视频开发,程序员,ffmpeg,音视频,网络

△ 又拍云流管控后台

3.2 下行网络

观众播放端的网络也可能存在波动问题,需要定位是否是大面积的观众卡顿还是局部观众卡顿。

解决方法有:

  • 用户通过 speedtest 进行测速,判断终端的网络速度;

  • 用户 ping 播放域名,查看解析到的服务器节点,判断自身IP 到服务器之间是否有延迟过大或者丢包的情况出现;

  • 联系 CDN 厂商排查线路是否有不稳定的现象,也可以通过播放器打点上报,统计所有客户端的整体卡顿率情况,分地区做一些线路和资源的调整和优化。

直播卡顿,编程,音视频开发,程序员,ffmpeg,音视频,网络

△ ping 播放域名

3.3 服务器

一场直播需要保证音视频数据的实时传输,推拉流稳定,高并发人数下的系统稳定性,现在国内的直播平台多选择CDN厂商进行直播底层业务支撑,当直播观看人数并发较大时,常会给服务器负载造成压力,带宽数据量大,传输缓慢,导致卡顿。

目前,国内的CDN厂商基本都提供检测工具,可以在控制台查看CDN情况的使用情况以及各省份的服务器的下载速率和负载情况,如下图是又拍云的服务监控后台,图中可以看到整体的健康度以及各省份的服务器平均下载速率。

直播卡顿,编程,音视频开发,程序员,ffmpeg,音视频,网络

△ 又拍云的服务监控后台

直播卡顿,编程,音视频开发,程序员,ffmpeg,音视频,网络

△ 又拍云CDN检测工具

其次可以通过工单或者联系在线技术支持进行CDN线路排查,选择更适合的服务线路。

视频直播卡顿中会有多种问题存在,需要从各个方面去排查,性能优异的推流端、播放端与CDN服务可以减少很多不必要的麻烦,更加专注于直播内容的产出。

又拍直播云解决方案,支持RTML、HLS、HTTP FLV视频传输协议,首创HLS+技术,将HLS直播延迟减少至4秒。并且提供功能丰富的跨平台推流端、播放段SDK工具包降低开发成本、缩短上线周期。

4、推荐阅读

从Html5直播到互动直播,看直播协议的选择 WebSocket+MSE——HTML5 直播技术解析 让Chrome看不了WWDC直播的HLS技术详解

原文链接:https://www.cnblogs.com/upyun/p/7125837.html文章来源地址https://www.toymoban.com/news/detail-779717.html

到了这里,关于直播卡顿原因详解及优化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • GB28181 对接海康平台,解决音视频卡顿问题

    一、概述 设备使用GB28181协议对接海康平台时,发现音频和视频存在卡顿现象,不是一直卡顿,有时候卡有时候不卡,但是卡顿的时候音视频一起卡顿。 从2016版国标文档上可以看出,要求携带者音视频数据,并且对音视频数据还是有要求的,出现这种卡顿的问题肯定是上传的

    2024年02月10日
    浏览(114)
  • WebRTC音视频通话-RTC直播本地视频及相册视频文件

    WebRTC音视频通话-RTC直播本地视频及相册视频文件 WebRTC音视频通话-RTC直播本地视频文件效果图如下 WebRTC音视频通话-RTC直播本地视频文件时候,用到了AVPlayer、CADisplayLink。 AVPlayer是什么? AVPlayer是基于AVFoundation框架的一个类,很接近底层,灵活性强,可以自定义视频播放样式

    2024年02月13日
    浏览(51)
  • WebRTC | 音视频直播客户端框架

            端到端通信互动技术可分解为以下几个技术难点:客户端技术、服务器技术、全球设备网络适配技术和通信互动质量监控与展示技术。         音视频直播可分成两条技术路线:一条是以音视频会议为代表的实时互动直播;另一条是以娱乐直播为代表的流媒体

    2024年02月14日
    浏览(50)
  • WebRTC技术文档 -- 1.音视频直播(笔记)

    1.1 两条技术路线 1.1.1 以音视频会议为代表的实时互动直播 互动直播主要解决音视频远程交流问题,实时性较强,时延一般低于500ms。 1.1.2 以娱乐直播为代表的流媒体分发 娱乐直播主要解决音视频大规模分发问题,实时性较差,时延一般在3s以上。 1.2 直播技术 WebRTC用于实时

    2024年02月22日
    浏览(61)
  • 音视频 ffmpeg命令直播拉流推流

    对于不是rtmp的协议 -c copy要谨慎使用 参数:-re,表示按时间戳读取文件 参考:Nginx搭建rtmp流媒体服务器(Ubuntu 16.04)https://www.jianshu.com/p/16741e363a77 推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家: 零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/

    2024年02月10日
    浏览(63)
  • 音视频解决方案(一):秀场直播场景化方案

    秀场直播场景为社交娱乐模式下的视频互动场景,场景支持多人视频连麦互动,更容易吸引用户参与连麦互动,提升用户的消费意愿及粘性。 产品功能目前是推流到 ZEGO 音视频云服务,观众再从 ZEGO 音视频云服务进行拉流,同时主播与观众之间连麦也是通过 ZEGO 音视频云服务

    2024年02月01日
    浏览(53)
  • 音视频解决方案(二):直播电商场景最佳实践

    本文介绍使用ZEGO SDK 开发电商场景的小程序,具备音视频直播、IM互动、商品列表推送、美颜等功能,可满足商家多种直播卖货需求,可参考该组件实现自己的需求。 若小程序具备符合live-pusher、live-player的类目,则可以使用live-pusher和live-player,live-room 的isNative属性传入true。

    2024年02月20日
    浏览(52)
  • 【音视频流媒体】2、WebRTC 直播超详细介绍

    一对一直播框架: WebRTC终端: 音视频采集, 编解码, NAT穿越, 音视频数据传输 Signal服务器: 信令处理(如加入房间, 离开房间, 传递媒体协商消息) STUN/TURN服务器: 获取WebRTC终端在公网的IP地址, NAT穿越失败后的数据中转. js中 var promise = navigator.mediaDevices.getUserMedia(constraints); 可访问摄

    2023年04月18日
    浏览(51)
  • 音视频开发系列(7):完成本地摄像头直播推流

    今天把读取本地摄像头将视频流推流到nginx服务器的直播代码学习完了,这里对代码的流程做一下记录,以便以后进行复习。 这边用到了opencv和ffmpeg的开源库(PS:在前面有进行分享),配置环境在之前也有进行分享。 第一步:先用到了opencv的VideoCapture类的open函数打开摄像头,

    2024年02月02日
    浏览(53)
  • WebRTC音视频通话-iOS端调用ossrs直播拉流

    WebRTC音视频通话-iOS端调用ossrs直播拉流 之前实现iOS端调用ossrs服务,文中提到了推流。没有写拉流流程,所以会用到文中的WebRTCClient。请详细查看:https://blog.csdn.net/gloryFlow/article/details/132262724 最近有朋友问过,我发现之前少了一块拉流流程,这里补充一下。 2.1、拉流实现时

    2024年02月11日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包