小白入门音视频第八天

1.流媒体

1.1 简介

        流媒体(Streaming media)是指将媒体数据压缩后,使用流式技术在网络上进行传输,以达到实时观看的一种技术。

        流媒体技术的出现,使得媒体数据可以像流水一样发送。在此之前,想要观看媒体文件,就必须提前将整个媒体文件下载好。

         流媒体系统大致有以下几个组件:编码工具(encoder),用于压缩;服务器(server),管理并传输多媒体数据;解码工具(decoder),用于解压;播放工具(player),用于呈现多媒体数据。

1.2 流式传输

        1.顺序流式传输:顺序流式传输是顺序下载,在下载文件的同时用户可观看在线媒体,在给定时刻,用户只能观看已下载的那部分,而不能跳到还未下载的前头部分,顺序流式传输不象实时流式传输在传输期间根据用户连接的速度做调整。

        由于标准的 HTTP 服务器(nginxapachetomcatiis)可发送这种形式的文件,也不需要其他特殊协议,它经常被称作 HTTP 流式传输。

        顺序流式文件是放在标准 HTTP 或 FTP 服务器上,易于管理,基本上与防火墙无关。

        但是顺序流式传输不适合长片段和有随机访问要求的视频,如:讲座、演说与演示。它也不支持现场广播,严格说来,它是一种点播技术。

        2.实时流式传输实时流式传输指保证媒体信号带宽与网络连接配匹,使媒体可被实时观看到。

        实时流与 HTTP 流式传输不同,他需要专用的流媒体服务器与传输协议。实时流式传输总是实时传送,特别适合现场事件,也支持随机访问,用户可快进或后退以观看前面或后面的内容。

        理论上,实时流一经播放就可不停止,但实际上,可能发生周期暂停。实时流式传输必须配匹连接带宽,这意味着在以调制解调器速度连接时图象质量较差。而且,由于出错丢失的信息被忽略掉,网络拥挤或出现问题时,视频质量很差。如欲保证视频质量,顺序流式传输也许更好。

        实时流式传输需要特定流媒体服务器,如 QuickTime Streaming ServerRealServer Windows Media Server。这些服务器允许你对媒体发送进行更多级别的控制,因而系统设置、管理比标准 HTTP 服务器更复杂。

        实时流式传输还需要特殊网络协议,如:RTSP (Realtime Streaming Protocol)或 MMS (Microsoft Media Server)。这些协议在有防火墙时有时会出现问题,导致用户不能看到一些地点的实时内容。

        一般说来,如视频为实时广播,或使用流式传输媒体服务器,或应用如 RTSP 的实时协议,即为实时流式传输。如使用 HTTP 服务器,文件即通过顺序流发送。采用那种传输方法依赖你的需求。当然,流式文件也支持在播放前完全下载到硬盘。

        下图为流媒体传输过程:

1.3 技术原理

        流式传输的实现需要缓存,因为 Internet 以包传输为基础进行断续的异步传输,对一个实时  A / V源或存储的A / V文件  ,在传输中它们要被分解为许多包,由于网络是动态变化的,各个包选择的路由可能不相同,故到达客户端的时间延迟也就不等,甚至先发的数据包还有可能后到。为此,使用缓存系统来弥补延迟和抖动的影响,并保证数据包的顺序正确,从而使媒体数据能连续输出,而不会因为网络暂时拥塞使播放出现停顿。

        通常高速缓存所需容量并不大,因为高速缓存使用环形链表结构来存储数据:通过丢弃已经播放的内容,流可以重新利用空出的高速缓存空间来缓存后续尚未播放的内容。

        流式传输的实现需要合适的传输协议。由于 TCP 需要较多的开销,故不太适合传输实时数据。在流式传输的实现方案中,一般采用 HTTP/TCP 来传输控制信息,而用 RTP/UDP 来传输实时声音数据

1.4 传播模式

        流媒体之所以能够实现多媒体数据的实时播放是采用了专门的网络控制协议和数据传输机制服务器端有专门的流媒体发布系统,而客户端则有专门的播放器,这两部分都需要通过数据缓存区进行数据的缓存。

1.5 RTP协议

        RTP 协议是 IETF 在 1996 年提出的适合实时数据传输的新型协议。

        RTP 协议实际上是由实时传输协议 RTP(Real-time Transport Protocol)实时传输控制协议 RTCP(Real-time Transport Control Protocol)两部分组成。

          RTP 协议基于多播单播网络为用户提供连续媒体数据的实时传输服务RTCP 协议是RTP 协议的控制部分,用于实时监控数据传输质量,为系统提供拥塞控制和流控制。

        每一个 RTP 数据包都由固定包头(Header )载荷(Payload)两个部分组成,其中包头前 12 个字节的含义是固定的,而载荷则可以是音频或视频数据。

1.6 H.264/AVC

        H.264/AVC 是 ITU-T 视频编码专家组(VCEG)和 ISO/IEC 动态图像专家组(MPEG )联合组成的联合视频组(JVT)共同努力制订的新一代视频编码标准。

        它最大的优势是具有很高的数据压缩比率,在同等图像质量的条件下,H.264 的压缩比是 MPEG-2 的 2 倍以上,是 MPEG-4 的 1.5~2 倍。同时,采用视频编码层(VCL)和网络抽象层(NAL )的分层设计,非常适用于流媒体技术进行实时传输。

1.6.1 H.264基本流的结构

        H.264 的基本流(elementary stream,ES)的结构分为两层,包括视频编码层(VCL)网络抽象层(NAL)

        引入 NAL 并使之与 VCL 分离带来的好处包括两方面:

  1. 使信号处理和网络传输分离,VCL 和 NAL 可以在不同的处理平台上实现;

  2. VCL NAL 分离设计,使得在不同的网络环境内,网关不需要因为网络环境不同而对 VCL 比特流进行重构和重编码。

        H.264 的基本流由一系列 NALU (Network Abstraction Layer Unit )组成,不同的 NALU 数据量各不相同。H.264 草案指出,当数据流是储存在介质上时,在每个 NALU 前添加起始码:0x000001,用来指示一个 NALU 的起始和终止位置。在这样的机制下,解码器在码流中检测起始码,作为一个 NALU 得起始标识,当检测到下一个起始码时,当前 NALU 结束。每个 NALU 单元由一个字节的 NALU 头(NALU Header)和若干个字节的载荷数据(RBSP)组成。

        H.264流媒体传输系统框架如下图:

1.7 相关技术

         1.智能流技术:自动检测网络状况,并将音视频的属性调整到最佳,使用户收到与其网络速度相符的媒体流,从而获取最佳的用户体验,多码流技术

        2.流(splitting)技术:一般只在直播中使用。发送服务器将媒体流发送到分布在各地的多个接收服务器,客户端可以就近访问服务器获得较高质量的媒体流,同时减少带宽使用。推流为将直播内容推送至服务器的过程;拉流为服务器已有直播内容,用指定地址进行拉取的过程。

        3.缓存(caching)技术:解决由于异步网络、网络延迟和抖动导致的数据包错序的问题,数据包先缓存在本地,而缓存系统使用环形链表结构丢弃掉已经播放的内容,防止缓存溢出。

        4.内容分发网络(CDN)技术架构在 IP 网络之上的一个内容叠加网,通过引入主动内容管理、全局负载均衡和内容缓存等技术,将用户请求的流媒体内容发布到距离用户最佳的网络边缘,从而提供响应速度,减轻骨干网络的压力。

        

                

        

                

               

                

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深蔚蓝i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值