Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >卡顿、黑屏、发烫!你的直播崩了吗?

卡顿、黑屏、发烫!你的直播崩了吗?

原创
作者头像
腾讯云音视频
发布于 2020-12-25 06:31:22
发布于 2020-12-25 06:31:22
3.9K0
举报
文章被收录于专栏:音视频咖音视频咖

背景

近些年来,网络直播迅速席卷了我们的生活。人人都可以做主播,打开手机就是看直播。直播已经改变了我们的生活方式,也逐渐改变了我们思想观念。

而我们经常在使用移动端直播的时候会遇到各种各样的问题,比如手机卡顿、闪退、黑屏、手机发烫这一系列问题,那我们应该怎样去检查解决这些问题了,小编给大家分享一下处理问题的一些方法。

问题描述

首先我们需要明白卡顿和黑屏一般都是播放端比较常见的问题,而闪退和手机发烫在推流和拉流端都会发生。我们要根据情况更好的去定位问题。

问题的排查定位思路

1、播放卡顿

造成播放端卡顿的原因主要有三种:

原因一:推流帧率太低

如果主播端手机性能较差,或者有很多占 CPU 的后台程序在运行,可能导致视频的帧率太低。正常情况下 FPS 达到每秒15帧以上的视频流才能保证观看的流畅度,如果 FPS 低于10帧,可以判定为帧率太低,这会导致全部观众的观看体验都很卡顿

原因二 :上传阻塞

主播的手机在推流时会源源不断地产生音视频数据,但如果手机的上传网速太小,那么产生的音视频数据都会被堆积在主播的手机里传不出去,上传阻塞会导致全部观众的观看体验都很卡顿。

原因三:下行不佳

就是观众的下载带宽跟不上或者网络很波动,例如直播流的码率是2Mbps的,也就是每秒钟有2M比特的数据流要下载下来,但如果观众端的带宽不够,就会导致观众端体验非常卡顿。 下行不佳只会影响当前网络环境下的观众。

解决方法

如果您使用的是腾讯云移动直播 SDK 来推流,该 SDK 提供了一种状态反馈机制,每隔1秒 - 2秒就会将内部各种状态参数反馈出来,你可以时时刻刻监控推流的状态和拉流的状态,然后随时做出相应的调整措施来解决对应的问题。

如果你是用的OBS推流的话,首先看一下推流的界面有没有丢帧的情况,如果是你的上行网络达不到你设置的推流码率的时候就会出现推流丢帧的情况下,这样观众端拉流观看的时候就会出现卡顿的情况。可以适当的降低推流的码率和帧率来降低直播的卡顿率。

2、播放黑屏

播放黑屏所呈现出的现象就是画面是黑的,但是没有声音,出现这样的情况可能的原因有一下几种情况。

原因一:主播端摄像头权限问题

无论 Android 还是 iOS,App 使用摄像头都是需要申请授权的,如果 App 层面不做专门的处理的话,很可能出现摄像头权限被禁用的情况。如果 App 没有获取到摄像头权限,视频就无法采集成功,从而导致推出来的流只有音频数据。

解决方法

我们在集成移动直播SDK后,可以在代码中加一个检测摄像头和麦克风权限的判断,当第一次使用APP第一次推流的时候需要去开启摄像头和麦克风的权限在启动本地摄像头的预览并启动推流。

原因二:拉流端解码问题

当播放器遇到不支持的视频格式,或者数据内容不完整/格式异常,则会解码失败,从而导致无解码视频输出。

解决方法

比如播放器本身通常都是支持H264的格式编码,如果你推流的编码方式是H265的话,那么就需要使用硬解码的方式,如果是软解码的话,就会出现播放画面黑屏,只能听到声音。IOS那边是在8.0系统之后开放了硬解码的接口,但是小编这边测试的是IPhone6、6P、7 都不支持,需要以上机型才支持。

3、手机发烫

直播中导致手机发烫的最主要原因CPU/GPU的占用率比较高,还有跟你的硬件的CPU处理能力也会有一定的关系,那我们就要分析下哪些因素导致的。

原因一: 数据量太大

我们都知道直播的整个过程是通过视频采集-数据处理-编码-推到云端-拉流播放整个过程组成的,而整个过程中最消耗CPU/GPU的就是数据大小和数据处理这块,所以如果你推流设置的分辨率、码率太高的话,那CPU/GPU就会在短时间处理很大的数据。就会出现发烫的问题

解决方法

因此在不影响业务的前提下尽量减少推流视频的分辨率,帧率的大小,减少视频处理这块(高级美颜处理)的操作, 从而降低功耗。

原因二: 程序进程太多

如果你后台同时运行的进程太多,就会占用很大一部分的CPU资源,而CPU的占用率越高,手机的发烫也会越严重。

