前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >移动直播MLVB常见问题(FAQ)

移动直播MLVB常见问题(FAQ)

原创
作者头像
腾讯视频云-Zachary
修改2020-04-07 11:16:52
8.1K0
修改2020-04-07 11:16:52
举报

移动直播(Mobile Live Video Broadcasting,MLVB)SDK 是云直播服务(LVB)在移动场景的延伸。相比于主要面向云对接的直播(LVB) 服务,移动直播既提供了基于 TXLiteAVSDK 的“快速集成方案”,也提供了云直播(LVB)、云点播(VOD)和即时通信(IM)等云端服务的“一体化解决方案”。

一、集成SDK

1. 如何快速集成?

快速入门:https://cloud.tencent.com/document/product/454/7876

官方Demo体验:https://cloud.tencent.com/document/product/454/6555

官方Demo及SDK下载:https://cloud.tencent.com/document/product/454/7873

版本历史:https://cloud.tencent.com/document/product/454/7878

2. 如何获取和修改 SDK 本都输出日志?

Android:SDK 默认会将 log 写到 /sdcard/Android/data/应用包名/files/log/tencent/liteav/ 下

iOS:SDK 默认会将 log 写到当前 App 的 Documents/logs 文件夹下,后缀为.xlog。

参考:https://cloud.tencent.com/developer/article/1502366?from=10680

3. 如何查看当前 SDK 版本号?

  • Android端: String sdkver = TXLiveBase.getSDKVersionStr(); Log.d("liteavsdk", "liteav sdk version is : " + sdkver);
  • iOS端: NSLog(@"SDK Version = %@", TXLiveBase getSDKVersionStr);

4. 移动直播SDK有没有适配Android 10?

TXLiteAVSDK 在6.9版本对Android 10做了兼容支持,若之前的版本在 Android Studio 中将工程编译脚本 build.gradle 配置参数 targetSdkVersion 设定为 28 或以下就可以在android 10.0的机器上运行。(29 为 Android 10)。

5. 移动直播 TXLiteAVSDK 开发环境要求?

  • Android端: Android Studio 2.0+;Android 4.1(SDK API 16)及以上系统。
  • iOS端: Xcode 9.0+;iOS 9.0 以上的 iPhone 或者 iPad 真机;项目已配置有效的开发者签名。

6. Xcode编译 TXLiteAVSDK 报错解决方法?

一般容易遇到undefined symbols、duplicate symbol、bcm.o和rsa.o等错误。参考:https://cloud.tencent.com/developer/article/1499960

7. iOS升级 TXLiteAVSDK 6.6.7559及之后版本编译报错,报错在CocosDenshion.o?

新版本音频做了优化,需要添加openAL依赖库,软3A的处理依赖于这个库,参考:https://cloud.tencent.com/developer/ask/228567/answer/347719

8. TXLiteAVSDK 用 Xcode 8编译运行报错?

SDK3.9之后的版本需要xcode9.0的版本去编译,3.7版本及之前的是可以用xcode8,因为3.9 SDK是用xcode9构建的。

9. 移动直播 Android 端如何动态加载 so 库?

参考:https://cloud.tencent.com/developer/article/1420952

10. 移动直播SDK的精简版和全功能专业版的主要区别是?

  • 精简版只包含直播推流个基础播放功能,包的体积更小;专业版包含移动直播、点播、短视频、实时音视频所有功能。
  • 精简版SDK用的系统播放器,只支持硬编码和硬解码,点播不支持FLV格式;专业版SDK用的ijk播放器,硬编硬解和软编软解都支持。

11. 移动直播 SDK 的功能特性如下表:

产品

功能

功能特性

Android

iOS

移动直播

推流

RTMP 协议推流

H.264 和 AAC 编码

实现主播端的屏幕推流功能(游戏直播)

后台摄像头推流

后台垫片推流

纯音频推流

静音推流

本地预览镜像(主播)

视频编码镜像(观众)

硬件编码

自动调整码率

自动调整分辨率

自定义推 YUV、PCM 数据

视频(TextureId)和音频(PCM)数据回调

推流质量监控(事件回调)

推流断流重连机制(支持自主配置)

推流会就近选择服务器(针对腾讯云)

背景混音

