移动直播播放不了的排查方法

移动直播的常见排查手段过程最主要是了解移动直播推流的url是怎样的

一个推流url引起的问题

直播中大多数问题是推流的url不正确导致的,那么推流url是怎么样了,下面来讲解url的规则

推流地址的拼接规则

推流地址可以通过后台自动拼装得到

常见问题

1.域名是否 CNAME 到了腾讯云地址?

流域名只有 CNAME 到腾讯云地址才能推流成功,可以在【[域名管理](https://console.cloud.tencent.com/live/domainmanage)】里面查看已经创建的推流域名是否有 CNAME。其中有个 CNAME 标题栏,可以根据此项中的状态来查看推流域名是否有 CNAME。已经 CNAME 的状态如下: ![](https://main.qcloudimg.com/raw/ec13b07a9da29afe71f587b53ba9fbaa.jpg)

2.txsecret秘钥是否正确在直播直播鉴权控制比对

https://cloud.tencent.com/document/product/267/32463

3.txTime是否过期

txTime 过期有些客户担心自己的直播流量被人盗用,会将 txTime 设置的过于保守,例如从当前时间开始往后推5分钟。其实由于有 txSercet 签名的存在,txTime 的有效期不用设置的太短。相反,如果有效期设置的太短,当主播在直播过程中遭遇网络闪断时会因为推流 URL 过期而无法恢复推流。

txTime 建议设置为当前时间往后推12或者24小时为宜,也就是要长于一场普通直播的直播时间

那推流url怎么生成呢

移动直播的流id就这个直播码 下面云控制台更具体介绍

用户自己判断流的情况方法

判断直播流是否正常断流在云控制台的辅助工具中有断流诊端原因

可以查询断流错误具体错误码可以参考下面的链接

https://cloud.tencent.com/document/product/267/35256

也自己查看简单的流的情况

https://cloud.tencent.com/document/product/267/31161

移动直播sdk怎么设置推流情况

推流配置参数 LivePushConfig

每秒需要多少帧画面FPS以及gop表示多少秒一个i帧

TXLivePushConfig mLivePushConfig=new TXLivePushConfig

mLivePushConfig.setVideoEncodeGop(5)代表设置的gop为5秒一个i帧

mLivePushConfig.setVideoFPS(15) 表示每秒需要15帧画面

其它一些参数都可通过推流配置对象.set设置,不一一列出如下图

可参考https://cloud.tencent.com/document/product/454/34756

设置setVideoQuality

推流的时候setVideoQuality 设置视频编码质量。包括是否开启动态码率开关。动态切分辨率开关,画质类型标清,高清,超高清

参考代码如下

推流码率设置

其中视频码率对直播也有影响,网络较差又使用较高的码率会造成卡顿,这个时候可以调整码率,只有开启码率自适应, 该设置项才能启作用:setAutoAdjustBitrate(boolean)

才能设置最大和最小码率setMaxVideoBitrate,setMinVideoBitrate

,开启后,SDK会根据网络情况自动调节视频码率,调节范围在(videoBitrateMin - videoBitrateMax)

播放流畅度控制

也在TXLivePlayConfig指定

直播播放器有三种缓存策略对应就是播放的时候的极速 流畅 自动

其实就是设置自适应缓冲时长 和最小缓冲时长 和最大缓冲时长

TXLivePlayConfig mPlayConfig = new TXLivePlayConfig();
//
//自动模式
mPlayConfig.setAutoAdjustCacheTime(true);
mPlayConfig.setMinAutoAdjustCacheTime(1);
mPlayConfig.setMaxAutoAdjustCacheTime(5);
//
//极速模式
mPlayConfig.setAutoAdjustCacheTime(true);
mPlayConfig.setMinAutoAdjustCacheTime(1);
mPlayConfig.setMaxAutoAdjustCacheTime(1);
//
//流畅模式
mPlayConfig.setAutoAdjustCacheTime(false);
mPlayConfig.setCacheTime(5);
//
mLivePlayer.setConfig(mPlayConfig);
//设置完成之后再启动播放

点击下图的红框修改播放的缓存策略,用demo测试

非rtmp流的直播播放器调试工具

第一个按钮

开始播放和暂停播放

第二个按钮

硬件加速,当某些手机软件效果不好的时候可以开启

第三个按钮

横竖屏切换

第四个按钮

小屏和大屏幕切换,注意的是只有竖屏才生效

第五个按钮

播放模式包括极速,流畅,自动

缓存策略

流的状态不对

没有结束之前的流,流的状态控制不对主要参考,以及检测自己的推流是否暂停onstop和重新播放onresume

用于推流的 TXLivePusher 和用于显示影像的 TXCloudVideoView 都是不能多实例并行运转的,所以清理工作不当会导致下次直播遭受不良的影响。

//结束推流,注意做好清理工作
public void stopRtmpPublish() {
    mLivePusher.stopCameraPreview(true); //停止摄像头预览
    mLivePusher.stopPusher();            //停止推流
    mLivePusher.setPushListener(null);   //解绑 listener
}

两个重要判断流的方法

其中sdk中TXLivePlayListener

onPlayEvent(事件通知) 和 onNetStatus(状态反馈)这两个事件可以判断播放事件状态 和流的信息状态

TXLivePlayer的onPlayEvent事件判断
onNetStatus当前流再网络传输中的一些参数指标

通过onNetStatus中的一些状态参数判断当前的流的状态

移动直播有意义的参数指标

拿 demo的调试工具

1.rtmp推流是否成功

第一个按钮

开始播放和暂停播放

第二个按钮

前后置摄像头

第三个按钮

手机聚焦和自动聚焦切换

第四个按钮

硬件加速

第五个按钮

简单美颜

第六个按钮

日志显示信息

第七个按钮

设置推流模式包括自适应码率自适应分辨率

第八个按钮

重力感应切换横竖屏,注意的是只有在手机没有锁定方向才生效生效

这里弹窗可以看出你的流再哪一阶段的大骤出现的问题

值得一提的终端测试工具中,i图标的按钮都会弹窗了解到推流的信息

移动直播应用功能测试

还可以使用移动直播的摄像头推流和直播拉流分别测推流情况和拉流情况,方法同上

扫码测试

demo中带有二维码扫描的图片 ,demo中的扫码功能都是一套的,所以只要遇到下面图片就可以使用扫描测试,比较快捷,只要将你的url 找个在线二维码工具转换,输入你的url转换二维码

下面举个使用播放器的demo测试你的拉流地址的列子

主界面
进入超级播放器界面
点击扫码后界面

特殊机型不能播放的问题

andriod9.0手机手机只能播放 RTMP 格式的流,无法播放HTTP-FLV 格式的流。

使用https协议的播放地址将flv格式的播放地址总http替换成https 如果上图中的高级配置的https配置

https://cloud.tencent.com/document/product/267/32826?from=10680

直接在AndroidMainfest.xml 标签下使用 android:usesCleartextTraffic="true"

具体参考修改参考https://cloud.tencent.com/developer/article/1399337

其它问题

录制 转码 截图鉴黄 水印 问题

可以参考云直播的服务端api文档,提供了API Explorer工具,该工具非常适用调试服务端调用接口

https://console.cloud.tencent.com/api/explorer?Product=live&Version=2018-08-01&Action=CreateLiveCallbackRule

并结合云直播控制台使用

https://cloud.tencent.com/document/product/267/20379

或者提供流id和bizid

一条正常的推流,音视频数据的比特率、cpu消耗、上行网速、网络波动、推流数据堆积等等都稳定在正常值范围内,不在范围内的异常数据很好分辨。

工作人会通过后台运营系统查询整个直播链路的过程,以及你的流是否推到upload服务器,是否生成录制文件,以及

推流信息 的上下码率 情况是否稳定等

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

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

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏音视频技术

从云计算到低延时,传统编码器与创新技术双剑合璧严把成本质量关

大家好,我是赛灵思DCG数据中心负责Video业务的Sean Gardner,本次演讲的主要内容是赛灵思在中国发展过程中寻求新的业务探索与技术创新落地。

15540
来自专栏机器之心

英伟达Faster Transformer:作者带你揭秘BERT优化

2017 年 12 月 Google 在论文「Attention is All You Need」中首次提出了 Transformer,将其作为一种通用高效的特...

20840
来自专栏DotNet程序园

多场景抢红包业务引发.NETCore下使用适配器模式实现业务接口分离

我们公司现有一块业务叫做抢红包,最初的想法只是实现了一个初代版本,就是给指定的好友单发红包,随着业务的发展,发红包和抢红包的场景也越来越多,目前主要应用的场景有...

7920
来自专栏布谷科技

关于直播系统开发中直播架构的重要组成部分

直播的推流和拉流主要是由五个部分组成的,分别是:(音视频)采集、(数据)编码、(数据)传输、解码(数据)、播放显示。开发直播 app,直播源码是一个非常重要的存...

17160
来自专栏RTSP/RTMP直播相关

直播协议的选择:RTMP vs. HLS

随着直播业务的兴起,越来越多的直播平台开始涌现,这火热的程度好像一个应用不带上直播业务出来都不好意思跟人打招呼。想要做一个直播业务,主要包括三个部分:采集推流端...

20840
来自专栏用户6167002的专栏

陌陌的续命游戏

回到8月30日的那个平凡的夜晚,朋友圈被一个个AI换脸视频和GIF刷屏,一切发生得都毫无征兆。

13440
来自专栏布谷科技

直播系统开发搭建部署中的流媒体技术

直播热潮尚未褪去,而直播系统开发究竟是如何实现的?能够支持直播一直火下去的直播系统开发究竟是怎么样的呢?直播的实现与直播系统开发中的流媒体是分不开的,想要知道如...

13550
来自专栏玄魂工作室

想成为一名“专业黑客”?作为过来人给你几点建议

Web 安全工程师作为信息安全保驾员,保护着公司网站和业务系统不受侵害,加固着公司各类安全系统,同时还要对业务产品进行安全检查。是实实在在的用黑客技术,还互联网...

19530
来自专栏布谷科技

语音直播系统源码与视频直播系统源码哪些区别?

相比曾经热火朝天的视频直播,语音直播其实一直相对更加垂直和细分,虽然目标用户极具粘性和更精准,但视频直播的“全民化”概念对资本来说吸引力更大,因此这也导致前两天...

18630
来自专栏RTSP/RTMP直播相关

安卓端/iOS端如何播放4K分辨率的RTMP/RTSP流

4K分辨率即4096×2160的像素分辨率,它是2K投影机和高清电视分辨率的4倍,属于超高清分辨率。在此分辨率下,观众将可以看清画面中的每一个细节,每一个特写。...

10420

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励