Presentation is loading. Please wait.

Presentation is loading. Please wait.

网络流媒体 主讲教师:霍龙社 北京大学数字媒体研究所 2008.5.29.

Similar presentations


Presentation on theme: "网络流媒体 主讲教师:霍龙社 北京大学数字媒体研究所 2008.5.29."— Presentation transcript:

1 网络流媒体 主讲教师:霍龙社 北京大学数字媒体研究所

2 重要通知 期末考试安排 课程作业提交时间 时间 地点 本周五( 5月30日)晚上12点之前 请没有提交作业的同学注意截至时间
6月13日(周五)上午8点~10点 地点 待定 课程作业提交时间 本周五( 5月30日)晚上12点之前 请没有提交作业的同学注意截至时间 2

3 什么是网络流媒体? 流媒体 网络流媒体 以“流”的方式来传送和消费音视频等多媒体数据 类似于 传统的广播电视就是流媒体的一个很好的例子
自来水 传统的广播电视就是流媒体的一个很好的例子 网络流媒体 本课程主要关注基于互联网(IP网络)的流媒体技术和系统 从使用上目前尚未达到像自来水这样开关自如的程度 但是技术的发展应该朝这个方向努力 3

4 网络流媒体应用分类 流媒体点播 流媒体广播 实时交互式流媒体应用 流化预编码存储的音视频媒体数据 现场直播 文件轮播 视频电话 视频会议 …
流化实时采集编码的音视频媒体数据 文件轮播 将预编码存储的音视频媒体数据按照一定的播出时间进行编排,以播放列表的形式定时循环播出 实时交互式流媒体应用 视频电话 视频会议 4

5 网络流媒体的特性 端到端延时约束 时序性约束 一定程度的容错性 流媒体点播 流媒体直播 交互式会话 流媒体数据必须按照一定的顺序连续播放
起始延时:<10s 类VCR操作(例如拖动进度条):<1~2s 流媒体直播 可容忍几十秒的延时 交互式会话 <150ms good <400ms OK 时序性约束 流媒体数据必须按照一定的顺序连续播放 一定程度的容错性 5

6 网络流媒体面临的问题 由流媒体数据及其承载这些数据的传输网络两方面的特性所决定 流媒体数据
数据量庞大,必须经过压缩编码后才能在网络上进行传输和存储 压缩的视频数据在解码时存在数据依赖性问题 帧内依赖 帧间依赖 I,P,B 压缩的视频数据,其码率可能随视频场景的变化而动态波动 实时性约束 6

7 网络流媒体面临的问题 IP网络 基于分组交换的无连接网络 IP分组在一系列的路由器之间进行存储转发 可能因为路由器缓冲区溢出而发生分组丢失
尽力而为 端到端带宽、时延等均不能保证 常用传输协议 UDP TCP 慢启动 拥塞避免 TCP友好 7

8 网络流媒体面临的问题 假定一 则 但是 客户机与服务器之间具有足够大的带宽 客户机中具有足够大的缓存空间
任何时候用户提出播放请求时,相应的媒体内容都能够立即传递到客户机的缓存中来 从用户体验的角度能够达到流媒体的效果 但是 上述假设是不现实的 8

9 网络流媒体面临的问题 假定二 则 但是 客户机与服务器之间的带宽有限 客户机中具有足够大的缓存空间
压缩音视频数据的解码需要一定的缓存空间和时延 IP网络中带宽的波动和随机丢包等也需要通过增加缓冲区来进行控制 但是 流媒体端到端的延时约束使得多余的缓存空间失去利用价值 9

10 网络流媒体面临的问题 假定三 则 客户机与服务器之间具有足够大的带宽 客户机中的缓存空间有限
流媒体播放的时序性约束使得需要进行传输中的流量控制,多余的带宽资源也失去了利用价值 10

11 网络流媒体面临的问题 目前的实际状况 因此需要解决 需要设计 客户机与服务器之间的带宽有限,且存在动态波动和丢包等现象
客户机中的缓存空间有限 压缩的视频数据在解码时存在数据依赖性问题 因此需要解决 拥塞控制 流量控制 差错控制 QoS自适应 音视频同步 需要设计 媒体编码、存储格式 媒体描述、传输、控制协议 11

12 网络流媒体系统结构 基本系统 扩展 流媒体服务器 流媒体播放器 IP 网络 在IP网络中,可加入一系列应用层中间系统,例如缓存、转码等等 …
12

13 细化 13

