零基础搭建直播室与云直播平台这本书讲的是什么

简介: 视频流媒体直播技术详解,适合自媒体、教师、技术人员及爱好者。

目     录

以前看世界杯直播只能坐在电视机前,而如今可以选择电视、电脑、手机以及平板等众多设备,随时随地关注赛事,不用担心错过任何精彩瞬间,这一切都源于视频流媒体直播技术的发展。视频流媒体直播技术广泛应用于在线教育培训、活动庆典直播、数字电视广播、视频聊天通信、个人娱乐直播等众多领域。

可能大家在网上看视频多数是用点播的方式。点播与直播有什么不同呢?点播是将做好的视频内容放在服务器上,用户点击后,浏览器等客户端将视频下载到本地硬盘后再播放,就好比图1-1-1中的顾客在咖啡馆点了一杯咖啡,倒满杯子后再喝。而直播的节目源是连续传输的,边传边看,就像对着水管直接喝似的。

图1-1-1

早期的点播技术曾采用RTMP协议,而现在几乎都改为使用HTTP协议。按照常规的HTTP协议下载视频文件进行点播,必须等视频文件下载完成后才能播放,由于视频文件一般都比较大,将等待很长时间。对视频文件及HTTP服务器进行少许改进后,只需要下载缓存一定的数据量,一般只需几秒,就可以边下载缓存边观看视频了,这就是所谓的HTTP流式下载点播技术。如同图1-1-2中的人,不必等待杯子续满,就可以一边续一边用吸管喝。

视频流媒体直播是对连续不断的音视频进行捕获,以某种编码算法进行实时压缩,再基于特定的协议将数据分包,并像流水般不断地发送流媒体(strea-ming media)数据,用户通过网络即时接收并解码来进行收看和收听。

图1-1-2

视频与音频一般是同步传输的,处理视频比处理音频所需的计算量与带宽要大得多。本书所称视频如果不特别声明,都包含音频。

目前国内直播网站使用的常见直播协议主要有RTMP、HTTP-FLV和HLS,而DASH由于对HTML5的原生支持以及不依赖Flash,在国外推广得比较快,国内也开始出现少量应用。其他直播协议(如RTSP)多用于监控与数字电视行业,WebRTC主要针对实时交互方面的应用。

RTMP(Real Time Messaging Protocol)由Adobe公司开发,基于Flash Video视频流媒体,需要使用Flash播放器。它的直播延时较低,一般在数秒之内,而且效果非常稳定。得益于Flash的巨大影响力,RTMP在视频直播和点播领域具有重要地位。由于Flash频出的安全漏洞、高能耗等诸多问题,移动终端不支持Flash,PC的浏览器也基本抛弃了Flash,因此出现了其他几种直播协议,它们都试图取代RTMP。尽管如此,RTMP协议仍然广泛地应用于视频推流。

HTTP-FLV(HTTP Flash Video)是将流媒体数据封装成 FLV格式,客户端通过 HTTP 协议拉取FLV视频流,类似HTTP流式下载点播,如图1-2-1所示,其延时与RTMP差不多。FLV需要使用Flash播放器或其他途径如flv.js来播放。

图1-2-1

苹果公司为绕开Flash的问题,开发了HLS(HTTP Live Streaming)协议,它基于HTTP传输流媒体,不需要使用专用的网络端口。该协议当初主要为iOS 系统服务,现在安卓平台也支持该协议。

HLS协议涉及两个关键的文件类型:一是扩展名为ts的视频文件,它采用“Transport Stream”封装格式,它的突出特点是将视频文件进行任意分切后都可以正常播放;二是扩展名为m3u8的文本文件,它采用UTF-8编码,记录了ts视频文件的访问路径索引。

HLS直播的原理是将流媒体视频分切成多个时长为若干秒、连续而短小的ts视频文件,其路径不断更新,并被记录在m3u8索引文件中,客户端通过读取m3u8文件,轮流无缝播放这些ts视频文件,以点播的方式达到直播的效果。就像是在喝无限续杯的饮料(图1-2-2),一杯喝完就换一杯满的,不断循环,从而保证不断流。假设一个 “转盘(m3u8)”里有6个“小杯(ts)”,每个装满需5秒,为了尽可能保证供给,装满6杯后再喝,则喝到的这一杯是30秒前装满的,所以HLS的延时较高。如果要降低延时,就必须将ts切片减小,但这样会增大对服务器的下载请求压力。

版权:人民邮电出版社