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

Slides:



Advertisements
Similar presentations
7.1 内置对象概述及分类 JSP 视频教学课程. JSP2.2 目录 1. 内置对象简介 1. 内置对象简介 2. 内置对象分类 2. 内置对象分类 3. 内置对象按功能区分 3. 内置对象按功能区分 4. 内置对象作用范围 4. 内置对象作用范围.
Advertisements

NAT与ICMP交互.
计算机网络教程 任课教师:孙颖楷.
第六 章数据库访问页 6.1 数据访问页视图 6.2 创建数据访问页 6.3 编辑数据访问页 6.4 查看数据访问页 退出.
计算机网络课程总结 一、计算机网络基础 计算机网络定义和功能、基本组成 OSI/RM参考模型(各层的功能,相关概念, 模型中数据传输 等)
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
第十章:流媒体 《多媒体通信》.
第三章 数据类型和数据操作 对海量数据进行有效的处理、存储和管理 3.1 数据类型 数据源 数据量 数据结构
第1章 流媒体概述.
第3章 流媒体传输技术.
在PHP和MYSQL中实现完美的中文显示
第7讲 多媒体网络 本讲概述: 本讲目标: 多媒体的网络应用 了解多媒体网络的应用要求 存储式音频/视频流 交互式的实时应用
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
Hadoop I/O By ShiChaojie.
第20讲 流媒体技术和视频会议 流媒体技术基础 流媒体文件格式 流媒体制作与发布 视频会议系统.
流媒体协议标准.
Internet Radio 網 路 電 台: . 潘柏任 B 許宏瑋 28 曾彥中 32 蔡文軒 40.
面向对象建模技术 软件工程系 林 琳.
R in Enterprise Environment 企业环境中的R
6.4 Notification 通知栏.
存储系统.
SOA – Experiment 3: Web Services Composition Challenge
SVN服务器的搭建(Windows) 柳峰
管理信息结构SMI.
走进编程 程序的顺序结构(二).
矢量距离路由.
网络常用常用命令 课件制作人:谢希仁.
实用组网技术 第一章 网络基础知识.
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
计算机网络应用基础 第6章 网络多媒体技术应用 (Ⅲ).
Windows网络操作系统管理 ——Windows Server 2008 R2.
以ISI平台为例,为您演示一下如何在Endnote文献中查看该文献的References
RTP/RTCP 协议介绍.
第17章 网站发布.
8.1 多媒体网络通信基础 8.2 多媒体技术在网络上的应用 8.3 流媒体技术
Chapter 7 Multimedia Networking
《手把手教你学STM32》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺:
实时协议( Real-Time Protocol, RTP)
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
任务1-3 使用Dreamweaver创建ASP网页
SIP与H.323互通的研究 研究生选题报告 Research on Interworking between SIP and H.323
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
Java语言程序设计 清华大学出版社 第8章 输入输出流(1).
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
SOA – Experiment 2: Query Classification Web Service
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
第二章 登录UNIX操作系统.
C语言程序设计 主讲教师:陆幼利.
第四章 团队音乐会序幕: 团队协作平台的快速创建
DQMClientDim.cxx及双光子练习
VB与Access数据库的连接.
实验七 安全FTP服务器实验 2019/4/28.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
项目二:HTML语言基础.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
数据报分片.
Chapter 18 使用GRASP的对象设计示例.
郑 昀 应用开发事业部 神州泰岳 SIP多方会话消息 之实例讲解 郑 昀 应用开发事业部 神州泰岳
数字媒体技术基础 (第10章 流媒体技术) 周苏 教授 浙江大学城市学院 QQ:
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
第9章 多媒体技术 掌握 Windows 画图工具的基本操作; 掌握 Windows 音频工具进行音频播放;
Google的云计算 分布式锁服务Chubby.
基于列存储的RDF数据管理 朱敏
VoIP组工作汇报 黄权 李光华.
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
本节内容 进程 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
四路视频编码器 快速安装手册 1、接口说明 2、安装连接 3、软件下载 4、注意事项 编码器软件下载地址
Presentation transcript:

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

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

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

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

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

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

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

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

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

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

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

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

细化 13

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

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

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

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

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

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

RTP协议头格式 20

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

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

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

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

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

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

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

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

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

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

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

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

ISO Base Media File Format 典型结构 33

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

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

ISO Base Media File Format 36

ISO Base Media File Format 37

ISO Base Media File Format 38

ISO Base Media File Format 39

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

流媒体服务器 基本结构 41

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

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

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

SDP 媒体描述 45

SDP 举例一 46

SDP 举例二 v=0 o=QTSS_Play_List 4162614927 4162633353 IN IP4 210.77.27.98 s=C:\Program Files\Darwin Streaming Server\Playlists\avsrelay\avsr@ c=IN IP4 127.0.0.1 t=0 0 a=x-broadcastcontrol:RTSP m=video 20000 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 20002 RTP/AVP 97 a=rtpmap:97 MPA/48000 a=control:trackID=2 a=mpeg4-esid:3 47

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

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

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

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

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

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

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

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

RTSP 举例 TCP_over_RTSP会话示例.txt 56

ISMA体系结构 57

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