关于后端:音视频FAQ一视频直播卡顿

42次阅读

共计 7285 个字符,预计需要花费 19 分钟才能阅读完成。

一、摘要

本文介绍了视频直播卡顿的四个次要起因,用户网络问题、用户设施性能问题、技术路线的抉择和实现问题。因本文次要论述视频直播的卡顿,故技术路线的实现指的是: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. 内存要求:高质量的视频流也须要更多的内存来缓存和解决。如果设施的内存无限,尤其是当多个利用同时运行时,设施可能无奈为视频播放提供足够的内存,导致卡顿。

4. 渲染能力:除了解码,设施还须要渲染视频。低端设施的图形处理单元(GPU)可能无奈疾速渲染高清视频帧,导致视频播放不晦涩。

5. 视频参数:像帧率、码率和分辨率这样的视频参数,决定了视频的品质和播放的流畅性。例如,一个高帧率和高码率的 1080p 视频在顶级设施上播放得很晦涩,但在老旧或低端设施上可能会遇到问题。

如何判断主播端或观众端设施问题

判断主播端设施问题:如果发现所有的观众都呈现频繁卡顿,排除主播端网络带宽有余,那么查看主播端设施性能问题。查看主播端 CPU、GPU 和内存应用状况,高的资源使用率可能导致直播软件性能升高。例:主播端在直播数据流过程中,芯片的性能、应用的美颜算法、编码格局都是须要耗费设施性能。

判断用户端设施问题:如果不是大面积的观众呈现卡顿,排除用户端网络带宽有余,那么问题可能出在观众端设施性能问题。古老或低端的设施可能无奈流畅地播放高质量的视频流。询问用户他们的设施型号和版本信息能够提供一些线索。

为了进一步诊断具体的问题,能够应用各种工具和技术。如网络品质检测、设施性能监控和日志剖析。

1. 媒体信息查看工具:如 MediaInfo 或 ffprobe 等工具,能够查看视频文件的具体参数,包含分辨率和码率。

2. 性能剖析工具:对于判断设施解码性能是否足够,能够应用设施自带的性能监督工具,如 Android 的 ” 开发者选项 ” 中的 ”GPU 出现剖析 ”,或者专门的性能剖析软件如 Perfetto 等。

解决方案:用户设施问题

主播端解决方案:
1. 应用补光灯:通过补光,能够使摄像头在亮堂的环境中工作,保持稳定的高帧率,或者在后端进行视频解决改善画质。从而防止视频的 ” 卡顿 ” 景象。**

2. 更换设施:不仅仅是手机,摄像头和麦克风的抉择也非常要害。高质量的设施能够提供更好的音视频信号,特地是在高清晰度的直播中。

3. 升高分辨率:这的确是一个常见的技巧,特地是当直播间的观众数量减少,或网络环境不稳固时。升高分辨率能够无效加重编码的压力,同时保障流畅性。

4. 应用硬件编码:大部分古代设施都反对硬件加速的编码方法,它应用专门的硬件组件进行视频编码,比起传统的软件编码,对 CPU 的负载较小。

观众端解决方案:

1. 转码:这一计划次要集中在服务器端。服务器接管到主播的流后,能够对其进行实时转码,生成不同的品质选项(例如,高、中、低),观众能够依据本人的网络环境和设施性能抉择适合的品质观看。

2. 大小流策略:这是一个与转码类似但更为灵便的解决方案。主播能够同时推送不同的视频流,例如高清流和标清流。观众端利用则能够依据以后的网络情况主动抉择最佳的流,或容许用户手动切换。

如果排除了主播端和观众端的网络和设施问题,那么很有可能是 CDN 供应商的起因。CDN 的性能也会影响到直播的品质。例如,如果 CDN 性能有余、地区笼罩有余可能导致直播的卡顿。因而,也须要收集和剖析这些环节的数据,如 CDN 的缓存命中率等。

八、起因三:CDN 供应商问题

大多数直播利用都抉择应用现有的 CDN 供应商,因为搭建和保护本人的 CDN 网络须要微小的投资、业余的技术团队和工夫。抉择 CDN 供应商不仅为直播利用提供了即插即用的解决方案,而且提供了寰球范畴内的节点,使内容能够疾速、稳固地传输到任何中央。

CDN (Content Delivery Network) 的作用是通过在各地部署节点,使用户能够就近获得所需的内容,而不用每次都从源服务器上拉取,从而大大提高了内容的访问速度和效率。然而,当 CDN 自身呈现问题,直播体验就会受到重大影响。能够关注以下三个外围起因:

1. CDN 负载太高。

2. 节点笼罩不全。

3. CDN 接入形式是单运营商还是多运营商。

如何判断 CDN 供应商问题

1. 时间段比照:如果在网络高峰期(如早晨),呈现了大量的卡顿问题,而在非高峰期(如凌晨)卡顿问题显著缩小,这可能是 CDN 性能有余导致负载太高的起因。

2. 多地区察看:CDN 的性能可能会因地区而异。如果在某些特定地区的用户反馈视频卡顿问题特地重大,这可能意味着 CDN 节点笼罩不全的起因。

3. 多网络环境测试:如果在不同的网络环境(例如 Wi-Fi,4G,不同 ISP 等)下,用户都呈现了视频卡顿的问题,那么这可能与 CDN 的传输效率无关,这可能是 CDN 的接入形式的起因。

