移动直播集成问题

时间:2022-07-24
本文章向大家介绍移动直播集成问题,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1、设置码率无效?

解答:

移动直播自定义码率,代码如下
 TXLivePushConfig *config = [[TXLivePushConfig alloc] init];
[config setEnableAutoBitrate:true];
[config setAutoAdjustStrategy:AUTO_ADJUST_BITRATE_STRATEGY_1];
config.videoBitrateMin = 900;
config.videoBitrateMax = 1000;
//    [pusher setVideoQuality:[PushSettingViewController getVideoQuality] adjustBitrate:YES adjustResolution:NO];
[pusher setConfig:config];

一旦设置了码率,调用setVideoQuality:adjustBitrate:adjustResolution(推荐这个方法)

这个方法前面的码率设置就会失效,或者先调用这个方法,后面再设置码率,也会覆盖前者。

2、摄像头直播切换录屏直播

场景:开始摄像头直播推流,然后切换成录屏推流。

出现问题:

1、第一次切换,出现无效会话的提示,直接停止录屏

2、注释掉RPSampleBufferTypeAudioApp模式下的代码,不会出现第一次无效会话,但会出现上行不足的提示,然后就停止录屏。(如下图)

解决办法:根据客户的描述,摄像头推流是在录屏推流前停止的。因为中间没有时间间隔,可能导致摄像头推流占用的资源无法释放,然后对立马进行录制推流的操作产生影响。建议:客户停止摄像头推流后,间隔2秒,再进行录屏推流。

3、强杀app导致音频相关的崩溃

用户强杀app导致音频相关的崩溃 这个不会影响用户业务 目前正在解决这个问题 预计一两个版本会解决。

4、低延时加速流播放失败。直播连麦,使用加速流地址播放失败。(报错:getAccelerateStreamPlayUrl failed, play stream with raw url) 解决过程:

获取加速流地址失败问题先按以下步骤去排除

(1)购买了低延时播放套餐,或者appid在后付费名单中;

(2)防盗链鉴权参数必须正确;

rtmp://hmliveplay.jzzhibo.com/live/53405_1G100013?bizid=53405&txSecret=8832ee57fd87b71df7cc2c250a153316&txTime=5EA935C5

(3)UDP协议没有被封锁,尤其是UDP的443和8080端口;可更换网络环境试下

(4)建议下载下Appstore上面的云工具包测试下当前环境

按照上面的步骤进行排查,如果都没有发现问题,可以查看一下加速流的sdkappid和账号上的sdkappid是否一致。

注释:低延时加速流地址的获取:1、sdk计算,通过get_anchors获取  2、业务后台自己计算,防盗链默认拿取推流的防盗链。

5、移动直播,自定义视频采集,能否使用我们的美颜、水印功能?

解决方法:自定义音视频采集是无法使用我们移动直播的美颜,水印功能。需要客户自己进行渲染。我们的sdk只保留负责编码与发送的能力。可以通过,onRenderVideoFrame:userId:streamType这个方法进行预处理

6、推流时需要拿到视频的帧率、分辨率、码率等信息,进而分发给自己的服务器进行业务操作。问:有没有底层的接口给调用,直接分发给服务器?

解决方法:暂时没有提供底层的接口,不过客户可以在推流时使用回调方法onNetStatus:进行这种操作。

7、移动直播,观众端进入房间,再切换到后台,进入抖音看视频,再回到直播App前台,发现没有声音。(有画面,没有声音)

解决方法:前台和后台分别设置AVAudioSession setActive:error的活跃状态。当用户回来前台设置在启动音频为活跃状态。

8、直播过程中,刚开始的1分钟左右音频采集失败,导致录制会看视频出现全程无声音。(但是用VLC观看回放和直播是一样,前面一分钟没有声音,后面都有声音,但是用我们的播放器,甚至是网页播放器,都是全程无声音)

原因:因为一般的播放器不会探测很久,探测了一小段发现没有音频,就当成纯视频播放了。而VLC探测时间会更长所以有声音。从中知道普通播放器探测短时间内音频都会自动变成纯视频播放,从而释放音频,减轻设备的负担。