流媒体技术基础-流媒体文件格式
微软高级流格式ASF简介
--Microsoft公司的Windows Media的核心是ASF(Advanced Stream Format)。微软将ASF 定义为同步媒体的统一容器文件格式。ASF是一种数据格式,音频、视频、图像以及控制命令脚本等多媒体信息通过这种格式,以网络数据包的形式传输,实现流式多媒体内容发布。
ASF最大优点就是体积小,因此适合网络传输,使用微软公司的最新媒体播放器(Microsoft Windows Media Player)可以直接播放该格式的文件。用户可以将图形、声音和动画数据组合成一个ASF格式的文件,当然也可以将其他格式的视频和音频转换为ASF格式,而且用户还可以通过声卡和视频捕获卡将诸如麦克风、录像机等等外设的数据保存为ASF格式。另外,ASF格式的视频中可以带有命令代码,用户指定在到达视频或音频的某个时间后触发某个事件或操作。
11.8.1 ASF的特征
可扩展的媒体类型- ASF文件允许制作者很容易地定义新的媒体类型。ASF格式提供了非常有效的灵活地定义符合ASF文件格式定义的新的媒体流类型。任一存储的媒体流逻辑上都是独立于其他媒体流的,除非在文件头部分明显地定义了其与另一媒体流的关系。
部件下载-特定的有关播放部件的信息(如,解压缩算法和播放器)能够存储在ASF 文件头部分,这些信息能够为客户机用来找到合适的所需的播放部件的版本---如果它们没有在客户机上安装。
可伸缩的媒体类型- ASF是设计用来表示可伸缩的媒体类型的\"带宽\"之间的依赖关系。ASF存储各个带宽就像一个单独的媒体流。媒体流之间的依赖关系存储在文件头部分,为客户机以一个独立于压缩的方式解释可伸缩的选项提供了丰富的信息流的优先级化- 现代的多媒体传输系统能够动态地调整以适应网络资源紧张的情况(如,带宽不足)。多媒体内容的制作者要能够根据流的优先级表达他们的参考信息,如最低保证音频流的传输。随着可伸缩媒体类型的出现,流的优先级的安排变得复杂起来,因为在制作的时候很难决定各媒体流的顺序。ASF允许内容制作者有效地表达他们的意见(有关媒体的优先级),甚至在可伸缩的媒体类型出现的情况下也可以.
多语言- ASF设计为支持多语言。媒体流能够可选地指示所含媒体的语言。这个功能常用于音频和文本流。一个多语言ASF文件指的是包含不同语言版本的同一内容的一系列媒体流,其允许客户机在播放的过程中选择最合适的版本。
目录信息- ASF提供可继续扩展的目录信息的功能,该功能的扩展性和灵活性都非常好。所有的目录信息都以无格式编码的形式存储在文件头部分,并且支持多语言,如果需要,目录信息既可预先定义(如,作者和标题),也可以是制作者自定义。目录信息功能既可以用于整个文件也可以用于单个媒体流。
11.8.2 ASF文件格式
11.8.2.1 ASF 对象定义
ASF文件基本的组织单元叫做ASF 对象,它是由一个128位的全球唯一的对象标识符(Object ID),一个64位整数的对象大小(Object Size)和一个可变长的对象数据(Object Data)组成。对象大小域的值是由对象数据的大小加上24比特之和。
图11.8 ASF对象
这个文件组织单元有点类似于RIFF(Resource Interchange File Format)字节片。RIFF字节片时AVI和WAV文件的基本单位。ASF对象在两个方面改进了RIFF的设计。首先,无需一个权威机构来管理对象标识符系统,因为计算机网卡能够产生一个有效的唯一的GUID。其次,对象大小字段已定义得足够处理高带宽多媒体内容的大文件。
11.8.2.2 高层文件结构
ASF文件逻辑上是由三个高层对象组成:头对象(Header Object)、数据对象(Data Object)和索引对象(Index Object).。头对象是必需的并且必须放在每一个ASF文件的开头部分,数据对象也是必需的,且一般情况下紧跟在头对象之后。索引对象是可选的,但是一般推荐使用。
图11.9 高层ASF文件结构
在具体实现过程中可能会出现一些文件包含无序的(Out-Of-Order)的对象,ASF也支持,但在特定情况下,将导致ASF 文件不能使用,如从特定的文件源如HTTP服务器读取该类ASF文件。同样地,额外的高层对象也可能被运用并加入到ASF文件中。一般推荐这些另加的对象跟在索引对象之后。
ASF数据对象能够被解释的一个前提条件是头对象已被客户机接收到。ASF没有声明头对象信息是如何到达客户端的,\"到达机制\"是一个\"本地实现问题\",显然已超过了ASF 的定义范围。头对象先于数据对象到达有三种方式:
包含头对象的信息作为\"会话声明\"的一部分。
利用一个与数据对象不同的\"通道\"发送头对象。
在发送ASF 数据对象之前发送头对象。
11.8.2.2.1 ASF 头对象
在ASF的三个高层对象中,头对象是唯一包含其他ASF 对象的对象。头对象可能包含一下对象:
文件属性对象(File Properties Object)----全局文件属性。
流属性对象(Stream Properties Object)----定义一个媒体流和其属性。
内容描述对象(Content Description Object)----包含所有目录信息。
部件下载对象(Component Download Object)----提供播放部件信息。
流组织对象(Stream Groups Object)----逻辑上把多个媒体流组织在一起。
可伸缩对象(Scalable Object)----定义媒体流之间的可伸缩的关系。
优先级对象(Prioritization Object)----定义相关流的优先级。
相互排斥对象(Mutual Exclusion Object)----定义排斥关系如语言选择。
媒体相互依赖对象(Inter-Media Dependency Object)----定义混合媒体流之间的相互依赖关系。
级别对象(Rating Object)----根据W3C PICS定义文件的级别。
索引参数对象(Index Parameters Object)----提供必要的信息以重建ASF文件的索引。
图11.10 ASF 头对象
头对象的作用是在ASF文件的开始部分提供一个众所周知的比特序列,并且包含所有其它头对象信息。头对象提供了存储在数据对象中的多媒体数据的全局的信息。
11.8.2.2.2 ASF数据对象
数据对象包含一个ASF 文件的所有多媒体数据。多媒体数据以ASF数据单元的形式存储,每一个ASF数据单元都是可变长的,且包含的数据必须是同一种媒体流。数据单元在当它们开始传输的时候在数据对象中自动地排序,这种排序来自于交叉存储的文件格式。
11.8.2.2.3 ASF索引对象
ASF索引对象包含一个嵌入ASF文件的多媒体数据的基于时间的索引。每以索引进入表现的时间间隔是在制作时设置的,并且存储在索引对象中。由于没有必要为一个文件的每一个媒体流建立一个索引,因此,通常利用一个时间间隔列表来索引一系列的媒体流。
本文链接地址:http://www.chinavideoonline.com/lmtchangshi/lmtchangshi_008.htm
流媒体技术基础-流媒体文件格式相关推荐
- 流媒体技术基础-流媒体编码与协议
一.流媒体传输协议 1.实时传输协议RTP 针对多媒体数据流的一种传输协议,建立在UDP协议上,属于传输层协议. 定义互联网上传递音频和视频的标准数据包格式.RTP协议常用于流媒体系统(配合RTCP协 ...
- 流媒体技术基础-流媒体服务与框架
一.开源流媒体服务器 38款 流媒体服务器开源软件 主流的开源流媒体服务器及框架如下: 1.Live555 [RTSP拉流] 一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输 ...
- 流媒体技术基础-摄像头接口与标准
一.摄像头接口概括 摄像头按接口分类如下 主板直接接的专用接口 SPI接口:串行传输.速度慢.常用用于MCU DVP接口:并口传输,速度较慢,传输的带宽低. MIPI接口:手机平台标准接口,差分串口传 ...
- iOS流媒体技术——实时流媒体开发
苹果的HLS技术是最为先进的,有技术规范还有一套流媒体开发和使用的整体解决方案. 采集设备采集数据.传递给server对音频或视频进行编码.通过媒体文件分割工具进行分割.将分隔好的文件和索引放到服务器 ...
- 【流媒体技术】流媒体(1)使用nginx搭建流媒体服务器
1.下载准备 Nginx: 1.10.1 Nginx-Rtmp-Module: 1.1.7 openssl-1.0.2h pcre-8.38 zlib-1.2.8 下载这么多?还需要编 ...
- 流媒体技术在宽带网络的应用与发展
流媒体技术在宽带网络的应用与发展 作者/来源:中国电信 梁晓辉 游志胜 摘 要 文章介绍了流媒体的概念与特点,深入分析了流媒体系统及其关键技术,研究了流媒体技术在宽带网络中的应用及在国内外的发展情况, ...
- 流媒体技术知识梳理整合
流媒体技术 1.流媒体技术基础知识 1.1 流媒体技术简介 流媒体,又叫流式媒体,是具备边传边播特点的一种多媒体,如音频.视频或多媒体文件. 流媒体技术是将采集到的连续非串流格式的视频 ...
- 基于Windows Media技术的流媒体系统的设计与实现
摘要:本文在简介流媒体技术及其中的Windows Media技术的基础上,结合实际简述了Windows Media服务器的安装.ASF文件的制作以及"点播单播发布点"." ...
- [总结]RTMP流媒体技术零基础学习方法
本文主要总结一些我在学习RTMP流媒体技术过程中积累的经验.也为后来学习RTMP流媒体技术的人们一个参考.本文力图从简到难,循序渐进的介绍RTMP流媒体技术的方方面面,先从应用说起,逐步深化剖析相关工 ...
- 流媒体技术的国内外动态
1.大规模流媒体应用中关键技术的研究 支持大规模用户在线使用的流媒体应用是Internet中极富潜力的一项"重磅级用",但由于Internet缺乏服务质量(QoS)与相应的安全保障 ...
最新文章
- 网站开发建设过程中所涉及到的技术问题应当如何面对?
- 两个向量组的秩相等说明什么_解析几何初步:向量与坐标(一)
- WCF服务实现客户端Cookie共享,表单验证的解决方案
- 计算机非211研究生,这所大学不是211,但“计算机”实力远超985,快来看看
- 图论--一般图带花树匹配--模板
- Linux设备模型:kset, kobj, ktype
- 指针变量的声明、地址相关运算--“*”和“”
- 直接拿来用!最火的Android开源项目(一) (转)
- win10+ubuntu18.04双系统配置深度学习环境
- 测试可变字符序列stringBuilder
- 如何成为一个很厉害的人?采铜详述13个思维法则
- 数学知识——高数速查手册
- 汉字转拼音开源工具包Jpinyin介绍
- python两种方法求ROC曲线下面积(AUC)
- flutter listview 设置分割线
- CloudFlare的Worker免费部署服务
- 甲骨文数据库购买的价格(三)-附x86价格
- 局域网或外网Nexus私服下载安装仓库使用整理(Linux环境)这一篇足够
- 完成输入框自动切换对应的中文或英文输入法
- 《全民攻城》开心周末,好礼相赠