解决方法

如果您使用的是腾讯云移动直播 SDK 来推拉流,可以直接通过SDK指标监控去查看下 APP CPU和系统CPU的占用率是否很高,可以通过测试工具,检测下持续运行在APP后台的其他进程程序,关闭一些与直播无关的进程,减少CPU的消耗。

原因三:软编/软解

这个原因我想大家都明白,软编/软解靠的是 CPU,非常耗性能,而硬编/硬解是使用专门的硬件编解码模块,会显著降低 CPU 的负担,相对而言,会省电很多。

解决办法

为了考虑各种机型兼容性的问题,我们可以在代码中加上判断逻辑,去自由的切换软硬编解码。

其他原因

还有些其他原因也会造成手机发烫,比如 边充电边推拉流、APP中的一直开启的动画特效,蓝牙一直属于连接传输状态等。

总结

我们通常在对接开发中会有很多注意事项,而且每个业务场景的情况也会不同,所以在选择运营商和集成商的时候特别重要,一个好的直播环境是需要各种稳定因素搭建出来的,而我们在去搭建的同时。

我们公司接入的是腾讯云直播的产品,总的开发过程还算顺利,目前项目还在持续的开发中,后面会有些其他问题也会持续跟大家分享出来,大家也可以在下方留言跟小编去探讨直播中所遇到的一些问题。

