腾讯云视频直播sdk开发攻略

视频直播这一两年在移动互联网上可以说是非常的火,各种视频直播软件层出不穷。有的通过自己的推广宣传确实火了起来,比如:映客。

我之前也是在一家专门做视频直播的公司打酱油,当时对这个概念还是很模糊,后来才慢慢的了解清楚视频直播的这个概念。后来离开这家公司,到现在的公司,做了一段时间,又有需要做视频直播的需求。由于公司各方面原因,只能引用第三方的sdk,最后选择的腾讯云。所以我下面给大家讲一下开发过程。

前两点 说下视频开发的引言,腾讯云sdk相关直接跳入到第三步。


一  视频直播开发sdk解决方案


直播开发我所知道的有两种解决方案

1.自己公司有比较成熟的c++ 开发人员,自己开发sdk so库等  做 视频推流 ,转码 解码,美颜等功能。有人说github上 很多开源库都是 视频直播的框架,免费而且也不用自己开发,但是你要知道 这些东西如果出了问题,你怎么修改它,还是要自己有能懂这些东西的 开发人员,才能解决。道理和自己开发的意思差不多,但是可能会省一些时间。


2.用第三方sdk开发,我知道的 视频直播开发sdk有 金山云 ,腾讯云 ,网易云 等等,其实还有很多 ,我就不一一列举了。 


两种方式优缺点 自己开发 sdk 耗费人员及大量时间 ,开发进度会慢很多。而且对技术要求也比较高,适合公司本身有c++且有相关经验的程序员。如果公司本身没有可以开发sdk的程序员,只有客户端及服务端程序员。且要求开发周期比较短。(本人推荐)。

如果是 选择第一种方案的 ,下面的就不用继续看了....


二  视频直播三方sdk的选择


这个一般都从两方面考虑

1.  费用问题

每家的sdk计费模式不同,这个每家的首页文档里面都有详细的介绍,我就不一一截图说明了。

2. 技术功能点及稳定性

稳定性来说,之前一个大神给我推荐的是金山云 。但是由于后来我并没有用到 ,只能等待用过金山sdk的开发人员来说明了。


三 直播技术架构

链接 :http://lib.csdn.net/base/liveplay/structure

四 腾讯云视频开发攻略


上面说了这么多废话,终于对应上标题了。大家久等了,不好意思....

和大家一样   百度 腾讯云视频直播  进入腾讯云首页

腾讯云视频直播sdk开发攻略_第1张图片


点播 直播  互动直播  微视频  这么多sdk..... 问题来了 这都是什么玩意? 别着急 等我细细来解答。

1 sdk选择

1)直播  互动直播

大家做直播前肯定也玩过其它家的直播 比如映客 花椒等

如果是经常玩 肯定知道连麦是什么意思,就是一个主播可以邀请另一个人和他一起直播 ,说白了就是多人直播。

倘若你们有这种需求 ,有多人互动 或者 多人视频会议的app  那么请直接选择 互动直播的sdk。


如果没有这种需求,就是原始的一个主播 直播,比如:老师授课,专家讲课等 在线教育类等 总之 就是一人直播的 ,我强烈建议选  直播sdk。不要用互动直播。后面说具体原因。

2)点播 

视频回放,录制会看的sdk。

简单来说就是 直播的视频保存下来然后回放功能。

还有就是 如果自己本地有一些视频资源 想让用户可以看到。也可以上传,然后观看。

3)微视频 

这个不多解释了  快手  美拍等。


选择好自己的sdk后 那么请直接申请加入 腾讯的官方 客服 技术支持群:


直播sdk: 腾讯云直播推流播放SDK 538797442

点播sdk:腾讯云点播产品交流 202861142

互动直播sdk:腾讯云互动直播交流 207177891

腾讯IM云通讯技术交流 468195767

还有一个很多人不知道的... 厉害了我的哥...

小直播技术交流群 324124586

提前加  互动直播群 验证通过非常慢。


到现在为止 大家一定要清晰的知道  自己 是选用直播sdk 还是互动直播sdk ,因为是两套sdk 两套技术支持 两套开发过程 。


直播功能点说明:

直播  观看直播    直播回放  观看直播回放  直播内im聊天室(互动发消息) 头像列表 成员进出系统消息  点赞 美颜 等

  

* 选用直播sdk的

加入 直播群  云通讯群  小直播群

补充说明:小直播 是基于直播sdk开发的一套视频直播app源码 ,里面的直播基本的功能点 他们都有。但是 小直播是基于  直播sdk开发的。