前后摄像头动态切换

摄像头缩放操作(Zoom)

闪光灯

自动/手动对焦

基础美颜(磨皮、美白、红润)

高级美颜(设置大眼、瘦脸、V脸、下巴调整、短脸、小鼻效果)

动效贴纸(添加变形、覆盖贴纸挂件等效果)

清新、唯美、怀旧、日系等滤镜

截流录制(推流过程中本地录制出视频)

视频截图

添加静态水印

视频流中添加文本信息(如歌词进度)

视频流中插入时间戳(直播答题方案能力支持)

支持 BitCode(iOS提供的体积优化方案)

直播

支持 HTTP-FLV、RTMP、HLS 协议的流媒体播放

支持 HTTPS-FLV、HTTPS-HLS 的播放

播放没有域名限制(支持播放其他云产商的流)

硬件解码

播放器秒开

静音播放

画面预览模式调整(调整填充模式、渲染角度)

播放器延时调节

视频(YUV)和音频(PCM)数据回调

自定义渲染视频数据

截流录制(观众截取直播的流到文件中)

屏幕截图

清晰度无缝切换

直播回看(腾讯云特有)

拉流质量监控(事件回调)

拉流断流重连机制(支持自主配置)

点播

支持 FLV、MP4、HLS、本地视频文件播放

支持 HTTPS 的点播地址播放

硬件解码

画面预览模式调整(调整填充模式、渲染角度)

静音播放

变速播放

循环播放

本地缓存

预加载

贴片广告

播放加密文件

多码率切换(腾讯云特有)

离线下载视频

视频截图

点播质量监控(事件回调)

12. iOS端怎么关闭 TXLiteAVSDK 控制台输出的log?

在AppDelegate里面调用下面接口:

TXLiveBase sharedInstance.delegate = nil;

TXLiveBase setConsoleEnabled:NO;

13. iOS端编译 TXLiteAVSDK 报重复的符号错误?

问题描述:编译SDK报duplicate symbols错误,冲突的符合为bcm.o和rsa.o

解决方案:

Xcode 工程配置 other linker flags 需要设置 -ObjC,Dead Code Stripping 设置成YES。

二、直播推流

1. 直播拉流报错Q通道接收失败,返回码-3是什么原因?

一般是推流还没有成功就去拉流就会报该错误,请保证推流成功后再去拉流。注意推流端能看到预览画面并不一定代表推流就成功了,可以在控制台查询流状态或者换腾讯云提供的测试Demo推流。

2. iOS端移动直播Licence校验失败报-5错误码?

6.5版本的LiteAVSDK,设置移动直播 Licence 必须用 TXLiveBase,设置短视频 Licence 必须用 TXUGCBase,如果弄混了会出现校验失败.

[TXLiveBase setLicenceURL:@"http://license.vod2.myqcloud.com/license/v1/df2203aa377aad6f1e48912abc264e4a1/TXLiveSDK.licence" key:@"61736d7c5fb27e24480d5a1af99871"];

[TXUGCBase setLicenceURL:@"http://license.vod2.myqcloud.com/license/v1/df2203aa377aad6f1e48912abc264e4a1/TXUgcSDK.licence" key:@"61736d7c5fb27e24480d5a1af99871"];

3. 直播水印为什么不显示,应该怎么添加?

水印只能在观众端看到,在主播端看不到的。

水印的添加方式有两种:

注意 不推荐控制台上传水印,会额外引入播放延迟。

4. 怎么确保在推流或者播放过程中不会熄屏?

iOS端在 Controller 里面调用 UIApplication setIdleTimerDisabled:用于控制自动锁屏,SDK内部并无修改系统锁屏的逻辑

5. 推流过程中报视频编码失败错误?

如果使用的精简版SDK,并且测试的机型为 iOS 8版本的系统,那么有可能遇到这个问题。

原因是ios 8版本的系统对硬编码支持的不是很好,因此我们SDK内部做了保护措施是当硬编码失败会切换成软编码,但是精简版为了减小体积所以不支持软编码的方式。解决方案是换成专业版SDK,使用软编码。

6. 推流时音频采集怎么实现多个mic之间的切换?

SDK 默认是不支持采集音频过程中切换 mic 的,如果需要切换 mic,可以使用自定义采集音视频数据,可以在业务层自行实现。

