我们知道一个完整的直播过程,包括采集、处理、编码、封包、推流、传输、转码、分发、解码、播放等,这一过程所采用的技术,我们也称之为“流媒体技术”。其中推流是指使用推流工具等内容抓取软件把直播内容传输到服务器的过程。
▲微视播直播“流媒体技术”原理图
在讲解“推流”之前,我们先来说说采集,在商业活动领域,摄像机占据主流地位,足以应付大部分场面,选择带有直播功能的摄像机更是事半功倍。再说,视频采集后的处理、编码。
如果把整个流媒体比喻成一个物流系统,那么编解码就是其中配货和装货的过程,这个过程非常重要,它的速度和压缩比对物流系统的意义非常大,影响物流系统的整体速度和成本。同样,对流媒体传输来说,编码也非常重要,它的编码性能、编码速度和编码压缩比会直接影响整个流媒体传输的用户体验和传输成本。
这就涉及到编码器的选择了,目前市面上直播编码器有无线、有线等非常多选择,根据不同场合选择即可。
所以,推流也可以理解为利用编码器将视频内容进行编码后推到服务器的过程。经过H.264编码压缩之后,1080P 的 7 s 视频大小只有708K,10Mbps的带宽仅仅需要500ms,可以满足实时传输的需求,所以原始视频势必要经过视频编码。
直播“推流”需要推流协议,对音视频数据使用传输协议进行封装,变成流数据,这是直播背后原理最重要的部分,下面介绍目前主流的推送协议以及它们在直播领域的优缺点。
RTMP