所以如果大家 现在是选用的直播sdk  那么 我推荐用小直播的源码及文档研究  上面也有群。 小直播也是他们官方推的一个东西。

文档:https://www.qcloud.com/doc/product/267


* 选用互动直播的sdk

互动直播里面的源码 是随心播    里面缺的功能是 头像列表 和 回放功能。所以  我也建议 大家加一下 小直播群  下载一下源码。里面有功能后期你会参考用到(头像列表和回放功能,没有就算了)

有大神要喷我了...头像列表不就是一个listview就行吗..好吧 大哥我错了 别喷了 好吗....  我只是推荐大家参考一下,不是打广告的。

文档:https://www.qcloud.com/doc/product/268


还有一定要看的 研发综述说明(  主要介绍  客户端  服务端 腾讯云三者之间的 整个交互流程)   https://www.qcloud.com/doc/product/268/4909



2 开发流程

1)申请应用

腾讯云视频直播sdk开发攻略_第2张图片

2)代码相关


具体代码开发流程   看demo源码。别看他们写的那些文档,文档只是个形式,为什么因为 文档上面很多都写的比较粗,而且文档很旧 落后sdk好几个版本。

最起码现在是这样 我的sdk用的是互动直播1.8.2

另外  他们官方的demo源码都是  基于 android studio的  不是eclipse项目。 如果有开发者用ec开发的 可以手动建一个项目 然后把相关的东西拷贝过来。

如果遇到比如一些so库相关的问题 可以参考我之前一篇文章: 

android开发 加载so库的解析和出现的各种错误分析

互动直播参考 随心播源码     直播参考小直播源码


说了半天都是废话,看源码。 对  就是源码。因为说流程会遗漏一些细节,但是源码你跑通了 ,再整合到自己项目里面心里面就会比较有底气了。


注意点 我说几点: 

  1.配置文件里面的相关配置

  2.腾讯云管理台 添加好应用的相关配置

  3.application 里面的初始化 

  4.IM云通讯相关的jar和so库都参考源码里面的就可以 不要去云通讯sdk里面再去拷贝一份

  5.登录里面如果是独立模式    流程是 向业务服务器后台请求sig ,拿到sig 向腾讯云请求登录。登录成功后初始化 AVSDK

  6.推流问题  不推流 也可以观看直播

  7.回放功能是  用的点播sdk   也就是直播的sdk (点播和直播的东西在一个jar包里面)用了互动直播sdk开发的同学发现,如果项目需要做 视频回放功能 ,还要集成 直播的          sdk...... 

  8.视频列表  获取视频房间数据等  看 上面研发综述那个连接  有详细交互流程  看完就明白了。

  9.回放的视频  90分钟一个文件  ,超过90分钟就是下一个文件... 自然就是两个url 至于怎么合并 暂时还没研究...


开发过程中问题还会有很多 :


解决方案:

 1.上面加的群里面问   直播的群 回答问题没有问题  互动直播就一个人回答问题..你没看错 就是一个人

 2.提交工单  管理中心右上角有工单

 3. 论坛找相关问题 http://bbs.qcloud.com/forum.php

    

3 DEMO源码下载链接

腾讯官方的链接  : 

   直播demo:直播群  群文件里面有

   随心播(互动直播demo):  https://github.com/zhaoyang21cn

   小直播demo: 

小直播Android代码:
http://download-10055601.cos.myqcloud.com/xiaozhibo_android_2016.10.10.zip 
小直播iOS代码:
http://download-10055601.cos.myqcloud.com/xiaozhibo_ios_2016.10.10.zip 
小直播业务服务器代码:
http://download-10055601.cos.myqcloud.com/xiaozhibo_business_svr_2016.10.10.zip 

想要随心播 ec源码的也可以直接加我们群  群号码下面有。

ps:小直播demo下载链接 我是从小直播群公告里面粘贴出来的链接。  他这个应该还要解压密码。密码大家可以加群联系 ,因为现在小直播还在申请软件著作权的阶段。大家直接加群 有问题直接去群里面问比较靠谱


在开发过程中走了很多弯路,虽然最后按期完成。但是很累 写这篇文章的目的就是让大家准备做开发的 在开发之前有个大概了解,让大家少走一些弯路。如果还有其它问题也可以加入我的qq群: Android开发经验交流群454430053    ,互相交流解决。本人水平有限,如果哪里写的有问题,希望大家提出 ,肯定改正。

暂时只想到这些,后续会有补充,愿这个世界没有bug....

你可能感兴趣的:(【Android开发进阶】,【android之进阶篇】,android视频直播,视频直播,腾讯云视频直播,互动直播sdk,腾讯云)