专栏首页即时通信与音视频LiteAVSDK 使用 Licence 介绍与常见问题
原创

LiteAVSDK 使用 Licence 介绍与常见问题

1、Licence 背景介绍

LiteAVSDK 是视频云终端研发团队面向开发者提供的一系列解决方案依赖的核心库,其中包含移动直播、AI变脸挂件、短视频功能需要配合相应的Licence才能正常使用。

Licence 从字面上看就是许可的意思,这里可以类比为通行证。开发者持有合法的通行证(Licence)才能调用 LiteAVSDK 里面对应权限的 API 接口。

2、 Licence 分类:

移动直播 Licence:用于移动直播推流相关功能,从 LiteAVSDK 6.4版本开始实行。

P图 Licence用于 AI 变脸挂件(大眼、瘦脸、瘦鼻、V脸、下巴拉伸或收缩、动效、绿幕)相关功能,4.9版本之前只支持本地 Licence 集成方式,之后的版本支持云端下载的方式。

短视频 Licence用于短视频录制、短视频编辑、短视频合成相关功能,从 LiteAVSDK 4.5版本开始实行,4.9版本之前只支持本地 Licence 集成方式,之后的版本支持云端下载的方式。

3、 从 LiteAVSDK 版本来看Licence的分类:

①、移动直播分为精简版、专业版、商业版,其中精简版和专业版只用到了移动直播 Licence,企业版用的是移动直播 Licence + P图 Licence。

②、短视频分为精简版、基础版、商业版、商业版Pro,其中精简版、基础版对应的短视频 Licence 权限不一样;商业版是在基础版的基础上增加了P图 Licence;商业版和商业版Pro对应的 P图 Licence 权限不一样。

3. Licence 集成方式

目前 Licence 集成方式有2种,老的方式是本地集成,把下载好的 Licence文件放到工程目录;新的方式是通过setLicence 设置 key 和 url,联网自动下载 Licence。

4. Licence 集成方式对比

Licence 集成方式

优势

劣势

本地集成

集成方便,不容易出问题

Licence到期后需要重新打包替换Licence

setLicenceURL集成

无需本地修改,支持自动续期,Licence升级等,相比本地集成方式不需要打包多个Licence文件,一行代码设置key和url可以下载多个Licence

第一次需要联网才能下载,修改了Licence信息容易引发线上问题

Licence 代码设置方式

iOS端:

//iOS建议在 [AppDelegate application:didFinishLaunchingWithOptions:] 中添加
//移动直播 Licence 在 TXLiveBase 中设置
[TXLiveBase setLicenceURL:@"http://ugc-licence-test-1252463788.coscd.myqcloud.com/RDM_Enterprise_hybrid.licence" key:@"95274ac7bfd07ea392e8fdff2ba5678a"];
//短视频 Licence 在 TXUGCBase 中设置
[TXUGCBase setLicenceURL:@"http://license.vod2.myqcloud.com/license/v1/952744b3bec18bbe4ff5d917dce2e2e1/TXUgcSDK.licence" key:@"9527343005fb15ded8bfccdde7deac10"];

Android端:

//Android 建议在 application 中添加
//移动直播 Licence 在 TXLiveBase 中设置
TXLiveBase.getInstance().setLicence(context, LicenceUrl, Key);
//短视频 Licence 在 TXUGCBase 中设置
TXUGCBase.getInstance().setLicence(context, LicenceUrl, Key);

Licence 校验流程

重点说明:

①、本地集成了 licence 文件同时调用了 setLicenceUrl 接口,LiteAVSDK发现本地有对应文件名的 licence 文件就不会去 licenceUrl 继续下载了,所以2种方式只能选其一;

②、LiteAVSDK 6.4版本之前设置 licence 只需要通过 TXUGCBase 调用 setLicenceUrl 接口,6.4版本及之后移动直播需要用 TXLiveBase,短视频需要用TXUGCBase,2者需要分开设置,同时用到了需要都设置;

③、每个 licence 都绑定了包名,SDK校验的时候会对包名进行校验,所以包名不正确也会导致校验失败;6.x版本以下SDK不支持新版本的P图 licesne 校验,

④、6.x版本的sdk才支持,有客户还是用到5.x版本的SDK需要续签的注意,要么建议客户用新版本的SDK,要么让后台同事继续用旧版本的P图 licence;

⑤、当前腾讯云控制台下载的 licence 本地文件是新版的,如果用的5.x之前的版本可能会校验失败,建议升级SDK版本;

⑥、每个腾讯云账号点播服务下开通只会有一个 licenceKey 和 licenceURL, 但是可以包含多个 licence,比如经常遇到同一个 licenceKey 和 licenceURL 下载下来既有测试 licence 也有正式版 licence;

⑦、一个 licenceKey 和 licenceURL 下载下来的多个 licence 会根据包名匹配校验,如果包名一致,以第一个为准;

⑧、早期腾讯云控制台修改了 licence 包名,可能会遇到全网 CDN 刷新比较慢,无法下载到最新 licence 问题,后来该问题已修复;

⑨、如果腾讯云控制台修改了 licence 包名,本地已经上线的 App 不会去主动更新,只有到了过期时间才会去重新下载,建议每次更新版本把本地对应文件目录的 licence 文件手动删除,如果是调试建议先卸载 App。

5、Licence 问题排查介绍

