1、设置码率无效?
解答:
代码语言:javascript复制移动直播自定义码率,代码如下
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探测时间会更长所以有声音。从中知道普通播放器探测短时间内音频都会自动变成纯视频播放,从而释放音频,减轻设备的负担。