利用第三方推流服务进行简易直播
视频直播基础构架
对于既不了解视频直播,也没有深入查阅文档的人们看来,或许直播略显神秘和高大上。尤其从技术上来说,可能算是当前互联网最“尖端”和火热的产品了!或许,一般人并不能搞定视频直播这样一个产品!
嗯,对的!确实是这样的!视频直播还真不是一个简单活儿!有多困难,我就不叨逼叨了。知乎上高手回答超级详细,建议取阅!
可是,难道,普通人就不能玩直播了吗?当然不是!直播,谁都可以做!甚至不需要一行代码!!!
唠嗑完了,咱回头讲点儿正经的!既然是要做直播。辣么,我们来从技术层面说说直播!一个最简单的直播至少是三方参与的!推流方、服务器、拉流方!
- 所谓推流方,其实就是直播端。主播端需要做的事情简单的说分两方面:信号录入和信号上载!
信号录入工作,就是通过摄像头、录音设备等将这些信号,甚至于存储在计算机本地的媒体资源载入上传载体的过程。
所谓信号上载,就是将录入的信号上传到服务器的过程。
PS:信号录入、上传载体工具比较好的当属OBS!当然市面上有很多推流工具,但是免费、功能强大的,OBS确实是非常棒的!
- 服务器是接受推流的设备!它的作用是将推送过来的流下发给观众/听众,为了适应不同的受众/平台,服务器可能会将信号流转成不同的形式。这种形式可能是:原始流(RTMP)、FLV、M3U8,甚至是传统的音视频文件中的一种或者多种。
PS:如果需要播放原始流,可以使用VLC播放器来操作。VLC->打开网络资源->填写RTMP地址->播放。
- 所谓拉流方,事实上就是受众方。拉流的动作其实就是将存在于服务器的媒体流信息下载本地播放的一个过程。
既然是三方,为什么最开始的图片却放了那么多的东西?
事实上,我们一般见到的直播,远没有三方模型这么简单!主播是需要和观众互动的!当然,这个互动,自然是可以和流媒体数据一起走,但是从性能、带宽各个方面考虑,互动数据最好是和流媒体分开传输!所以,图中就出现了方块儿的部分!
那么,不要服务器行不行呢?理论上应该是可以的!只要数据传输遵循RTMP(Real time messaging protocol)协议,和这个协议相关的概念还有很多,比如RTSP(Real time Streaming protocol)、HLS(HTTP Live Stream)。
这些概念,对于做直播来说,貌似是必需明了的!
真直播与伪直播。其实,市面上没有这样两个概念。只不过,为了便于理解,我随便起了个名字!所谓真直播,意思是说,在整个传输过程当中传输的都是流数据、收发方都采用流的方式来处理数据的直播。这种直播,对带宽、硬件和其他附加要求比较高。而,很多时候,为了节省带宽、方便多终端拉流,我们很多时候都会采用伪直播的方式来分发数据!比如m3u8,事实上就是将流信号转成多个m3u8小文件便于传输的表现形式!
废话多了,居然忘了说正事儿。
其实,对于视频直播,最关键的当然应该是直播服务器了!超级牛逼的公司做直播大概会采用自建服务器的方式!这种方式需要的技术实力比较高!带宽成本、延时长短、可扩展性都是有要求的!
所以,很多人会使用第三方的直播云来做直播后台。直播云,简单的说,就是一个收流、分发的一个工具!目前,腾讯、阿里、Ucloud、七牛、乐视、百度、金山……都有直播云。
其中,阿里的直播云,几乎做到了开箱即用!阿里云直播操作手册网页版 和 利用阿里云视频直播服务
快速进行一场直播活动
其实,其它平台也是一样的!这一切,无非就是处理推流、拉流的的一个过程!不管平台怎么变,都大同小异!
比如七牛:七牛直播,快速开始指南