7. 推流的音频降噪要怎么做

SDK 对于 32000Hz 的音频数据是支持降噪的,现在 SDK 都是 48000Hz 采样率的了,基于采集效果提升的考虑,将降噪接口去掉了。

噪音太大通常原因是采集端和播放端距离过近造成的声音循环采集,可以将两台设备离远一些(3m 以上),或是更换几个不同手机直播,不同手机在音频采集上的处理不同。

8. 移动直播TXLiteAVSDK有没有引入B帧?

目前 iOS 端不支持,Android 端支持在编码中增加 B 帧。如需要开启,可以将 enableVideoHardEncoderMainProfile() 设置为 True。

// 设置硬件编码支持MainProfile(增加 B 帧)
mLivePushConfig.enableVideoHardEncoderMainProfile(True);
mLivePusher.setConfig(mLivePushConfig);

引入 B 帧的好处是让画质更佳,但也是增加延时。因为增加 B 帧会导致每个 GOP 中每帧画面的 PTS 和 DTS 不对齐,从而增加编码和解码耗时。

9. 动态切换纯音频推流问题?

动态切换纯音频推流会出现主播端画面闪屏?播放端卡在最后一帧?动态切换纯音频和音视频,会出现短暂音画不同步问题?

  • sdk不支持动态切换纯音频推流,如果需要动态切换,闪屏问题可以业务逻辑处理一下,切换时用其他view遮挡或者隐藏,或者结束推流,重新走推流;
  • 观众端问题,可以通过聊天自定义消息,当主播需要切换纯音频时,发一条自定义消息,播放端隐藏画面或其他图片代替;
  • 动态切换短暂音画不同步问题,这个是正常的,sdk在纯音频推流的时候,会缓存大量的音频数据,当还没有播放完成,主播端切换为音视频,观众端拉到视频和音频,造成音频的延迟大于视频,sdk会有追时延功能,保证音画同步,过一段时间就会恢复,但如果不能满足用户需求,请主播端重新走推流逻辑,或者主播端通过自定义消息通知观众端,走重新拉流逻辑,解决此类问题。

10. iOS端切换前后台报错编码失败?

目前iOS系统,硬编码器进入后台后会停止工作,导致编码失败。解决办法是采用硬编码的方式进入后台一定要调用后台推流接口pausePush或者换成软编码方式也不会有这个问题。

11. SDK分辨率设置的540_960实际输出的分辨率是544_960?

在有些预处理shader,以及编码器需要width height为16的倍数,否则会出现绿边的现象。

12. 移动直播 TXLiteAVSDK,本地仪表盘指标数据怎么看?

参考:https://cloud.tencent.com/developer/article/1399314

三、直播拉流

1. PLAY_TYPE_LIVE_RTMP_ACC连麦低延时播放,报错获取“加速流地址失败”?

低延时拉流播放需要满足以下条件:

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

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

3、UDP协议没有被封锁,尤其是UDP的443和8080端口;

4、需要用 TXLiteAVSDK 推拉流才支持。

2. 直播可以看到画面,但是没有声音

可以按以下步骤进行检查:

  1. 将拉流地址分别使用第三方播放器(如 VLC、ffplay 等)以及Demo播放器进行播放
  2. 如果都没有声音:确认是否调用了静音接口setMute(true)
  3. 如果第三方播放有声音而 Demo 播放没有:检查音频文件格式,SDK 音频解码支持 AAC 格式,建议在推流端推流时修改成 AAC 格式。

3. 直播可以听到声音,但是没有画面

对比一下Demo的播放效果

如果demo和客户工程都没画面,打开手机gpu渲染再试,并联系腾讯技术支持。

如果demo正常而客户工程没画面,检查客户工程的回调事件能否打印出2003 PLAY_EVT_RCV_FIRST_I_FRAME 渲染首个视频数据包(IDR)。如果渲染首个I帧一直失败,请检查代码层是否关闭了 GPU 渲染功能

注意 SDK默认是需要GPU渲染的。Android 4.3之前的几个版本,手机gpu性能还不怎么好,要求app开发者在代码层指定gpu渲染功能的开或关,4.3 之后的版本都是默认打开的,也就不需要再指定gpu的开关了,但是一些比较老的工程迭代过来,会保留有关闭gpu的代码,开发者找到它们,注释掉即可。

