设为首页 加入收藏

TOP

音视频FAQ(一):视频直播卡顿(一)
2023-08-26 21:10:22 】 浏览:237
Tags:FAQ 卡顿

一、摘要

本文介绍了视频直播卡顿的四个主要原因,用户网络问题、用户设备性能问题、技术路线的选择和实现问题。因本文主要阐述视频直播的卡顿,故技术路线的实现指的是:CDN供应商的实现问题,包含CDN性能不足、CDN地区覆盖不足。对于每个原因,提供了初步判断和进一步诊断的方法和技术工具,并列出了关键性能指标以帮助诊断和解决问题。

二、视频直播常见问题系列

对于音视频开发者来说,掌握排查问题的技术技巧方法是非常必要的,排查问题的技术方法也能够帮助开发者更好地了解音视频技术的原理和工作机制,从而更加深入地理解音视频开发中遇到的各种问题。

即构基于多年实时互动领域技术的沉淀和客户服务保障,我们将推出《视频直播技术FAQ》系列文章,将实时互动技术领域的常见问题和经验分享出来,同时会针对具体问题附上业务通识和常用解决方案以及案例经验,希望本系列能成为你手边的音视频通识册子,帮助到开发者们快速定位问题并找到合适的解决方案。

本系列将每周持续更新,目前已整理了以下常见问题:

  1. 视频卡顿
  2. 延时高
  3. 音画不同步
  4. 视频花屏、绿屏
  5. 视频黑屏
  6. 视频放大或黑边
  7. 首开慢
  8. 音视频流控
  9. 视频模糊
  10. 无法打开摄像头
  11. 音频回声
  12. 音量太小
  13. 音频噪声
  14. 无声
  15. 上下麦音量变化

本文是本系列的第一篇文章《视频直播卡顿》,视频卡顿是音视频开发者最为关注的问题之一。希望通过本文向开发者们介绍实时音视频中视频卡顿问题的相关技术,包括问题表现、常见场景、问题定位排查和解决方案,同时提供实际案例和预防措施,帮助开发者更好的解决这一问题。

三、视频直播卡顿问题处理

根据研究,降低播放卡顿率和缩短卡顿时长不仅可以改善用户体验,还有助于提升用户观看时长和留存率,进而为平台或APP带来更多的价值和收益。

行业内通用的FAQ处理办法一般分为四个步骤,发现问题,定位问题,排查问题,并提供相应的解决方案。视频直播卡顿问题我们将按照该解决思路进行剖析,核心在于定位卡顿问题产生的模块,排查产生模块的具体原因。

四、视频直播卡顿问题表现

卡顿是影响视频观看体验的常见问题,它会让用户感到不适和沮丧。在视频直播场景下,卡顿的判断主要依靠观众和主播的感受,因此它是一个相对主观的问题。

一般是指实时音视频传输过程中,因网络条件、设备性能受限等原因,引起的视频播放断断续续、不流畅、甚至定格等现象。行业内并没有统一的标准来定义卡顿,但一些第三方音视频厂商已经对卡顿进行了明确的定义,

其中即构科技就是一个很好的例子。即构科技认为:卡顿在代码层面是指实时音视频通话过程中,视频帧率设置不低于 5 fps 时,连续渲染的两帧视频之间间隔超过 500 ms,即记为一次视频卡顿。

我们通常能感受到的卡顿表现形式为:

1. 视频卡顿或停顿。

2. 音频声音异常或延迟。

3. 视频和音频不同步。

4. 直播流中断或丢失。

五、视频卡顿问题排查定位

以下是一些可能导致直播卡顿的原因:

1. 用户网络问题(含主播端和用户端)

2. 用户设备性能问题 (含主播端和用户端)

3. CDN供应商的问题(含CDN性能不足、CDN地区覆盖不足)

六、原因一:用户网络问题

一个完整的直播应用的数据流通常涉及多个环节。首先,主播推流将内容传输至直播服务器。然后,直播服务器需要将内容传输至CDN服务器。最后,用户可以通过拉流观看直播。因此,整个数据流过程包括以下几个步骤:

1. 主播推流并将内容传输至直播服务器。

2. 直播服务器将内容传输至CDN服务器。

