[Linux]流媒体服务器概述
二、何为流媒体与流式传输?
2.1 流媒体
「流媒体」是指采用「流式传输」的方式在Internet播放的媒体格式,流媒体最大的特点就是「边下边播」,常用的流媒体格式有FLV(使用FLASH作为视频播放载体)、TS等
2.2 流式传输
「流式传输」指通过网络传送流媒体的技术总称。流式传输分为「实时流式传输」与「顺序流式传输」。一般来说,如果视频为直播,即为实时流式传输。如果视频不是直播,文件通过顺序流发送,即为顺序流式传输。
三、何为解复用?
「解复用」是指从「音频视频信号源」中分流出「单独的音频」与「单独的视频」数据,比如我们将「FLV」解复用会得到「H.264视频数据」和「AAC音频数据」。
四、RTMP、RTP、RTSP
4.1 RTMP
名称:Real Time Messaging Protocol
协议族:该协议基于TCP,是一个协议族。包括基本协议RTMP以及其变种,如RTMPT、RTMPS、RTMPE等
运行环境:主要是用于在「FLASH平台」和「流媒体服务器」之间进行音视频通信
4.2 RTP
名称:Real Time Transport Protocol
组成:RTP标准定义了两个协议,一个是RTP协议(数据传输协议),另一个是RTCP协议(控制协议)
4.3 RTSP
名称:Real Time Streaming Protocol
定义:该协议定义了如何在客户端与服务器之间建立/协商实时流通话
4.4 体系结构
按照网络模型来说,直播技术涉及到的协议是这样分布的
应用层协议:RTSP、RTMP
传输层协议:RTCP、RTP、TCP、UDP
网络层协议:RSVP、IP
五、H.264与AAC
5.1 H.264
H.264是一种「视频编码格式」(有时也叫视频压缩格式),它又叫「MPEG4 Part10」。它与MPEG2 Part2是一个层级的事。
5.2 AAC
AAC是一种「音频编码格式」(有时也叫音频压缩格式),它与MP3、FLAC、APE、WavPack是一个层级的事。
5.3 总结
一般情况下,用户不会直接拥有「视频编码格式」的文件和「音频编码格式」的文件。而是直接拥有「多媒体容器格式」的文件,然后通过解复用去获得它们。
六、软解与硬解的区别
6.1 软解
软解是指只是用CPU进行解码
6.2 硬解
硬解是指主要是用GPU进行解码,CPU起辅助作用
七、YUV与PCM
之前介绍H.264和AAC时说「视频编码格式」和「音频编码格式」的时候说它们又叫「视频压缩格式」和「音频压缩格式」,这是为啥呢?就是因为原始视频数据格式YUV(即从视频采集芯片直接输出的视频编码格式)和原始音频数据格式PCM(即从音频采集芯片直接输出的音频编码格式)占地很大,所以需要编码(压缩)成H.264与AAC这种占地小一点的格式。
八、何为推流SDK?
推流SDK从我的角度讲(我是Android程序员)是指运行在Android端的第三方Support Library或jar包。
SDK会帮我们做:音视频采集、美颜滤镜、图像处理、底噪控制、流量控制等功能
九、何为推流地址(又叫推流URL)?
我们说推流,实际上就是把客户端收集到的音视频数据发送给服务器的过程。所以,客户端需要知道服务器在哪,好往上推流。这个推流URL就是标明客户端「往何处推流」的定位符。推流URL由服务器分配。
十、URI与URL的区别(嘻嘻)?
URI是一个句法结构,未必包含了定位Web资源的信息。
URL是URI的一个特例,一定包含了定位Web资源的信息。
可以说URL有URI的全部功能,并且URL还有URI没有的功能。
这有点像JAVA中的继承————URL为子类、URI为父类。
十一、外传:MPEG家族介绍
MPEG,全名Moving Picture Experts Group
11.1 MPEG-1
第一个视频音频压缩标准,随后被VCD标准采用。它由一系列的子标准组成,被称为部 (part)(有时也译为卷),其体系结构如下:
Part1:System
Part2:Video
Part3:Audio
其中Part3的Audio又分为三个Layer:
Layer Ⅰ
Layer Ⅱ
Layer Ⅲ:这个就是我们平常说的MP3
所以,MP3并不是MPEG-3而是MPEG-1 Part3 Layer Ⅲ,或者叫MPEG-2 Audio Layer Ⅲ。但MP4就是MPEG-4。
11.2 MPEG-2
除了它被DVD标准采用没啥好说的
11.3 MPEG-3
中途停止研发
11.4 MPEG-4
这就是大名鼎鼎的MP4了,其中第十部分(Part 10)很重要,是由ISO、IEC和ITU-T联合发布的视频编码标准:H.264
11.5 MPEG-7与MPEG-21
MPEG-7是一个多媒体内容的描述标准,已经开发完成。MPEG-21正在制定中,它的目标是为未来多媒体的应用提供一个完整平台。