4. 直播看到的画面左右相反怎么办?

参考 API 文档镜像接口setMirror

5. 拉流播放时怎么做到听筒与扬声器切换?

播放时可以使用setAudioRoute接口实现听筒与扬声器切换。

6. 移动直播是否支持H265

  1. 移动直播SDK推流暂时不支持H265编码;
  2. 腾讯云服务端支持H265编码的码流,需要提工单配置;
  3. 腾讯云直播配置完成推上H265的流之后,播放地址后面加_h265后缀就能播放了;
  4. 移动直播SDK支持H265硬解码方式播放。

7. 直播精简版播放器是否支持缓存?

精简版sdk不支持缓存,其它版本支持缓存功能;

  • 精简版sdk跟其他版本sdk点播使用的底层播放器不一样,精简版使用系统exoplayer播放器;
  • ijkplayer播放器的库比较大,精简版sdk没有使用所以体积较小。

四、MLVBLiveRoom连麦互动

1. RoomService中,房间和群组是什么关系?

移动直播sdk、即liteAVSDK,最基本的能力是:推流、拉流。

推流:是指将音视频数据采集编码之后,推送到您指定的视频云平台上。组件是LivePusher。

拉流:是从云服务器上面获取到音视频数据,在本地渲染播放。组件是LivePlayer。

可见,移动直播sdk是没有提供房间管理的功能的,这部分由客户自己完成。腾讯云研发团队提供了房间管理的开源代码,即后台roomservice、终端liveRoom/rtcRoom。

RoomService中引入了云通信SDK的群组、消息功能。

房间与群组的关系:终端createRoom请求到后台,后台创建roomid(只是一个字符串)、同时调用云通信restAPI创建im群组,roomid字符串与groupid字符串相同,这就是我们说的真正的房间。

所有人进入直播间,都要加入群组:调用joinGroup加入groupid。大小主播要开始推流了,要加入到roomid:调用addPusher加入roomid。

所以:房间可以理解成直播间,包括roomid和groupid,groupid里面的是直播间里的所有人,roomid里面的都是推流者。

2. 创建房间接口doCreateRoom调用成功,但是查询房间接口getRoomList查询不到房间的信息

参考 Demo 按顺序调用doCreateRoom()->addPusher()->startHeartbeat()时才会激活房间,只调用doCreateRoom()的话房间并未激活,因此会查询不到。

注意roomService 后台逻辑: 客户端调用doCreateRoom()接口请求到后台,后台调用 restAPI 创建 IM 群组,把 IM 群 ID 返回给客户端;当客户端调用addPusher()加入 IM 群组时,激活房间。startHeartbeat()用于进程检测机制。

doCreateRoom(roomID, roomInfo, new BaseRoom.CreateRoomCallback() {
                                @Override
                                public void onError(int errCode, String errInfo) {
                                    callback.onError(errCode, errInfo);
                                }

                                @Override
                                public void onSuccess(final String newRoomID) {

                                    //5.请求CGI:add_pusher,加入房间
                                    addPusher(newRoomID, pushURL, new AddPusherCallback() {
                                        @Override
                                        public void onError(int errCode, String errInfo) {
                                            callback.onError(errCode, errInfo);
                                        }

                                        @Override
                                        public void onSuccess() {
                                            mCurrRoomID = newRoomID;

                                            //6.调用IM的joinGroup,加入群组
                                            jionGroup(newRoomID, new JoinGroupCallback() {
                                                @Override
                                                public void onError(int errCode, String errInfo) {
                                                    callback.onError(errCode, errInfo);
                                                }

                                                @Override
                                                public void onSuccess() {
                                                    mHeartBeatThread.startHeartbeat(); //启动心跳
                                                    callback.onSuccess(newRoomID);
                                                }
                                            });
                                        }
                                    });
                                }
                            });

3. 房间在什么条件下会关闭,可以通过哪个接口关闭?

房间关闭的条件:

  • 主播主动离开房间时,关闭房间
  • 主播心跳断开 20s,关闭房间(判断机制是基于 roomService 的后台逻辑,开发者可自行修改)
  • 调用关闭房间的接口destroyRoom