更多点播直播问题欢迎微信添加视频云小姐姐(shipinyun0925)进行咨询哦~

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
直播APP的技术难点
直播APP的技术难点在于其对实时性、并发性、稳定性、音视频处理能力和数据安全性的极致要求。这使得直播APP的开发和运维比许多其他类型的APP更为复杂。以下是直播APP开发中主要的技术难点。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。
数字孪生开发者
2025/05/29
1060
直播APP的技术难点
TRTC零基础上手 -- 视频异常篇
随着移动互联网普及,移动设备和高清摄像头在日常生活和工作中大量使用,人们产生海量的视频数据,如何高效实时采集、传输、显示视频数据,成为当下各方参与者摩拳擦掌的竞技舞台,TRTC是将腾讯多年来在网络与音视频技术上的深度积累,以多人音视频通话和低延时互动直播两大场景化方案,TRTC音视频解决方案是其中的佼佼者。
天上云间
2022/01/09
2.6K0
新知 | 直播卡顿问题及优化方案
新知系列课程第二季来啦!去年的系列课,我们为大家介绍了直播、RTC、IM、媒体处理等音视频通信技术,这一次,我们将继续为大家带来全真互联时代下新的行业趋势、新的技术方向以及新的应用场景分享。今天,我们邀请到了腾讯云音视频技术导师——侯文祯,他将结合工作中实际遇到的一些案例,为大家介绍直播卡顿问题的成因,以及它的优化解决方案。本周四晚7点(6月30日)我们将继续邀请技术大佬,以直播的形式为大家带来媒体处理方面的干货分享,各位可以点击文末「阅读原文」预约观看。 本期内容主要包括四个方面:直播链路监控、卡顿质量
腾讯云音视频
2022/06/29
3.6K0
新知 | 直播卡顿问题及优化方案
蘑菇街直播架构
直播简介 直播最主要的特点就是实时性与互动性,这也是直播与点播之间的差别所在,它可以实时将主播端的视频信息以较低延迟传输到观众端,与此同时,观众可以通过群聊或者送礼物的方式与主播进行互动。 图 1 直
xiangzhihong
2018/02/05
5.7K2
蘑菇街直播架构
直播系统平台开发在技术方面的要求很高
理解编写程序开发的功能文档是一件容易的事,毕竟市场上有用那么多的优秀的程序可以借鉴。但是想要把一些直播程序功能实现的的门槛很高。用代码实现功能是一个十分困难的任务。一套优秀的程序,需要极强的使用上便利性,还有优秀的UI交互逻辑,完善的功能和便于理解操作逻辑;简洁优美的界面设计......
山东布谷科技
2020/08/01
7640
播放器卡顿优化丨音视频工业实战
播放卡顿是播放体验中另一个非常重要的指标,字节跳动曾经提供过一份数据:降低 7.7% 的卡顿率和 9.8% 的卡顿时长,带来了 0.22% 的用户观看时长提升。
关键帧
2023/02/14
2.4K0
播放器卡顿优化丨音视频工业实战
一对一直播源码APP系统开发中推流端的重要性
一个软件都是由优质的源码组成的,就像是一对一直播源码APP,也是需要一套完整且优质的直播源码才能开发出来,但并不是说优质的源码就决定了直播APP的好坏,只能说源码是直播APP的基石,其中还有很多需要开发者重点注意的问题及事项,这里面就包含了推流端的问题,这是直接关系到用户的使用体验。
布谷安妮
2019/09/20
6040
一对一直播源码APP系统开发中推流端的重要性
手把手指点你解决直播卡顿
随着移动直播的兴起,每个人都可以拿起自己的终端设备随时随地的尽情的直播,无论是在家里也好,户外也罢都可以享受其中。但是在直播的过程中你一定遇到过留言一堆卡导致用户体验不佳的经历,你也有遇到过自己的平台用户数因为观看直播卡顿从而转移到对手平台的情况。不过这一切都不是事,在腾讯云可以手把手教你解决直播过程中关于卡顿的一切问题,想知道的可以继续往下看。
高峰-pfgao
2020/11/06
7.2K0
手把手指点你解决直播卡顿
常见拉流卡顿总结
直播卡顿对观众来说是不太好的一个体验,那么如何尽量避免呢,小编给大家分享一些经验。
陈鸿涛-hongtchen
2020/11/01
3.8K0
常见拉流卡顿总结
完整的一套直播系统平台开发需要哪些技术支持?
如今,直播已经成为了人们生活中必不可少的产品了,不仅仅通过实时直播带来的娱乐和欢乐,还有更重要的是它带来的实时信息分享,由此直播也带来了非常大的商业价值和潜力。不仅是现在的秀场直播,现在慢慢兴起的教育、电商等,都在一步步的跨入直播领域,可见直播的领域应该还存在更大的潜力等待我们去挖掘。 那么,直播系统平台开发到底需要哪些技术呢?需要了解哪些方面的知识呢? 首先开发实时直播时需要了解哪些知识: 摄像头采集; 1、音视频编解码; 2、流媒体协议; 3、音视频流推送到流媒体服务器; 4、流媒体网络分发; 5、用户播放器; 6、音视频同步; 7、网络延迟自适应; 8、需要录制,多种视频文件的格式和封装; 9、语言:C、C++、html、php、mysql...... 10、开发环境:嵌入式,Linux,Windows,Web...... 还有就是视频播放解决方案(卡顿、延迟): 1、CDN 加速; 2、自己架服务器; 3、用别人的云服务。 用 CDN 加速,可以尽量减少延迟。目前业内水准来看,视频延迟都在 3-6 秒之间。也就是在视频直播时,你看到的是几秒以前的画面。 自己架服务器,如果部署的数据中心不够多,那么遇上跨网、跨省的传输,还是得用 CDN 加速。那么为了尽可能降低延迟,你就需要在全国各省市都部署数据中心,来解决跨网、跨省的传输。用云服务的话,就是别人把服务器给你架好了,你只要傻瓜式的用就行了。当然,不管用哪种方式,综合权衡利弊,找到适合的方案就是最好的方案。 开发视频直播的流程有哪些: 1、采集; 2、前期处理; 3、编码; 4、传输; 5、解码; 6、渲染。 采集:iOS 是比较简单的,Android 则要做些机型适配工作。PC 最麻烦各种奇葩摄像头驱动,出了问题特别不好处理,建议放弃 PC 只支持手机主播,目前几个新进的直播平台都是这样的。 前期处理:现在直播美颜已经是标配了,80%的主播没有美颜根本没法看。美颜算法需要懂图像处理算法的人,没有好的开源实现,要自己参考论文去研究。算法设计好了还要优化,无论你打算用 CPU 还是 GPU 优化,算法优化本身也需要专业知识支持。GPU 虽然性能好,但是也是有功耗的。GPU 占用太高会导致手机发烫,而手机发烫会导致摄像头采集掉帧。而这一切都是需要经验支撑。 编码:如果你要上 720p,肯定要采用硬编码。软编码 720p 完全没希望,硬件编码不灵活。兼容性也有问题。如何适应纷繁复杂的网络和纷繁复杂的上下行设备?安卓和芯片的坑,开发过的人都知道。那有人问,要求不高,上软编码低分辨率 360p 行不行?就算上低分辨率,软编码还是会让 CPU 发烫,CPU 过热烫到摄像头,长期发烫不仅直接反应是费电。既然是手机直播,插着电源和充电器实在说不过去吧。还有,CPU 发烫会降频,怎么办?这还是只说性能方面。和前处理只影响图像质量和功耗不同,视频编解码技术还关联成本计算和网络对抗。考虑性能、功耗、成本、网络这四个之后你编码的码率、帧率、分辨率。软硬件开发该如何选择? 传输:自己做不现实,交给第三方服务商吧。 解码:如果你用硬解码,一定要做容错处理,一定要做适配。突然一个crash导致手机重启不好吧。安卓的硬解码,不说了。如果你加了网络目前手机的硬解码还不一定支撑用软解码,功耗发热的问题又来了。 渲染:为什么手机明明解码出好多帧数据。就是渲染不出来。为什么画面就是不同步。 以上是媒体模块,还有信令控制,登录、鉴权、权限管理、状态管理等等,各种应用服务,消息推送,聊天,礼物系统,支付系统,运营支持系统,统计系统等。后台还有数据库,缓存,分布式文件存储,消息队列,运维系统等。 以上技术要点的小结,确实能说明开发一个能用于生产环境的实时视频直播平台确非易事,跟IM里传统的实时音视频一样,这样的技术都是音视频编解码+网络传输技术的综合应用体。
布谷安妮
2019/09/11
2.8K0
完整的一套直播系统平台开发需要哪些技术支持?
基于WebRTC的互动直播实践
大家好,我是叶峰峰,来自映客直播,从事实时音视频的开发工作大概有七八年时间了,在加入映客后,也参与了映客实时互动直播的开发过程。本次分享主要介绍映客互动直播开发过程中遇到的一些问题,以及对直播场景下互动直播的一些优化。
LiveVideoStack
2021/09/01
2.8K0
TRTC Android端开发接入学习之常见问题(十一)
V1和V2主要区别在于IM的SDK是否内嵌于TRTC中,V1线路是内嵌,而V2则可选,默认不打包IM的SDK包。V2在通话质量、线路规格、接入难度以及功能扩展上均比V1更有优势。
腾讯云-hongyang
2020/09/27
3.1K0
直播系统源码如何乘风破浪,更好地完成系统优化?
直播系统源码的难点是提高首播时间、服务质量即Qos(Quality of Service,服务质量),如何在丢包率20%的情况下还能保障稳定、流畅的直播体验,直播系统源码需要考虑以下方案:
布谷安妮
2020/07/10
6380
直播系统源码如何乘风破浪,更好地完成系统优化?
腾讯云低延时直播系统架构设计与弱网优化实践
http://scrmtech.gensee.com/webcast/site/vod/play-6ced83f94af24094b6d8329948addb09
LiveVideoStack
2020/06/11
3.7K0
腾讯云低延时直播系统架构设计与弱网优化实践
看似简单一套语音直播APP源码开发需要哪些技术支持?
语音直播,简单来说就是实时声音播放的意思。语音直播区别与视频直播,它没有主播的画面,仅以主播的声音为载体实时播出,但大家一样可以使用文字互动。
布谷安妮
2020/04/20
1.1K0
看似简单一套语音直播APP源码开发需要哪些技术支持?
千帆直播快速迭代全历程
千帆直播APP从诞生到现在经历了4个大版本,分别定位于“可用”、“完整”、“全民直播”、“高端大气”,在搜狐生态下创业的过程中,千帆直播从求生存到求发展,在有限的资源下,冷静的调整自己在搜狐生态及直播平台领域中的定位和策略。不断完善团队研发体系、技术选型和重构,有节奏的增加和优化美颜、打赏、耗电、网络技术调优等。
LiveVideoStack
2021/09/02
1.2K0
千帆直播快速迭代全历程
实时音视频 TRTC 常见问题汇总---质量篇
如下代码所示,播放远端观众的画面渲染模式选择 TRTC_VIDEO_RENDER_MODE_FIT模式, 当渲染控件 View 的宽高比与视频宽高此不一致时,有黑边情况。
腾讯视频云-Zachary
2021/10/10
4K0
视频直播系统应该如何搭建 一个完整的视频直播系统都有哪些环节组成
2016年后,直播软件像雨后春笋一样冒出,直播系统开发的需求也在进一步的增加,用户也更加追求流畅、完美的直播体验,这就需要视频直播系统的开发。那么视频直播系统的开发主要都是包含哪些步骤,每一步又都代表了什么呢?
bojokj6961
2020/05/28
1.1K0
浅谈开发实时视频直播平台的技术要点
前言 现在大大小小的公司,甚至个人开发者,都想开发自己的直播网站或App,本文会帮你理清,开发视频直播平台,你需要注意哪些技术要点。 开源WebRTC能做实时视频直播吗? 你以为调用几个Chro
用户1263954
2018/06/22
2.6K0
即构音视频SDK:跨四平台、三种类型终端,让直播保持低延迟高画质
说到音视频云服务,大多数人可能联想到的是网络直播应用场景,实际上,硬件对音视频云服务的需求也在逐渐提升。而这样的市场需求也推动了整个行业的发展,目前,阿里云、腾讯云和网易云等巨头都已入局,除此之外还有
BestSDK
2018/02/28
2.7K0
即构音视频SDK:跨四平台、三种类型终端,让直播保持低延迟高画质
推荐阅读
相关推荐
直播APP的技术难点
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档