接入腾讯云直播相关操作以及概念
一、直播中必知的rtmp协议
、推流
和拉流
相关概念
1、关于rtmp协议rtmp
:
RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。支持该协议的软件包括Adobe Media Server/Ultrant Media Server/red5等。RTMP与HTTP一样,都属于TCP/IP四层模型的应用层。
多种变种:
- RTMP工作在TCP之上,默认使用端口1935
- RTMPE在RTMP的基础上增加了加密功能
- RTMPT封装在HTTP请求之上,可穿透防火墙
- RTMPS类似RTMPT,增加了TLS/SSL的安全功能
2、拉流和推流
接一个直播必须理解拉流
和推流
概念。
-
推流
:比如,你在斧牙开了一个直播,摄像头一直对着人或屏幕进行录制,在这个过程中,就是往服务端里进行推流。 -
拉流
:和推流相反,拉流就是你在看别人直播的过程中,页面上播放的视频就是从服务端进行的拉流。
二、举个栗子
下面举个例子来说明一下推流和分流的相关概念:
看下斧牙直播的直播类型:
1、PC端推流:
捕捉屏幕推流直播:
摄像头推流直播:
2、安卓和IOS推流
下面再看下拉流的几种形式:
3、web端拉流
4、Android端拉流
三、腾讯云拉流推流实战操作
腾讯云有免费的40G流量供我们玩耍,搜索云直播并进入。需要添加一个推流域名
和拉流域名
。推流域名会给我们提供,我们只需要配置一个拉流域名即可。
推流域名直接添加即可,下面操作下拉流域名的配置:
1、进入到域名管理
2、选择播放域名,添加一个自己已经备案好的
域名。
3、复制cname
添加好后有个感叹号,将里面的cname复制到你的域名供应商。
4、打开你供应商平台(阿里云、腾讯云、百度云等)的域名解析列表,将cname配置到指定域名的记录值
中即可。
5、稍等十分钟左右,就会变绿了
这时候,推流域名和播放域名(拉流域名)就配置好了,下一步就是来生成
推流域名
和拉流域名
提供给客户端就行啦
生成推流域名和拉流域名
腾讯云直播域名配置管理界面也提供了生成方式,直接填入StreamName
即可生成!
或者也可以使用官方提供了一个php版本的生成方式:
/**
* 获取推流地址
* 如果不传key和过期时间,将返回不含防盗链的url
* @param domain 您用来推流的域名
* streamName 您用来区别不同推流地址的唯一流名称
* key 安全**
* time 过期时间 sample 2016-11-12 12:00:00
* @return String url
*/
function getPushUrl($domain, $streamName, $key = null, $time = null){
if($key && $time){
$txTime = strtoupper(base_convert(strtotime($time),10,16));
//txSecret = MD5( KEY + streamName + txTime )
$txSecret = md5($key.$streamName.$txTime);
$ext_str = "?".http_build_query(array(
"txSecret"=> $txSecret,
"txTime"=> $txTime
));
}
return "rtmp://".$domain."/live/".$streamName . (isset($ext_str) ? $ext_str : "");
}
echo getPushUrl("123.test.com","123456","69e0daf7234b01f257a7adb9f807ae9f","2016-09-11 20:08:07");
特别提醒
:播放地址的StreamName和推流地址的StreamName必须一致。
至此,推流地址
和播放地址
就能生成了,我们将这俩地址提供给客户端即可!
四、进行直播测试
由于博主经济条件有限,只有一个手机,只能通过手机推流,电脑拉流来进行测试。
首先测推流,我用uniapp组件里的一个推流demo实现了推流:
推流成功后,开始拉流,提供一个线上的拉流平台,这样,用一个手机就能测了。
至此,推流拉流的工作就实现啦。剩下的都是一些逻辑处理了,开房间,弹幕,刷礼物等……
五、总结
推荐一个php方面的七牛云和腾讯云直播sdk,里面封装了一些东西还是比较方便的。
推荐阅读