注意前两个条件,是roomservice后台的默认触发条件,客户如果没有开启心跳,20S后业务后台会关闭房间。所以要修改前两个条件,请修改后台代码。第三个条件是对外暴露的接口,因为有前两个条件的存在,覆盖了大部分场景,所以我们终端demo中没有调用destroyRoom

4. 连麦中观众列表该怎么做,RoomService 提供的三个接口可用吗?

不能直接使用 RoomService 提供的观众管理接口:addAudiencedelAudiencegetAudiences

原因:这几个接口设计之初只是为了 Demo 的界面观众展示,出于方便数据直接存放在内存里,最多存储 30 个人(可修改)。

开发者的直播 APP 在处理观众管理时通常会有一些业务实现,如头部观众优先显示,而且实际线上运行时存储量大,不推荐使用内存存储。

建议开发者自行搭建数据库存储观众信息,使用 roomid 与直播间进行关联,观众列表可以参考腾讯视频云自由开播后台服务进行实现。

5. 移动直播连麦时,大小画面的位置可变吗?

可变。

主播端/连麦端的大小画面是在客户端本地进行渲染叠加的,UI 上的位置显示开发者可自行改变。

普通观众端看到的大小画面是云端混流后的画面,可以通过修改云端混流时的大小画面参数来进行配置,具体参数请参考文档云端混流进行配置。

6. 连麦时有回音?

可以开启回音消除。

setVideoQuality设置参数:大主播推流VIDEO_QUALITY_LINKMIC_MAIN_PUBLISHER、小主播推流VIDEO_QUALITY_LINKMIC_MAIN_PUBLISHER。内部自动实现回音消除。

enableAEC(true)是回音消除接口,如果连麦没有采用上面两种模式,就需要手动调用这个接口。

注意回音消除要配对使用,假如客户用了三方推流设备连麦,回音消除有可能无效。 注意建议连麦时,两台设备保持3米以上。开启了回音消除,会过滤掉手机喇叭播放出的声音。但是两台手机离的过近,两端的麦克风同时录入了两端的声音,这种回音会伴随有蜂鸣声,只能从使用场景上规避。

7. 纯音频连麦,要怎么做?

  • 把音视频推流换成纯音频推流
  • 云端混流换成纯音频混流,混流的包体如下所示:
  • 可在liveroom方案上修改,改动量不大。也可自研。注意 开发者如果启动纯音频推流,但是通过 rtmp/flv/hls 方式的播放地址拉不到流,请提工单联系我们。
     {
        "timestamp":int(time.time()),           # UNIX时间戳,即从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数
        "eventId":int(time.time()),             # 取随机数即可,标识一次网络请求
        "interface":
        {
            "interfaceName":"Mix_StreamV2",        # 固定取值"Mix_StreamV2"
            "para":
            {
                "app_id": 9527,                # 填写直播APPID
                "interface": "mix_streamv2.start_mix_stream_advanced",  # 固定取值
                "mix_stream_session_id" : "5000_enson",                # 填大主播的流ID
                "output_stream_id": "5000_enson11",                    # 填大主播的流ID
                "output_stream_type": 0,                               # 填输出流类型
                "input_stream_list":
                [
                    # 大主播:背景画面
                    {
                        "input_stream_id":"5000_enson11",    # 流ID
                        "layout_params":
                        {   
                            "image_layer": 1                # 图层标识号:大主播填 1 ; 
                            "input_type": 4                 # 标记混入纯音频
                        }   
                    },
                    # 小主播按照顺序填写2、3、4、5、6
                    # 小主播1
                    {
                        "input_stream_id":"5000_enson22",    # 流ID
                        "layout_params":
                        {   
                            "image_layer": 2,               # 图层标识号
                            "input_type": 4                 # 标记混入纯音频   
                        }   
                     }, 
                ]
            }
        }
    }

四、直播录屏

1. iOS 端录屏推流时播放端听不到麦克风采集的音频?

在 App 内调用录屏扩展来推流时,需要启用麦克风:RPScreenRecorder sharedRecorder.microphoneEnabled = YES;

2. iOS端使用SDK摄像头推流正常,录屏推流失败?