1、先确认调用直播推流或者短视频相关功能接口,是不是返回-5错误码,-5代表 licence 校验失败;

2、调用 TXUGCBase 的 getLicenceInfo 接口获取当前 licence 信息,如果获取到为空,说明没有正常下载到 licence,检查网络或者 licencekey 和 licenceURL是否正常。否则为返回一段 Json 字符串信息

{
    "appData":[
        {
            "type":"formal",
            "feature":1,
            "packageName":"com.content.liteav.demo",
            "startDate":"2018-07-06T00:00:00Z",
            "bundleId":"com.tencent.liteav.demo",
            "endDate":"2029-07-30T00:00:00Z"
        },
        {
            "type":"formal",
            "feature":1,
            "packageName":"com.content.liteav.demo",
            "startDate":"2018-07-06T00:00:00Z",
            "bundleId":"com.tencent.DeviceManageIOSApp.dailybuild",
            "endDate":"2029-07-30T00:00:00Z"
        },
        {
            "type":"formal",
            "feature":1,
            "packageName":"com.content.liteav.demo",
            "startDate":"2018-07-06T00:00:00Z",
            "bundleId":"com.tencent.fx.rtmpdemo2",
            "endDate":"2029-07-30T00:00:00Z"
        },
        {
            "type":"formal",
            "feature":1,
            "packageName":"com.content.liteav.demo",
            "startDate":"2018-07-06T00:00:00Z",
            "bundleId":"com.tencent.fx.rtmpdemo2.ReplaykitUpload",
            "endDate":"2029-07-30T00:00:00Z"
        },
        {
            "type":"formal",
            "feature":1,
            "packageName":"com.content.liteav.demo",
            "startDate":"2018-07-06T00:00:00Z",
            "bundleId":"com.tencent.DeviceManageIOSApp.dailybuild.upload.db",
            "endDate":"2029-07-30T00:00:00Z"
        },
        {
            "type":"formal",
            "feature":1,
            "packageName":"com.content.liteav.demo",
            "startDate":"2018-07-06T00:00:00Z",
            "bundleId":"com.tencent.fx.rtmpdemo2.Upload",
            "endDate":"2029-07-30T00:00:00Z"
        }
    ],
    "pituLicense":"9527lNSZhna7XvUtA8zZNW+Ylr8aOI1jnjFnzXaSkgiPRXnkVnHzfDvsnTx5A3KGhCOdJw7qBiPjgjoisaRJv3H7qLc5hWI7sHV5bGN5Rn0bBxmHBtnh57bmYbIyysQfaHUUEtQejPvIXrSYGmWWhkLdwUHcKNrQsfb7LW+cfXWMbsDd6tg5VaDV4PFbC3x6IvBhgr3vh8t1+cz13UzVmlGp3qn2AdMsP2bSsnxiGgLXs0xchRoSA5N7V7OXh7/hLM2qcRwvwdMQOqF2gcb+p4heW8ISVgfUgKmVqN9HptJTpitergZjcFxaEAMID2XJJkUYKmjRl+GQCPlxIwgN4w=="
}

3.根据信息对比包名和过期时间是否正常;

4.点播控制台查看对应账号包含的所有 licence;

5.如果还无法解决,提供以上信息给腾讯技术支持帮忙排查。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • OpenGL入门

    笔者最近在写安卓端OpenGL ES采集渲染摄像头的功能,恶补了一下OpenGL的相关知识,本篇权当记录。

    腾讯云-chaoli
  • 实时音视频SDK,如何实现类似微信的纯语音通话功能?

    实时音视频TRTCSDK适用的业务场景是视频会议、坐席视频、在线教育等,如果您希望实现类似微信的语音通话、语音会议功能,TRTCSDK也是支持的,只需要微调几个...

    腾讯云-chaoli
  • TRTCSDK自定义采集YUV视频通话

    摄像头通话功能,是TRTCSDK对系统摄像头进行了封装,采集摄像头数据,编码传输通话。

    腾讯云-chaoli
  • PHP 面向对象篇:类与对象、访问控制

    PHP 5 完全重写了对象模型,从而使得自 PHP 5 开始,PHP 具备了完整的面向对象编程能力。面向对象编程(即 Object Oriented Progr...

    学院君
  • dplyr_new version-across

    2020年5月29日,dplyr迎来来大更新,作为大版本的更新,还是有必要进行学习一下

    用户7760819
  • android通过led实现手电筒功能

    本文实例为大家分享了android通过led实现手电筒功能的具体代码,供大家参考,具体内容如下

    砸漏
  • 封装一个 Swift-Style 的网络模块

    Swift 跟 OC 有着完全不同的设计哲学,它鼓励你使用 protocol 而不是 super class,使用 enum 和 struct 而不是 clas...

    Sheepy
  • Docker 网络

    本文介绍 Docker 网络。 官方文档:https://docs.docker.com/engine/userguide/networking/ 网络类型 b...

    康怀帅
  • Sublime-evernote:支持用 Markdown 写印象笔记(Evernote)

    { "noteStoreUrl": "", "token": "" } noteStoreUrl和token值为之前打开的页面的上的值。保存...

    Joel
  • 使用xmake构建c++20 modules

    c++ modules已经正式纳入了c++20草案,msvc和clang也已经基本实现了对modules-ts的支持,随着c++20的脚步离我们越来越近,xma...

    ruki

扫码关注云+社区

领取腾讯云代金券