二 基于公有云平台实现直播、点播及小视频功能

RTMPS类似RTMPT,但使用的是HTTPS连接;
RTMP 是目前主流的流媒体传输协议,广泛用于直播领域,可以说市面上绝大多数的直播产品都采用了这个协议 。
RTMP协议就像一个用来装数据包的容器,这些数据可以是AMF格式的数据,也可以是FLV中的视/音频数据 。一个单一的连接可以通过不同的通道传输多路网络流 。这些通道中的包都是按照固定大小的包传输的 。
五、拉流
将音视频推流至流媒体服务器后,就完成了直播的第一步,接下来就有一个发布的中心,所有人可以来这个发布的地址拉去视频流,实际提供服务的产品有很多 , 
比较有名的有:
流媒体解决方案(C++)
流媒体平台框架(C++,国产精品)
实时流媒体播放服务器程序 (C++)
Flash流媒体服务器 Red5 (Java)
流媒体服务器 Open(Java)
FMS流媒体服务器 (Adobe,收费的)
Wowza流媒体服务器(Java)
开源流媒体平台(Java)
Nginx+RTMP插件
其中Wowza也是收费的,如果你要用于商业用途的话需要购买官方的正版
,你可以先通过官方申请一个测试为期1个月的
六、CDN分发加速
这部分算是直播,点播技术能够广泛的传播的重要因素
七、解码播放
使用播放器可以将拉取到的数据流进行解码并播放
PC端:VLC比较广泛使用并且很好用的播放器
移动端:播放器
当然我说的每一个点都比较粗略,大概介绍一下实现原理 , 别的不多BB,直接开始使用公有云平台提供的服务,腾讯云LVB和阿里云( Live)
实践出真知,先从腾讯云开始:
首先,我们需要有一个实名认证后的企业或个人账户,然后需要点击申请开通直播服务(默认是没有开通的)

二  基于公有云平台实现直播、点播及小视频功能

文章插图
等待审核,官方告知的时间是3-5个工作日,当然这个是可以通过提交工单等方式来催促加速开通的 。
服务开通后我们就可以开始进入直播控制台
二  基于公有云平台实现直播、点播及小视频功能

文章插图
详细的内容就不做介绍了,只要实际操作都很直观 , 直接切入正题,主要能够提供直播服务的核心在“接入管理”,接入管理下拉后会有两种接入方式:
1、直播码接入;
2、频道托管;
二  基于公有云平台实现直播、点播及小视频功能

文章插图
就像截图中提示的一样,直播码接入属于推荐哦,那就是官方想让你用的版本,说白了这个直播码的模式对于用户来说定制化更高,可以更加灵活的供用户使用接入到自己的直播平台中,但是实际上还是推荐先使用频道托管的模式,为啥?更直观呗?。。?
进入托管频道开始
二  基于公有云平台实现直播、点播及小视频功能

文章插图
直播赠送5个免费推流频道,正在推流并发频道数超过5个时(不包括未推流频道) , 按照每月并发实际推流频道峰值数减去5个免费频道收费 。超出部分收取60元/视频/月的费用
点击创建频道
二  基于公有云平台实现直播、点播及小视频功能

文章插图
标有星号的项目都要填写,基本也没有什么大的注意的地方,需要留意的是如果你的直播提供多码率的播放的话,你需要将编码部分的转标清和转高清勾选,这样才能提供多码率的播放地址,否则有只有原始码率的资源可供播放
还有水印部分,腾讯云提供全局设置,全局设置中可以自定义你的水印logo
二  基于公有云平台实现直播、点播及小视频功能

文章插图
OK,就这样建好一个频道,我们进入频道查看一下
二  基于公有云平台实现直播、点播及小视频功能

文章插图
设置开通完频道后我们会发现腾讯默认是采用RTMP协议来推流的,别问我为什么知道 , 看看生成的直播源设置一栏,有什么有价值的部分吗?当然,这里面有价值的部分就是直播源设置这一栏,直播源设置中有地址
这个地址的构造有一定的规律,实际产品中,您不可能为每一个主播手工创建推流和播放 URL , 而是要由您的服务器自行拼装,只要符合腾讯云标准规范的 URL 就可以用来推流 , 如下是一条标准的推流 URL,它由三个部分组成:
二  基于公有云平台实现直播、点播及小视频功能

文章插图
防盗链签名怎么生成的呢?实际这个部分不是很关键 , 但是还是说一下,防盗链签名这部分是由直播频道ID加过期时间戳MD5得到的,过期时间戳是采用UNIX时间的形式 , 比如说:
频道ID:
过期时间戳:
防盗签名:MD5()=,生成32位小写签名
其他的其实没有什么了,可以直接推流测试下,那推流怎么推呢?最简单的方式直接使用开源的推流工具OBS,OBS是什么?百度一下你就知道,具体推流工具的设置也不多做说明,需要说明的是得到这个频道的地址后如何将推流端的数据流推到腾讯云?
点击OBS的设置
二  基于公有云平台实现直播、点播及小视频功能

文章插图
弹出对应的设置窗口,感兴趣的话可以都点开看下会有什么具体设置,我们要做的只是点击“流”,设置具体的推流地址
二  基于公有云平台实现直播、点播及小视频功能

文章插图
那用上面的那个地址为例rtmp:///live/?bizid=11179
流类型选择自定义流媒体服务器,URL填live前面的部分
rtmp:///live/
流名称填余下部分
?bizid=11179
流名称默认需要隐藏,也可以显示 。
然后点击保存,这样推流的地址已经配置好了 。
接下来我们要做的就是为直播找一个直播的源头,在来源一栏中点击“+”号弹出以下菜单
二  基于公有云平台实现直播、点播及小视频功能

文章插图
直播的来源很多,我们不全部说明了,这里就说最常用的两个,一个是媒体源,一个是视频捕获设备,媒体源顾名思义就是添加一个本地的资源传上去让他播放呗,视频捕获设备就是调用你的摄像头拍你呗 。
话说源头也有了,如何播放呢?早就都准备好了
二  基于公有云平台实现直播、点播及小视频功能

文章插图
点击分享URL , 然后直接把URL甩在浏览器上就OK了?。。?
二  基于公有云平台实现直播、点播及小视频功能

文章插图
当然这样看起来有些突兀,因为只是一个直播窗口 , 但是实际情况窗口是在开发过程中嵌套在网页中的,类似这样:
二  基于公有云平台实现直播、点播及小视频功能

文章插图
这样就实现了直播的功能,实际情况下 , 可以把腾讯这边提供的这个服务当做是一个黑盒,开发的过程中只需要将其嵌套进去就可以了,同样也支持着移动端的开发 , 以及视频加密这些小功能 。
既然频道托管模式已经说了这么多,那直播码接入方式就不需要多说了,照着这个来就可以了 , 没有太大的区别 。
【二基于公有云平台实现直播、点播及小视频功能】附一个腾讯的计费说明