有种场景是6.3版本之后TXLiteAVSDK需要校验licence成功才能推流。licenceURL默认是http的,如果iOS工程里面没有配置ATS,那么就无法下载到移动直播licence带着校验失败。

解决办法:

1、licenceURL使用https;

2、或者工程配置NSAllowsArbitraryLoads=YES。

五、直播云端混流和录制

1. 直播怎样录制纯音频的视频?

指定房间录制是通过在推流地址后面带上推流参数:

纯音频:record_type=audio;视频:record_type=video;如果视频和纯音频都需要,可以先录成视频,后续再在点播里边转码成纯音频。

2. 直播后台录制Live_Tape_Start只能录制30分钟吗,如果要录制2小时甚至更长,怎么办呢?

是的,实时视频录制任务时长支持最大为 30 分钟,如果传入任务结束时间与当前时间差大于 30 分钟,则按 30 分钟计算。录制时长建议控制在 5 分钟以内。需要多次调用满足长时间录制。

注意这个录制功能提供出来,是为了满足录制精彩片段的需求。如果有长时间录制、全程录制的需求,请使用全局录制或指定流id录制

3. 主播使用纯音频推流,为什么点播控制台没有视频文件?也没有收到录制文件落地的回调?

如果主播使用纯音频推流,需要在推流的 Url 地址后面添加参数 record_type=audio ,这样才能保证有录制文件生成。<font color='red'>值得注意的是</font>:建议推流地址由服务端生成,然后下发给客户端。客户端只是在 Url 地址后面增加录制纯音频参数。

如果你想了解更多直播录制的信息,可以阅读 如何录制并回看

六、高级功能

1. 移动直播TXLiteAVSDK自定义采集数据支持哪些数据格式?

iOS自定义采集:

sendVideoSampleBuffer,硬编支持NV12和BGRA格式,软编只支持yuv420p格式。且必须在config里设置分辨率。

Android自定义采集:

sendCustomVideoData,只支持i420格式。

2. 移动直播 SDK 如何实现自定义采集?

iOS端参考:https://cloud.tencent.com/developer/article/1403024

Android端参考:https://cloud.tencent.com/developer/article/1402828

3. 移动直播 SDK 如何实现自定义渲染?

Android端参考:https://cloud.tencent.com/developer/article/1470377

4. 移动直播直播播放如何获取YUV数据?

Android端参考:https://cloud.tencent.com/developer/article/1470373

5. 动效版本SDK调用了动效接口不生效?

  • 检查YTFaceSDK.licence 命名是否正确
  • 检查licence是否过期(下载查询工具或则联系我们的开发同学)
  • 检查pitu资源是否添加正确,尤其要注意 handdetect,handtrack,res18_3M三个文件要以folder refrence形式添加,最简单的方法就是比对自己工程添加的动效文件是否和我们demo添加的完全一致
  • 如果更新了licence,请确保使用的是最新的licence,如果不确定,可以查下licence的有效期(下载查询工具或则联系我们开发同学),另外如果工程更换了licence,请先clean工程,删除本地安装包,重新编译。

七、Service服务端

1. 使用自由开播、直播连麦解决方案,如何比较统计直播间的观看人数?

1). 腾讯云直播提供统计 API,开发者可以通过调用 查询统计信息 接口来查询某条直播流的统计信息的观看人数。

2). 如果开发者项目工程中有使用到 云通信 组件,可以调用 IM 群人数统计接口。

目前方案 1) 和 2) 都统计出来的人数不是很准确,如果开发者对在线人数要求不高,可以直接上述方案。

如果开发者需要很准确的统计在线人数,最好自己服务器实现统计逻辑。

  • 增加观众数(Client -> Server) 当有新的观众加入时,意味着某个房间的观众数要 + 1,可以让 App 的观众端在进入房间时向 Server 发送一次累加请求。
  • 减少观众数(Client -> Server) 当有观众退出房间时,意味着某个房间的观众数要 - 1,可以让 App 的观众端在退出房间时向 Server 发送一次累减请求。

2. 直播后台回调错误码有哪些?

  • 用户手动断流code为1;杀死app code为3;
  • controller鉴权失败,拒绝推流code为18;
  • 服务器70s没有收到数据code为20;
  • 强制断流code为 21(21表示客户调用接口断流或者关闭流,亦或者是客户控制台点击流关闭按钮)。

