流媒体是啥 流媒体是啥意思( 二 )


经过对比,我们就理解了从视频采集传感器采集来的原始数据是不可以直接传输的,必须要经过视频的压缩编码 。
视频压缩技术也在不断进化,视频压缩编码技术经过发展 , 已经从只支持帧内压缩编码算法演进到新的压缩编码算法 。现在新的编码算法标准包括H.26X 和 VPX系列 。常用的视频编码算法技术有H.264、H.265、VP8、VP9、FFmpeg等,音频编码算法有Mp3, AAC等 。
经过音频视频编码之后,需要进行封装,封装就是数据容器化和格式化 。容器是音视频流数据格式化的形象比喻,就像选用盒子和格子装东西一样 。我们需要将比特数据用盒子装起来 。
音频数据经过容器化计算后变为MP3 , AAC,HE-AAC,Opus,FLAC,Vorbis (Ogg) , Speex,AMR等格式的数据分发出去 。
视频数据经过容器化后变为 MP4、3GP、AVI、MKV、WMV、MPG、VOB、FLV、MOV等格式的数据,然后分发出去 。
数据传输模式和数据传输协议流媒体数据传输方式多种多样 。从传输形式上可以分为顺序流式传输和实时流式传输 。顺序流式传输方式是介于本地下载完再播放方式和实时流式播放方式的中间方式 , 也就是用户边下载边播放,这种方式也被称之为“伪流媒体数据传输” 。这种数据传输方式常应用于视频网站的点播 。
实时流式传输方式是真正意义上的流媒体数据传输方式,用户可以一边接收数据包一边播放,数据实时传送 。实时流媒体数据传输必须保证数据包的传输速度大于文件的播放速度,如果传输的速度小于文件的播放速度,视频就会出现卡顿 。
通常情况下流媒体数据需要借助网络服务器来实现中转分发 。数据从服务器分发到接收数据方的过程称为播放,流媒体数据的播放方式有三种主要情形 。
第一种情形是数据单播,也就是在客户端与数据服务器之间建立单独的数据通道,从一台服务器分发的每个数据包只能传送给一个客户机 。这种形式的弊端是极其消耗资源 。第二种情形是数据组播,这种方式允许路由器一次将数据包复制到多个通道上 。采用组播方式,数据服务器只需要发送一个信息包,即可连接多个用户,所有发出请求的客户端共享同一信息包 。这样可以减少网络上传输的信息包总量 。第三种方式是数据点播与广播 。数据点播连接是客户端与服务器之间的主动的连接 。在数据点播中,用户通常通过选择内容来初始化客户端连接 。每个用户可以开始、停止、后退、快进或暂停播放数据流 。点播能够提供对流的最大控制,但这种方式由于为每个客户建立了单独的连接,带宽很容易被消耗完 。广播是一种用户不能控制流数据只能被动接收流数据的方式,用户不能快进、后退、暂停 。相比较数据单播、数据点播和数据广播,数据组播是最有市场竞争力的数据播放方式 。数据组播不会复制多个数据包传输到网络上,也不会将数据包传送给给没有请求服务器的客户 , 保证了网络上流数据应用占用最小带宽的网络 。

RTMP数据流的传输过程
流媒体数据传输的实现需要合适的网络传输协议 。由于使用TCP需要较多的开销,因此不适合传输实时流数据 。在流媒体传输的方案中,一般采用HTTP/TCP来传输控制信息 , 采用RTP/UDP/RTMP等协议来传输实时数据 。现在大部分流数据网站都采用RTMP(Real Time Messaging Protocol)实时消息传送协议,该协议是Adobe公司为Flash播放器和服务器之间音视频流数据传输开发的开放协议 。
服务器数据流的分发和数据流的放送

推荐阅读