14 需规范的格式和协议 媒体编码格式 媒体传输协议 媒体描述协议 媒体会话控制协议 媒体存储格式 14

15 视频编码格式 视频编码 定义压缩视频码流的格式(语法和语义) 解码器和编码器必须就压缩视频码流的格式及其解释达成一致,因此需要制订相应的标准
主要视频编码标准 MPEG1、MPEG2、MPEG4、H.264、VC1、AVS… 摄像机 原始视频数据 编码器 压缩视频码流 重构视频数据 解码器 显示器 15

16 视频编码格式 主流编码标准压缩视频码流的基本格式(以AVS为例) 不同语法元素之间通过起始码来进行分割和标识
起始码前缀(24比特,0x000001)+起始码值(8bit) 16

17 视频编码格式 AVS起始码值 17

18 编码器的输出 编码器输出压缩视频码流的去向 网络传输 文件存储 以文件的形式进行存储 实时通过IP网络传输到client
需要相应的传输层协议来支持流媒体的实时传输 RFC3550中定义了RTP协议(实时传输协议) 文件存储 可以将编码器的输出码流直接存储为文件,通常称为ES流文件 然而为了方便多种媒体的复用、快速检索/定位、流化等,还需要对这些码流进行封装,定义相应的文件封装和存储格式 IP网络 编码器 压缩视频码流 文件 18

19 流媒体网络传输 RFC3550中实际上定义了两个紧密相关、配合使用的协议 RTP(实时传输协议) RTCP(RTP控制协议)
用于为音视频等具有实时特性的流媒体数据提供端对端传送服务的传输层协议,所提供服务主要包括:净载类型识别、序列号、时间戳和传输监控信息等。 RTCP(RTP控制协议) 与RTP配合使用 监控流媒体传输的服务质量 在一次流媒体会话的多个参与者之间传递信息 19

20 RTP协议头格式 20

21 RTP协议头字段 V P X CC SSRC CSRC 版本号 净载填充标识 协议头扩展标识 CSRC计数
the synchronization source CSRC the contributing sources for the payload contained in this packet 21

22 RTP协议头字段 M PT(Payload Type,净载类型) 含义有相应的profile来定义
例如:AVS-P2(AVS视频), AVS-P3(AVS音频),H.264视频,MP3音频,… RFC3551中定义了若干已知主流媒体编码类型的Payload Type编号 RTP净载媒体类型还可以通过别的途径来进行协商和通知 22

23 RTP协议头字段 Sequence number RTP包序列号,按顺序依次递增
23

24 RTP协议头字段 timestamp(时间戳) 当前RTP包净载数据中第一个字节数据的采样时间
不同类型媒体可能采用不同的时间单位,通过带外信令或者净载类型profile等形式进行协商 例如,多数视频标准RTP净载格式中规定采用1/90000秒作为RTP头中timestamp的时间单位 不同媒体流可以采用不同的随机起始偏移,因此在呈现时不能通过直接比较它们的时间戳值来进行同步,而是需要共同参考一个墙上时钟(wallclock)来进行同步。 Wallclock通过RTCP协议中SR(源报告)的形式进行传递。 24

25 RTCP RTCP是一个与RTP协同工作的控制协议 参与流媒体会话的成员之间通过周期性地交换RTCP分组来反馈传输质量和成员信息
QoS反馈 以SR或RR的形式发送 RTP分组丢包率 累积的丢包数 分组到达延时 分组到达延时抖动 参与者标识(文本形式) 控制分组的比例 媒体间同步 Wallclock偏移值 25

26 RTP数据的承载 RTP仅提供一些与流媒体时间特性相关的字段,本身并不能为终端用户提供QoS保证
相关功能需要通过承载它的下层传输协议、以及上层应用程序来完成 鉴于流媒体传输的实时性,通常将RTP承载于UDP之上 通过将不同的媒体流(例如音频流、视频流)RTP包分别发送至同一IP地址的不同UDP端口,来实现音视频数据的复用 但是也可以采用可靠传输协议例如TCP来承载RTP 需要将来自不同媒体流的RTP包复用到同一个TCP连接的字节流之中 需借助于RTSP协议来进行控制(稍后讲述) 26

27 RTP净载格式 定义如何将由编码器输出的压缩码流打包至RTP包的净载中去 不同的媒体编码类型可以定义不同的RTP净载格式 主要考虑
RFC2190:RTP payload for H.263 RFC2250:RTP payload for MPEG1/2 RFC3016:RTP payload for MPEG4 RFC3984:RTP payload for H.264 主要考虑 对网络的适应能力 RTP 打包器 RTP分组流 编码器 压缩视频码流 IP网络 27