通过上述的初步判断办法,以下通过进一步的技术工具进行判断 CDN 供应商问题。

1. 第三方测试工具:应用如 WebPageTest、FastOrSlow、GTmetrix 等在线工具来测试 CDN 供给的资源的加载速度和性能。这些工具提供了寰球各地的测试点,能够从不同地理位置和网络环境来检测 CDN 的性能。应用 LoadRunner、JMeter 等工具,能够模仿大量用户拜访,看服务器在高负载状况下的体现。能够模仿大量用户拜访,看服务器在高负载状况下的体现。

2. CDN 厂商提供的监控工具:大多数 CDN 供应商都会提供一个控制面板或者 API 来让用户实时监控 CDN 的性能,如响应工夫、带宽应用、申请次数等。例即构 ZEGO 视频云星图平台为开发者提供了实时监控零碎、日志零碎、网络诊断工具。帮忙开发者实时查看用户观看品质、记录每次直播过程中的详细信息、测量网络的带宽、提早、丢包率等信息,能够通过这些日志找到问题的起因,这些数据能够帮忙您辨认可能的性能瓶颈或故障点。

解决方案:CDN 供应商问题

CDN 负载太高

  • 与 CDN 供应商单干,监控流量顶峰,并依据理论流量进行扩容。
  • 应用多 CDN 策略。通过将流量扩散到多个 CDN 供应商上,既能够进步冗余性,又能够加重每个 CDN 的累赘。

CDN 节点笼罩不全

  • 依据业务的地理分布和用户群体抉择 CDN 供应商。
  • 应用多 CDN 策略,确保至多有一个 CDN 供应商在指标地区有良好的服务。

CDN 接入形式

  • 理解指标用户次要应用哪些运营商,抉择与这些运营商关系良好的 CDN 供应商。如即构科技的 CDN 服务。
  • 与 CDN 供应商单干,优化接入策略,例如,建设间接的对等连贯或租用更多的带宽。

九、第三方 CDN 厂商

当直播或实时通信利用呈现卡顿等问题时,通常会波及到多个起因,如网络、设施、编码 / 解码、服务器、CDN 等。为了简化开发和排查过程,许多开发者抉择应用第三方的服务。即构科技提供了一系列的解决方案:

1. 即构 RTC 服务(https://www.zego.im/product/realtime-video)
** 基于低提早、高并发、高牢靠的公有协定,保障晦涩的音视频通信体验。** 反对多人会议、屏幕共享、录制、实时音讯传输等性能。提供实时音视频通信,实用于多种场景,如直播、在线教育、近程办公等。

2. 即构 CDN 服务 -畅直播服务(https://www.zego.im/product/livestreaming)

自研的流媒体协定,智能适应各种网络环境,包含弱网和网络拥挤状况。应用 CDN 网络将视频内容高效散发到寰球各地,保障用户无论身在何处都能够晦涩观看。海内 CDN 优化,确保寰球用户都能取得高质量的直播体验。提供多种直播服务,如超低提早直播、CDN Plus 直播、CDN 直播,满足不同业务需要。

在解决卡顿问题的过程中,开发者也能够思考应用第三方的服务来简化这个过程,而不是构建本人的服务器。

比方 ZEGO 即构提供的 RTC(实时通信)和 CDN 畅直播(内容传递网络)服务就是其中之一。这些服务曾经被测试和证实能够解决数百万或数十亿日活用户和数十亿分钟的音视频交互。

RTC 服务 能够帮忙开发者轻松地将实时音视频通信集成到他们的应用程序中,提供屏幕共享、录制和直播等性能。

CDN 服务 应用一组服务器将视频内容分发给寰球用户,加重原始服务器的负载,进步传递速度和品质,并包含动静流媒体性能和避免未经受权拜访视频内容的热链接爱护性能等。**

抉择即构这些服务能够疾速实现直播和实时通信性能,并确保稳固、高质量的用户体验。同时,利用即构提供的技术支持和监控工具,开发者能够疾速定位和解决呈现的各种问题,保障业务的稳固运行。

十、结语

本文全面介绍了导致视频直播卡顿问题的三个次要起因:用户网络带宽有余、用户性能不佳、CDN 供应商问题。

为了帮忙开发者解决这些问题,还提供了初步诊断和高级技术工具和技术,能够用来辨认和解决各种问题。其中一些工具包含 Ping、Traceroute 和 MTR 等网络诊断工具,提供实时监控和网络诊断工具的 CDN 监控零碎,像 New Relic 和 Datadog 这样的第三方监控服务,客户端日志剖析,以及像 LoadRunner 和 JMeter 这样的负载测试工具。

开发者还需关注视频卡顿问题的一些要害性能指标,例如带宽、提早、数据包失落、抖动和 TCP 重传率。通过监测这些指标,能够更好地理解如何优化网络带宽和性能,确保安稳的视频播放。

总的来说,本文为遇到视频缓冲或卡顿问题的用户提供了有用且实用的倡议。通过依照本文中概述的指南采取踊跃措施,用户能够诊断和解决这些问题,确保更晦涩和欢快的视频观看体验。

对于视频卡顿的问题的排查和解决方案就介绍到这里了,在下一篇文章中,咱们将深入探讨“延时高”这个话题。延时高是在线游戏中常见的问题,可能会导致游戏体验变得不晦涩。咱们将介绍延时高的起因和解决方案,帮忙您更好地享受游戏的乐趣。

正文完
 0