3. 用户通过拉流观看直播。

对于实时音视频流的服务来说,网络环境对用户体验有着至关重要的影响。当直播流出现卡顿时,通常涉及到主播端、观众端和CDN传输三个主要部分。需要分别判断是主播端卡顿还是用户端卡顿。

如何判断主播端或观众端网络问题

全局观察,通过对比分析可以初步判断卡顿问题更可能出现在哪个环节。

判断主播端卡顿:如果发现所有的观众都出现频繁卡顿,那么问题可能出在主播端或中间的传输网络。

判断用户端卡顿:如果不是大面积的观众出现卡顿,那么问题可能出在观众端或特定的网络环境。

技术手段判断,为了更准确判断主播端卡顿,通常会使用技术手段来判断网络问题,自研监控系统和使用第三方SDK自带的监控平台操作步骤大同小异,分为这6步。定义监控目标--> 选择监控工具--> 部署监控点--> 实时收集数据--> 生成日志--> 监控与优化。

监控音视频的本质:数据的生产和消费,从音视频播放器中实时收集、发送、存储、分析到展示关于音视频流状态的关键数据的整个流程。这个流程为监控人员或系统提供了实时的信息来检测、定位和解决潜在的播放问题。

  • 定义监控目标:确定你希望从监控中得到什么信息。这可能包括视频的播放质量、缓冲次数、延迟、观众的设备和地理位置等。

  • 选择监控工具:使用Wireshark、iperf、ping或FFprobe等在线带宽测试工具检查主播的上传速度。主播端的上传速度应该比直播的码率高出一定的余量。观众端的下载速度应该至少与直播的码率相匹配。上述专业的网络监控工具使用门槛较高,需要主播和观众具备一定的技术背景。许多直播软件和第三方音视频服务SDK提供实时的上传帧率、丢帧数和其他关键指标。这可以帮助判断是否是主播端的问题。如即构科技的星图监控平台https://www.zego.im/product/prism)。

  • 部署监控点:音视频应用在运行过程中,会实时收集各种数据并发送到服务器,例如发送和接收的数据包数量、丢包率、延迟等。这些数据可以用来实时监控网络状态,并在出现问题时及时进行调整。

主播端打点数据指标:

  • 推流的实时帧率:如果帧率较低,可能是网络带宽不足导致的。
  • 推流的丢包率:丢包率较高可能是网络不稳定或质量较差。
  • 上行带宽:如果带宽较小且不足以支持当前的推流质量,可能会导致卡顿。

观众端打点数据指标:

  • 缓冲时间:频繁缓冲或缓冲时间过长可能是网络不足导致的。
  • 下行带宽:如果带宽较小且无法满足当前的播放质量,可能会导致卡顿。
  • 观众端设备的性能数据,如CPU使用率、内存使用率等:如果设备性能较差,可能无法流畅播放高质量的直播流。
  • 生成日志分析:音视频应用通常会生成详细的日志,其中包含了关于网络状态、音视频数据流、播放器状态等各种信息。通过分析这些日志,可以获取到网络状况的详细信息,例如网络延迟,丢包率等。

  • 问题定位与解决:当检测到异常的卡顿事件时,进一步深入分析数据,确定问题的根本原因,这可能涉及到网络质量、服务器性能、内容编码等。使用第三方服务的监控平台则能更快速定位问题,如ZEGO即构星图的质量分析模块帮助开发者低门槛、高效地发现问题并进行定位归因,输出解决方案。还可以根据回调给用户提示,如让用户切换网络环境,或降低推流分辨率。

  • 实时监控与反馈:根据长期的卡顿监控数据,不断优化流媒体的传输和播放设置,以减少未来的卡顿事件。即构ZEGO星图的业务运营跟踪和监控告警功能:提供丰富的大盘数据帮助开发者观察业务运营态势,如用户体验、用户人数、推拉流规模、服务状况多维度全方位监控业务运转。

音视频服务商监测平台:
即构ZEGO星图 https://www.zego.im/product/prism 星图平台是一个音视频质量运营平台,可全面监测音视频服务,低门槛

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇标准更新 | 加拿大 ISED更新 RSS-.. 下一篇Android NDK基础介绍及例子

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目