28 RTP净载格式举例 AVS视频RTP净载格式 引入NAL(网络抽象层)单元的概念
将AVS-P2视频比特流中每两个相邻的起始码前缀之间的数据映射到一个NAL单元 以NAL单元为单位进行RTP打包,包括3种RTP包类型 单NALU包 一个RTP包中包含且仅包含一个NALU数据 复合NALU包 一个RTP包中包含多个完整的NALU数据 分割NALU包 一个NALU中的数据被分割并打包到多个RTP包之中 一个RTP包中不能包含多个NALU的部分数据 28

29 RTP净载格式举例 AVS视频中的NAL单元类型 29

30 流媒体文件格式 为什么要进行文件封装 常见流媒体文件格式 多种媒体流(视频、音频、文本)的复用 媒体流管理与编辑
媒体检索和定位,支持类VCR操作 快速定位并访问到某一帧数据 支持本地硬盘、光盘播放 支持网络流媒体播放 常见流媒体文件格式 AVI WMV RM MOV MP4 30

31 流媒体文件格式 ISO Base Media File Format 来源于于Apple的quicktime文件格式
在ISO的JPEG-4和JPEG-2000系列标准中进行了规范 ISO/IEC for MPEG-4 ISO/IEC for JPEG 2000 为流媒体文件封装提供了一种基本格式 是一种面向对象的文件格式 MP4、H.264、AVS等的文件格式都基于该基文件格式进行制订 31

32 ISO Base Media File Format
文件结构 有一系列的称之为box的对象组成 box内可以嵌套box 文件中所有数据都包含于某个box,没有不在box中的数据 32

33 ISO Base Media File Format
典型结构 33

34 ISO Base Media File Format
moov 元数据对象(box) 用于描述文件中所包含的媒体数据 为每一个媒体流创建一个媒体轨道 Video track Audio track 为每一个需要打包流化(通过IP网络流式传输)的媒体轨道创建一个提示轨道(hint track) 用于指示如何对该轨道数据内容进行RTP打包 需要了解相应轨道媒体的RTP净载格式 34

35 ISO Base Media File Format
mdat 媒体数据对象 存储各轨道实际的媒体数据 可以是自包含的,即与moov box位于同一个文件 也可以存储于不同的文件 各轨道媒体数据可以分别连续存储,也可以按照时间顺序交织存储 交织有利于数据的快速访问 35

36 ISO Base Media File Format
36

37 ISO Base Media File Format
37

38 ISO Base Media File Format
38

39 ISO Base Media File Format
39

40 流媒体服务器 为什么需要流媒体服务器 流媒体服务器的作用 如果只是一个client、一个server一对一通信,则没有必要用流媒体服务器
然而事实上同一个server需要为大量的client提供服务 流媒体服务器的作用 接收来自client的播放请求,为其发送相应的音视频码流 数据缓冲 数据调度 流量控制 QoS自适应控制 流媒体服务器 40

41 流媒体服务器 基本结构 41

42 媒体描述协议 流媒体服务器通过什么方式来发布自己拥有的媒体信息? Client靠什么来向流媒体服务器索取自己想要的媒体数据?
RFC2327中定义了一个会话描述协议:SDP(Session Description Protocol) 用于描述一个多媒体会话 主要包括 会话名称及用途 会话激活的时间 会话中所包含的媒体流 用于接收媒体的相关信息,如地址、端口号、格式等等 42

43 SDP 媒体信息 媒体类型 传输协议 媒体编码格式 目的地址 端口号 音频 视频 … RTP/UDP/IP RTP/TCP/IP H.320
MPEG-1/2/4 H.264 AVS 目的地址 端口号 43

44 SDP 体现为一行行的文本字符串,形式为 <type>=<value> 会话描述 时间描述 44

45 SDP 媒体描述 45

46 SDP 举例一 46

47 SDP 举例二 v=0 o=QTSS_Play_List 4162614927 4162633353 IN IP4 210.77.27.98
s=C:\Program Files\Darwin Streaming c=IN IP t=0 0 a=x-broadcastcontrol:RTSP m=video RTP/AVP 96 a=rtpmap:96 AVS1-P2/90000 a=control:trackID=1 a=cliprect:0,0,352,288 a=fmtp:96 profile-level-id=2042; sprop-parameter-sets=sCBCgsAJAAjAABgAoAAA; packetization-mode=1 m=audio RTP/AVP 97 a=rtpmap:97 MPA/48000 a=control:trackID=2 a=mpeg4-esid:3 47