3. 编译 Java 版本的 RoomService 和 WebRTC 的最佳步骤

编译 roomservice_server_java 或者 webrtc_server_java 的 war 包。最好按照这种方式 本地 run 起来,顺便编译出 war 包 来编译包。这样就能确保 能正常编译出包

八、点播

1. iOS端超级播放器集成,pod 'SuperPlayer'报错?

如果pod报下列错误,可能是本地仓库比较旧,可以尝试执行:

1). pod repo remove master

2). pod setup

3). pod install

2. TXVodPlayer点播flv格式视频缓冲时间比较长?

flv没有类似mp4的索引表,不能精确网络请求数据,现在的做法是一直往下读,所以会比较慢。建议优先用mp4或m3u8做点播。

3. 点播播放的seek方法(设置进度)怎么用?为什么播放时设置了进度值,却一直在开始点加载?

要在播放成功事件(PLAY_EVT_PLAY_BEGIN)之后调用TXVodPlayer.seek()才有效。播放器没有播放成功,无数据源信息,设置播放器进度是无效的。seek会重复触发播放事件的PLAY_EVT_PLAY_BEGIN事件,请注意不要反复seek。

注意 客户做点播,请使用TXVodPlayer,不要使用TXLivePlayer。SDK早期版本只有 TXLivePlayer 一个 Class 承载直播和点播功能,但是由于点播功能越做越多,我们最终在 SDK 3.5 版本开始,将点播功能单独分离出来,交由 TXVodPlayer 来负责。但是为了保证编译通过,您在 TXLivePlayer 中依然可以看到类似 seek 等点播才具备的功能。

4. 推流地址怎样指定任务流参数设置录制文件视频封面?

在推流地址后拼参数 &procedure=QCVB_SimpleProcessFile(1, 1,10,10) 可以对视频文件截图,得到的截图会回调给点播控制台设置的回调地址。

其中 QCVB_SimpleProcessFile 有四个参数,分别是:转码、设置水印、使用截图设置视频封面、采样截图。

参数说明:
1、若填写1,说明按默认模板处理。
2、若填写0,则不进行处理。
3、若填写10,说明按照10模板号处理。
4、转码参数那里,可以选定具体格式转。

5. 精简版和专业版SDK在点播播放器的区别?

iOS精简版点播播放器用的系统AVPlayer,Android端精简版用的EXOPlayer。专业版基于ijkplayer。

九、更多

移动直播的基础知识【直播、点播、协议】

视频卡顿怎么办【卡顿、延时】

延迟高怎么办

画质差怎么办【曝光、美颜、滤镜、马赛克、FPS、耗电量】

推流不成功怎么办

直播看不了怎么办【播放、防火墙】

怎么录制回看

怎么实现秒开【GOP、延迟修正】

怎么获取URL【流id、频道、房间、直播间】

怎么开通各项云服务【appid、bizid、key、回调、点播、云通信、sdkappid、cos、服务器】

如何联系我们【工单、技术支持】

如何适配苹果ATS

