Android开发经验谈Android开发Android技术知识

腾讯视频直播01-直播常见协议和集成sdk

2018-05-29  本文已影响23人  Jsonjia
直播流程

播放流程:获取流 → 解码 → 播放
录制播放路程:录制音频视频 → 剪辑 → 编码 → 上传服务器,别人播放
直播过程:录制音视频 → 编码 → 流媒体传输 → 服务器 → 流媒体传输到其他app → 解码 → 播放

直播基础知识

①直播常见的协议有三种:RTMP、FLV和 HLS

直播协议 优点 缺点 播放延迟
RTMP 能推能播,延迟低 高并发情况下不佳 1~3s
FLV 成熟度高,延迟低,手机app游戏直播首选 必须要用app播放 2~3s
HLS 手机浏览器支持度高 延迟非常高 10~30s

②常见的点播协议也有三种:MP4、HLS和FLV

点播协议 优点 缺点
MP4 手机浏览器支持度高 格式过于复杂和娇贵,容错率差,对播放器要求高
HLS 手机浏览器支持度高 大量小分片的文件组织形式,错误率和维护成本均高于单一文件
FLV 格式简单问题少 手机浏览器支持差

③常见的推流协议:
虽然RTMP在直播领域不是特别流行,但是在推流服务,也就是主播->服务器这个方向上,RTMP则居于主导地位,目前国内的视频云服务都是以RTMP为主要推流协议。

下载SDK

腾讯提供了集成librart方式,但是有好几个版本类型的sdk,我打算把视频推流,直播,点播,短视频都写下,所以我下载全功能专业版
下载完解压之后:

截图.png
文件名 说明
LiteAVSDK_Professional_4.6.4218.aar 适用于 Android Studio 用户
LiteAVSDK_Professional_4.6.4218.zip 适用于 Eclipse 用户

这里我们选择第一个aar包,放到AS中 /app/libs 目录下
在工程 app 目录下的 build.gradle 中,添加引用aar包

dependencies {
      compile fileTree(dir: 'libs', include: ['*.jar'])
      // 导入腾讯云直播 SDK jar
      compile(name: 'LiteAVSDK_Professional_4.6.4218', ext: 'aar')
}

在工程目录下的 build.gradle 中,添加 flatDir,指定本地仓库:

 allprojects {
     repositories {
         jcenter()
         flatDir {
            dirs 'libs'
         }
    }
}

在工程目录下的 build.gradle 的 defaultConfig 里面,指定 ndk 兼容的架构:

defaultConfig {
    ...
    ndk {
         abiFilters "armeabi", "armeabi-v7a"
         // 如果您使用的是商业版,只能使用 armeabi 架构,即:
        // abiFilters "armeabi",
    }   
}

然后编译下工程

集成之后,记得添加权限,这里不加了,自行去腾讯官网添加

测试下是否集成成功,在Activity添加:

String versionStr = TXLiveBase.getSDKVersionStr();
Log.d("zjp", "versinoStr=" + versionStr);
截图.png

运行之后在 logcat 中看到当前sdk版本为:4.6.4218,跟我们上面集成的sdk版本一样,说明集成sdk成功。

上一篇 下一篇

猜你喜欢

热点阅读