48 SDP SDP信息的生成 对于流媒体现场直播 对于文件轮播 对于流媒体点播
在初始化实时编码器(RTP打包器)时首先生成一个sdp文件,放置到流媒体服务器的相应目录之下 对于文件轮播 在编辑播放列表时,流媒体服务器调用相应工具生成一个sdp文件, 放置到流媒体服务器的相应目录之下 对于流媒体点播 在封装流媒体文件时,在相应的box中写入相关的媒体描述信息 在接收到来自的客户的请求播放消息时,流媒体服务器从文件中读取相关数据并生成SDP信息 48

49 SDP 流媒体节目的访问 广播节目 点播节目 当然也可以在web页面中直接嵌入上述URL来启动播放器
在客户端播放器中,通过输入节目所对应SDP文件的URL地址来进行播放,例如 RTSP:// 点播节目 在客户端播放器中,通过直接输入节目文件名对应的URL地址来进行播放,例如 RTSP:// 当然也可以在web页面中直接嵌入上述URL来启动播放器 SDP信息通常通过RTSP协议传递至客户端 49

50 客户端与服务器的交互 寻找哪个网站有什么样的媒体节目 通过会话控制协议与流媒体服务器进行交互 通过 得到 获取媒体描述信息
搜索引擎 门户网站 得到 节目的URL:RTSP:// 协议名:RTSP 服务器地址: 媒体描述:abc.sdp 通过会话控制协议与流媒体服务器进行交互 获取媒体描述信息 根据媒体描述信息从服务器接收媒体数据(RTP包) 类VCR操作 50

51 流媒体会话控制协议 RFC2326中定义了一个流媒体会话控制协议:RTSP(Real Time Streaming Protocol)
应用层协议 信令协议 交互式问答 用来建立和控制一个或多个时间同步的连续音视频媒体流的会话协议 通过在客户机和服务器之间传递RTSP会话命令,可以完成诸如请求播放、开始、暂停、查找、快进和快退等VCR控制操作。 相当于一个远程流媒体服务器控制器 51

52 RTSP 与HTTP具有类似的语法和操作,大多数HTTP的扩展机制都可以加入到RTSP,但也存在以下区别
与HTTP的无状态特性相反,RTSP服务器在几乎所有情况下都缺省需要维持状态信息。 RTSP服务器和RTSP客户机都可以主动发起请求。 通常情况下采用与数据传输协议不同的其它协议来传输RTSP会话命令,称为带外带外信令方式 52

53 RTSP 主要命令 DESCRIBE SETUP PLAY PAUSE TEARDOWN 向流媒体服务器请求SDP信息
暂时中止一个流的数据传输而不释放服务器资源 TEARDOWN 释放服务器上的流资源,结束RTSP会话。 53

54 RTSP 通常采用可靠的TCP协议来建立RTSP会话连接,并传输RTSP会话命令(信令) 通过RTSP信令来传递SDP信息 RTP数据的传输
RTP over UDP 此时RTSP命令、音频RTP包、视频RTP包等分别通过不同的连接进行传输 RTSP over TCP Video / audio over UDP using different ports RTP over TCP 此时实际上是将音视频RTP数据包按照时间顺序交织之后,再与RTSP命令一起通过RTSP所建立起来的同一条TCP连接进行传输 因此实际上是:RTP over RTSP over TCP 54

55 RTSP 通过SETUP命令来决定采用UDP还是TCP传输 UDP TCP CS:
SETUP rtsp:// /abc.sdp RTSP/1.0 CSeq: 302 Transport: RTP/AVP/UDP;unicast;client_port= TCP SETUP rtsp:// /abc.sdp/trackID=1 RTSP/1.0 CSeq: 2 Transport: RTP/AVP/TCP;unicast;interleaved=0-1 55

56 RTSP 举例 TCP_over_RTSP会话示例.txt 56

57 ISMA体系结构 57

58 重要通知 期末考试安排 课程作业提交时间 时间 地点 本周五( 5月30日)晚上12点之前 请没有提交作业的同学注意截至时间
6月13日(周五)上午8点~10点 地点 待定 课程作业提交时间 本周五( 5月30日)晚上12点之前 请没有提交作业的同学注意截至时间 58


Download ppt "网络流媒体 主讲教师:霍龙社 北京大学数字媒体研究所 2008.5.29."

Similar presentations


Ads by Google