事件通知码【回调】


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

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

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

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

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、集成SDK
    • 1. 如何快速集成?
      • 2. 如何获取和修改 SDK 本都输出日志?
        • 3. 如何查看当前 SDK 版本号?
          • 4. 移动直播SDK有没有适配Android 10?
            • 5. 移动直播 TXLiteAVSDK 开发环境要求?
              • 6. Xcode编译 TXLiteAVSDK 报错解决方法?
                • 7. iOS升级 TXLiteAVSDK 6.6.7559及之后版本编译报错,报错在CocosDenshion.o?
                  • 8. TXLiteAVSDK 用 Xcode 8编译运行报错?
                    • 9. 移动直播 Android 端如何动态加载 so 库?
                      • 10. 移动直播SDK的精简版和全功能专业版的主要区别是?
                        • 11. 移动直播 SDK 的功能特性如下表:
                          • 12. iOS端怎么关闭 TXLiteAVSDK 控制台输出的log?
                            • 13. iOS端编译 TXLiteAVSDK 报重复的符号错误?
                            • 二、直播推流
                              • 1. 直播拉流报错Q通道接收失败,返回码-3是什么原因?
                                • 2. iOS端移动直播Licence校验失败报-5错误码?
                                  • 3. 直播水印为什么不显示,应该怎么添加?
                                    • 4. 怎么确保在推流或者播放过程中不会熄屏?
                                      • 5. 推流过程中报视频编码失败错误?
                                        • 6. 推流时音频采集怎么实现多个mic之间的切换?
                                          • 7. 推流的音频降噪要怎么做
                                            • 8. 移动直播TXLiteAVSDK有没有引入B帧?
                                              • 9. 动态切换纯音频推流问题?
                                                • 10. iOS端切换前后台报错编码失败?
                                                  • 11. SDK分辨率设置的540_960实际输出的分辨率是544_960?
                                                    • 12. 移动直播 TXLiteAVSDK,本地仪表盘指标数据怎么看?
                                                    • 三、直播拉流
                                                      • 1. PLAY_TYPE_LIVE_RTMP_ACC连麦低延时播放,报错获取“加速流地址失败”?
                                                        • 2. 直播可以看到画面,但是没有声音
                                                          • 3. 直播可以听到声音,但是没有画面
                                                            • 4. 直播看到的画面左右相反怎么办?
                                                              • 5. 拉流播放时怎么做到听筒与扬声器切换?
                                                                • 6. 移动直播是否支持H265
                                                                  • 7. 直播精简版播放器是否支持缓存?
                                                                  • 四、MLVBLiveRoom连麦互动
                                                                    • 1. RoomService中,房间和群组是什么关系?
                                                                      • 2. 创建房间接口doCreateRoom调用成功,但是查询房间接口getRoomList查询不到房间的信息
                                                                        • 3. 房间在什么条件下会关闭,可以通过哪个接口关闭?
                                                                          • 4. 连麦中观众列表该怎么做,RoomService 提供的三个接口可用吗?
                                                                            • 5. 移动直播连麦时,大小画面的位置可变吗?
                                                                              • 6. 连麦时有回音?
                                                                                • 7. 纯音频连麦,要怎么做?
                                                                                • 四、直播录屏
                                                                                  • 1. iOS 端录屏推流时播放端听不到麦克风采集的音频?
                                                                                    • 2. iOS端使用SDK摄像头推流正常,录屏推流失败?
                                                                                    • 五、直播云端混流和录制
                                                                                      • 1. 直播怎样录制纯音频的视频?
                                                                                        • 2. 直播后台录制Live_Tape_Start只能录制30分钟吗,如果要录制2小时甚至更长,怎么办呢?
                                                                                          • 3. 主播使用纯音频推流,为什么点播控制台没有视频文件?也没有收到录制文件落地的回调?
                                                                                          • 六、高级功能
                                                                                            • 1. 移动直播TXLiteAVSDK自定义采集数据支持哪些数据格式?
                                                                                              • 2. 移动直播 SDK 如何实现自定义采集?
                                                                                                • 3. 移动直播 SDK 如何实现自定义渲染?
                                                                                                  • 4. 移动直播直播播放如何获取YUV数据?
                                                                                                    • 5. 动效版本SDK调用了动效接口不生效?
                                                                                                    • 七、Service服务端
                                                                                                      • 1. 使用自由开播、直播连麦解决方案,如何比较统计直播间的观看人数?
                                                                                                        • 2. 直播后台回调错误码有哪些?
                                                                                                          • 3. 编译 Java 版本的 RoomService 和 WebRTC 的最佳步骤
                                                                                                          • 八、点播
                                                                                                            • 1. iOS端超级播放器集成,pod 'SuperPlayer'报错?
                                                                                                              • 2. TXVodPlayer点播flv格式视频缓冲时间比较长?
                                                                                                                • 3. 点播播放的seek方法(设置进度)怎么用?为什么播放时设置了进度值,却一直在开始点加载?
                                                                                                                  • 4. 推流地址怎样指定任务流参数设置录制文件视频封面?
                                                                                                                    • 5. 精简版和专业版SDK在点播播放器的区别?
                                                                                                                    • 九、更多
                                                                                                                    相关产品与服务
                                                                                                                    领券
                                                                                                                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档