精华内容
下载资源
问答
  • 流媒体/流媒体文件格式详解

    万次阅读 2017-05-31 20:34:41
    摘 要 流媒体文件格式流媒体系统中占有重要地位,设计合理的文件格式是提高流媒体服务器工作效率最直接和最有效的办法。该文在剖析常用流媒体系统和文件格式的基础上,特别地对美国xiph.org基金会的开源流媒体...

    摘  要   流媒体文件格式在流媒体系统中占有重要地位,设计合理的文件格式是提高流媒体服务器工作效率最直接和最有效的办法。该文在剖析常用流媒体系统和文件格式的基础上,特别地对美国xiph.org基金会的开源流媒体工程Ogg文件格式子项目做了深入的分析,指出Ogg格式对媒体编码数据的存储读取和传输具有简洁性,Ogg格式的映射与逆映射与媒体编码数据具有相对独立性,能够有效提高流媒体服务器的工作效率。

    1 引言
          流媒体是指在Internet/Intranet中使用流式传输技术的连续时基媒体,如音频、视频等多媒体文件。文件格式和传输协议是流媒体应用的主要技术。从不同的角度看,流媒体数据有三种格式:压缩格式、文件格式、发布格式。其中压缩格式描述了流媒体文件中媒体数据的编码、解码方式;流媒体文件格式是指服务器端待传输的流媒体组织形式,文件格式为数据交换提供了标准化的方式;流媒体发布格式是一种呈现给客户端的媒体安排方式。本文所讨论的格式是指第二种:流媒体文件格式。特别地分析了一种开源流媒体文件格式:Ogg。它是美国xiph.org基金会开发的开源流媒体工程的一个子项目,它是应其开源音/视频媒体压缩编码格式Vorbis/Theora等的存储与传输需要而设计的。
        本文在研究和分析已有流媒体系统的基础上,结合在研发新的流媒体系统中的经验和教训,对流媒体文件格式做系统和深入的剖析,旨在深入理解流媒体系统和找到提高流媒体系统工作效率的方法。

    2 流媒体文件格式分析

    2.1 文件格式在流媒体系统中的重要性

         一个简化的流媒体系统由流媒体服务器、客户端和传输网络组成,流媒体系统的核心是流媒体服务器。随着流媒体技术研究的深入和流媒体应用的扩展,如何提高流媒体系统的工作效率,主要指标体现为如何提高服务器并发媒体流的数量,这是一个被广泛关注的课题。它取决于服务器处理每个流的效率,决定了一个服务器能够同时为多少客户服务,其成果不但具有理论价值,更具有极大的经济价值。 
         图1的圆圈内标出了影响流媒体系统性能的一些主要因素。如果对其中每个因素仔细分析判断,可以发现对于一个现有的流媒体服务器而言,能有效提高其效率的手段并不多。例如:提升客户端、服务器端的硬件配置,只能获得性能提高,工作效率没有得到提高;实时传输、控制协议是人们经过多年的大量应用实践总结,由IETF因特网工程任务组确认的媒体流传输共同标准,是必须遵守的标准,是无法轻易改变的;节目源的质量、压缩方式等因素对于服务器而言是不可预知或者是不可控制的。那么在这些客观因素无法改变的情况下,优化流媒体文件格式为提高流媒体服务器的工作效率提供了可能。
        流媒体文件格式能够对服务器的工作效率产生影响是由流服务器工作方式的特点决定的。流服务器的主要工作任务是通过直播或点播的方式向用户提供流媒体内容,它输入磁盘上存储的流媒体文件,然后进行实时传输协议封装后再通过 IP网络输出给客户端。简言之,其工作流程为3 步:读取、封装、发送。由于每发送一个媒体流都需要启动一个流程,并且所有流程都需要实时进行,可见当一个流服务器并发几千个流时,每个流程工作效率的细小区别都会对服务器工作效率造成很大的影响。

    图1  简化的流媒体系统结构及其影响因素
        每个工作流程的输入是流媒体文件,输出是媒体数据包。输入、输出数据的内容是没有改变的,都是多媒体压缩码流,两者之间只有格式的不同,所以从数据流角度来看,服务器的主要工作其实是一个格式转换的过程。由于媒体数据包的格式是由传输协议事先确定的,那么流媒体文件格式是否能够方便服务器读取、封装就决定了服务器的工作量。

    2.2  流媒体文件格式的分析与比较

        流媒体文件在流媒体系统中具有重要地位,文献[2]分析了具有代表性的QuickTime电影文件(mov)和 Microsoft Media Server的电影文件(asf),对其文件格式和相关环节做了深入剖析。发现这些文件格式对服务器工作效率存在如下负面影响:
        (1)磁盘控制器访问吞吐量低。每次封装一个媒体数据包需要读取一帧数据,一般每帧大小为1K左右,每秒需要25帧,这造成对磁盘频繁访问,吞吐量低。
        (2)对于QuickTime Mov文件格式,媒体数据没有经过预处理,服务器每发一个包都需要从hint轨中获得打包时需要的相关参数,实时读取媒体数据、封装、发送,对CPU占用率很大。
        (3)对于Microsoft Asf文件格式,媒体数据在Packet中时已经是mms包的半成品,服务器节省了截取媒体流的时间,但仍然需要服务器选择媒体流来组织mms包。并且,Packet中的数据不全是需要发送的数据,浪费了内存空间和磁盘IO时间。  
         文献[3]提出了一种新的流媒体文件格式NMF,该格式具有如下基本结构(如图2所示)和特点:

    图2 NMF文件结构
        NMF流媒体文件由头文件和体文件构成。头文件主要包含文件描述、媒体描述、流描述等必要的信息;体文件包含全部的媒体数据。一个NMF由一个头文件和若干个体文件构成,同一媒体源不同的流(不同的传输协议或不同的码速率)存放在不同的体文件中,此结构用来实现多码速率切换/智能流技术和兼容现有的流媒体播放器。头文件和体文件的功能划分原则是:当服务器和客户建立连接时(在发送媒体数据之前),只需要从头文件中读数据;当服务器和客户建立连接后,只需要从文件体中读取媒体数据。这样,服务器中各个模块间耦合减少,效率提高。由于头文件和体文件的相对独立,使文件具有很强的可扩展性,并且使得利用硬件进行封装、发送也成为可能。
        NMF的核心思想就是充分利用预处理过程,将原始媒体文件组织成方便服务器处理的格式,减少实时封装和发送时的工作量,同时增加文件结构的兼容性和可扩展性,以提高流服务器的工作效率,增加并发流数量。

    3  Ogg 文件格式结构

    3.1 文件格式在流媒体系统中的重要性

         逻辑流以页(page)为单位组织链接成物理流,如图3所示:

    图3   Ogg 文件的组织形式
        图3中的文件链接了两个物理流,A、B和C三个逻辑流组成一个物理流,逻辑流D单独是一个物理流。一个物理流中的所有逻辑流的bos_page都必须在物理位置上相邻,如图3所示*A*、*B*、*C*三个bos_page的位置。
        bos:beginning of stream;    eos:end of stream
         映射到Ogg格式的媒体(如vorbis音频,Theora视频)有相关详细定义,这些定义使得这些媒体之间有更具体的约束关系。Ogg 本身并没详细说明多个并发媒体流之间的时间关系,这需要并发媒体流在映射到Ogg格式的时刻来指定,通常他们之间的交错关系是按他们产生的时间先后顺序来排列。

    3.2 Ogg page 页结构

        每个页之间相互独立,都包含了各自应有的信息,页的大小是可变的,通常为4K-8KB,最大值不能超过65307bytes(27+255+255*255=65307)。页头部格式如图4。
        页头部各字段域详细说明参见文献[4]:(小端字节序列格式LSB)。
        ⑴ capture_pattern: 模式捕获域,4个字节,表示页的开始,其作用是分离Ogg封装格式还原媒体编码时识别新页的作用,它包含了四个幻数(ASCII字符集):
    0x4f 'O'    0x67 'g'    0x67 'g'     0x53 'S'
         ⑵ stream_structure_version:1个字节,表示当前Ogg文件格式的版本,目前为0。

    图4 Ogg页头部结构
        ⑶ header_type_flag:头部类型标识,1个字节。标识当前页具体类型。其设置分三种情况:
        *  bit 0x01  若已设置,页包含的媒体编码数据于前一页同属于一个逻辑流的同一packet。若未设置,本页是一个新的packet。
        *  bit 0x02   设置,表示逻辑流的第一个页bos。未设,不是第一个页。
        *  bit 0x04   设置,表示逻辑流的最后一页eos。未设,不是最后一页。
        ⑷ granule_position:8个字节(字节6-字节13),包含了媒体编码相关参数信息。对于音频流,包含了到本页为止逻辑流在PCM中采样编码的总次数。对于视频流,包含了逻辑流到本页为止视频帧编码的总次数。其值若为-1,则说明到此页为止,逻辑流的packet还未结束。
        ⑸ bitstream_serial_number:流序列号,4字节,表示本页所属逻辑流与其他逻辑流相区别的序号。
        ⑹ page_sequence_number: 表明了本页在逻辑流中的序列号,Ogg解码器能据此识别有无页丢失。
        ⑺ CRC_checksum: 循环冗余校验码校验和,4字节域,包含页的32bit CRC校验和(包括页头部零CRC校验和页数据校验),它的产生多项式为:0x04c11db7。
        ⑻ number_page_segments:1字节,给定了在本页的segment_tabale域中所出现的segement个数,其最大值为255segments(每片255个字节),即页头部第26个字节的取值范围为:0x00-0xff (0-255)。页最大物理尺寸为65307bytes,小于64KB。
        ⑼ segment_table:逻辑流中的每个packet每个segment长度的取值(lacing values,除了每个packet的最后一个segment小于255外,其它segment都为255),这些值以segment出现的先后顺序依次排列。此域的字节数为number_page_segments域所表示的数字(即在0-255之间)。
    byte     value
      27       0xff (255)
           [.................  ]
           n-1      0xff (255)
    n        0x00-0xfe (0-254, n=num_segments+26)
    页头部长度的字节数:
       header_size = 27 + number_page_segments [Byte] 
       即页头部长度为上述9个域名所表述占据的字节数之和。
    页的总长度:
      page_size = header_size + sum(lacing_values: 1...number_page_segments)   [Byte]
    即页的总长度为页头部长度加上紧随其后的若干segments长度之和(净载荷长度)。

    3.3  Ogg封装处理过程

        (1)音视频编码在提供给Ogg封装之前是以具有包边界的“Packets”形式呈现的,包边界依赖于具体的编码格式。如图5所示。
        (2)将逻辑流的各个包进行分片segmentation,每片大小固定为255Byte,但包的最后一个segment通常小于255字节。因为packet的大小可以是任意长度,由具体的媒体编码器来决定。
        (3)进行页封装,每页都被加上页头,每页的长度可不等,由具体情况而确定。页头部segment_table域告知了 “lacing_value”值的大小,即页中最后一个segment的长度(可以为0,或小于255)。一次处理一个packet,此packet被封装成一个或多个page页(page的长度设定了上限,一般为4kB);下一个packet必须用新的page开始封装,由首部字段域header_type_flag的设置规定来表示。
        (4)多个已被页格式封装好的逻辑流(如语音、文本、图片、音频、视频等)按应用要求的时序关系合成物理流。

    3.4  Ogg文件的映射与逆映射

        用Ogg文件格式封装好压缩编码媒体流可用于存储(磁盘文件)或直接传输(TCP或管道),这是因为Ogg比特流格式提供了封装/同步、差错同步捕获、寻找标记以及其它足够的信息使得这种分散开的数据能够完全地还原为封装之前的具有包边界“packet”形式的压缩编码媒体流,恢复到这种原来媒体流就具有的包边界形式不需要依赖于针对压缩编码的解码器。也就是说Ogg映射与逆映射和媒体流的压缩编码、解码具有相对独立性。

    图5  Ogg封装流程示意图
        Ogg文件需要解封装的情况有两种:(1)播放器要对媒体流解码之前;(2)对媒体流进行RTP/UDP传输之前。解封装的过程就是ogg逆映射过程,即还原为具有包边界“packet”形式的媒体流,同时以预先填充好了的RTP首部字段与相应一段媒体数据捆绑,形成RTP封包。此过程便是媒体流从Ogg格式到RTP格式的转换过程。
        将以packet为单元的媒体流映射为以page为单元的Ogg格式比特流,其中间经过了segment的划分和重组环节,但方便了对媒体流的存储与传输(TCP)。对源缓冲区媒体数据(packet)的操作,需建立几个中间环节的数据结构,只需将切割的媒体数据在内存移动一次,操作指向媒体数据的指针便能达到媒体数据迁移到目的缓冲区(page)的意图,其过程可用两个函数转换来表述:
    ogg_stream_packetin()àogg_stream_pageout()。 将Ogg格式比特流逆映射还原为packets媒体流,以备播放解码或以RTP封装进行UDP传输 。其中间环节是把page中的segment单元数据按顺序重组为packet,同样媒体数据在内存中的复制只有一次,其过程可用三个函数转换来表述:ogg_sync_pageout()à ogg_stream_pagein ()à ogg_stream_packetout(),媒体数据复制发生在第一个函数ogg_sync_pageout()。 
    Ogg映射与逆映射的功能都体现在ogg函数库中,当前最新版本为libogg-1.1.3。 

    4 结束语   

           Ogg格式是在吸收其它流媒体文件格式优点的基础上针对具有“packet”包边界形式的媒体流而制定的利于其存储和传输的开源流媒体文件格式,在icecast流服务器的传输中得到了很好的应用;根据icecast官方网站公布其测试结果,在GB主干网的条件下对Oggvorbis音频传输的客户端并发流可达14000个。更为重要的是,作为流媒体技术的核心环节,大多数流媒体文件格式至今仍没有完全公开,且受专利保护。要在流媒体技术和应用飞速   发展的今天占得一席之地,遵从GNU/GPL协定,走开源之路,发展不受知识产权约束的流媒体文件格式是紧追先进流媒体技术的较佳选择。 

    几种常见的流媒体格式文件:

    微软高级流格式ASF简介

    Microsoft公司的Windows Media的核心是ASF(Advanced Stream Format)。微软将ASF 定义为同步媒体的统一容器文件格式。ASF是一种数据格式,音频、视频、图像以及控制命令脚本等多媒体信息通过这种格式,以网络数据包的形式传输,实现流式多媒体内容发布。

    ASF最大优点就是体积小,因此适合网络传输,使用微软公司的最新媒体播放器(Microsoft Windows Media Player)可以直接播放该格式的文件。用户可以将图形、声音和动画数据组合成一个ASF格式的文件,当然也可以将其他格式的视频和音频转换为ASF格式,而且用户还可以通过声卡和视频捕获卡将诸如麦克风、录像机等等外设的数据保存为ASF格式。另外,ASF格式的视频中可以带有命令代码,用户指定在到达视频或音频的某个时间后触发某个事件或操作。

    ASF的特征

    可扩展的媒体类型- ASF文件允许制作者很容易地定义新的媒体类型。ASF格式提供了非常有效的灵活地定义符合ASF文件格式定义的新的媒体流类型。任一存储的媒体流逻辑上都是独立于其他媒体流的,除非在文件头部分明显地定义了其与另一媒体流的关系。

    部件下载-特定的有关播放部件的信息(如,解压缩算法和播放器)能够存储在ASF 文件头部分,这些信息能够为客户机用来找到合适的所需的播放部件的版本---如果它们没有在客户机上安装。

    可伸缩的媒体类型- ASF是设计用来表示可伸缩的媒体类型的"带宽"之间的依赖关系。ASF存储各个带宽就像一个单独的媒体流。媒体流之间的依赖关系存储在文件头部分,为客户机以一个独立于压缩的方式解释可伸缩的选项提供了丰富的信息流的优先级化- 现代的多媒体传输系统能够动态地调整以适应网络资源紧张的情况(如,带宽不足)。多媒体内容的制作者要能够根据流的优先级表达他们的参考信息,如最低保证音频流的传输。随着可伸缩媒体类型的出现,流的优先级的安排变得复杂起来,因为在制作的时候很难决定各媒体流的顺序。ASF允许内容制作者有效地表达他们的意见(有关媒体的优先级),甚至在可伸缩的媒体类型出现的情况下也可以.

    多语言- ASF设计为支持多语言。媒体流能够可选地指示所含媒体的语言。这个功能常用于音频和文本流。一个多语言ASF文件指的是包含不同语言版本的同一内容的一系列媒体流,其允许客户机在播放的过程中选择最合适的版本。

    目录信息- ASF提供可继续扩展的目录信息的功能,该功能的扩展性和灵活性都非常好。所有的目录信息都以无格式编码的形式存储在文件头部分,并且支持多语言,如果需要,目录信息既可预先定义(如,作者和标题),也可以是制作者自定义。目录信息功能既可以用于整个文件也可以用于单个媒体流。

    RealSystem的RealMedia文件格式

    RealNetworks公司的RealMedia包括RealAudio、RealVideo和RealFlash三类文件,其中RealAudio用来传输接近CD音质的音频数据,RealVideo用来传输不间断的视频数据,RealFlash则是RealNetworks公司与Macromedia公司新近联合推出的一种高压缩比的动画格式RealMedia文件格式的引入了,它使得RealSystem可以通过各种网络传送高质量的多媒体内容。第三方开发者可以通过RealNetworks公司提供的SDK将它们的媒体格式转换成RealMedia文件格式。

    QuickTime电影(Movie)文件格式

    Apple公司的QuickTime电影文件现已成为是数字媒体领域的工业标准。 QuickTime电影文件格式定义了存储数字媒体内容的标准方法,使用这种文件格式不仅可以存储单个的媒体内容(如视频帧或音频采样),而且能保存对该媒体作品的完整描述;QuickTime文件格式被设计用来适应为与数字化媒体一同工作需要存储的各种数据。因为这种文件格式能用来描述几乎所有的媒体结构,所以它是应用程序间(不管运行平台如何)交换数据的理想格式。QuickTime文件格式中媒体描述和媒体数据是分开存储的,媒体描述或元数据(meta-data)叫做电影(movie),包含轨道数目、视频压缩格式和时间信息。同时movie包含媒体数据存储区域的索引。媒体数据是所有的采样数据,如视频帧和音频采样,媒体数据可以与QuickTime movie存储在同一个文件中,也可以在一个单独的文件或者在几个文件中。

    展开全文
  • H264、Xvid等就是视频编码格式,MP3、AAC等就是音频编码格式。 例如:将一个Xvid视频编码文件和一个MP3视频编码文件按AVI封装标准封装以后,就得到一个AVI后缀的视频文件,这个就是我们常见的AVI视频文件了。 ...

    常见的AVI、RMVB、MKV、ASF、WMV、MP4、3GP、FLV等文件其实只能算是一种封装标准。

    一个完整的视频文件是由音频和视频2部分组成的。H264、Xvid等就是视频编码格式,MP3、AAC等就是音频编码格式。

     

    例如:将一个Xvid视频编码文件和一个MP3视频编码文件按AVI封装标准封装以后,就得到一个AVI后缀的视频文件,这个就是我们常见的AVI视频文件了。

    由于很多种视频编码文件、音频编码文件都符合AVI封装要求,则意味着即使是AVI后缀,也可能里面的具体编码格式不同。因此出现在一些设备上,同是AVI后缀文件,一些能正常播放,还有一些就无法播放。

    同样的情况也存在于其他容器格式。即使RMVB、WMV等也不例外。部分技术先进的容器还可以同时封装多个视频、音频编码文件,甚至同时封装进字幕,如MKV封装格式。MKV文件可以做到一个文件包括多语种发音、多语种字幕,适合不同人的需要。

    例如:MKV文件只要制作的时候同时加入国语和粤语发音的音轨和对应的简体、繁体字幕,播放的时候,你可以独立选择国语或粤语发音,并根据自己需要选择简体或繁体字幕,也可以选择不显示字幕。相当方便。

    因此,视频转换需要设置的本质就是:A设置需要的视频编码、B设置需要的音频编码、C选择需要的容器封装。一个完整的视频转换设置都至少包括了上面3个步骤。

    常用的有Xvid,H264,MPEG1,MPEG2。
    Xvid:与RMVB格式差不多的压缩率,通用性很强,特别是用于家用DVD和便携式MP4等设备。

    H264:面前压缩率最高的视频压缩格式,与其他编码格式相比,同等画面质量,文件体积最小,远远超过RMVB编码格式,电脑都可以播放,部分便携式视频设备也支持,如苹果播放器。PDA/PPC等设备也可以使用。

    MPEG1:其实就是VCD编码格式。

    MPEG2:DVD编码格式。比MPEG1强,与MPEG1一样,已经落后的编码格式,压缩率都不高,编码后的文件体积大,多用于希望把网上下载的文件转换为VCD或DVD碟的时候。

    封装容器 视频流编码格式 音频流编码格式
    AVI Xvid MP3
    AVI Divx MP3
    Matroska(后缀就是MKV) Xvid MP3
    Matroska(后缀就是MKV) Xvid AAC
    Matroska(后缀就是MKV) H264 AAC
    MP4 Xvid MP3
    MP4 H264 AAC
    3GP H.263 AAC

    事实上,很多封装容器对音频编码和视频编码的组合方式放的很开,如AVI还可以使用H264+AAC组合,可以在具体使用中自己体会。尤其是MKV封装容器,基本无论什么样的组合都可以!但一般MKV用的最多的就是H264+AAC组合,此组合文件体积最小,清晰度最高。因此网上很多MKV视频都是高清晰度的。

    从上表格可以看出,真正设置的重点在于音频编码和视频编码,封装容器多数时候只是关系到最后的文件后缀而已。起码初学者可以就这么理解。

    展开全文
  • 流媒体格式介绍

    千次阅读 2009-08-26 00:34:00
    流媒体格式介绍 ●AVI格式:它的英文全称为Audio Video Interleaved,即音频视频交错格式。它于1992年被Microsoft公司推出,随Windows3.1一起被人们所认识和熟知。所谓“音频视频交错”,就是可以将视频和音频交织在...

     

    流媒体格式介绍

    ●AVI格式:它的英文全称为Audio Video Interleaved,即音频视频交错格式。它于1992年被Microsoft公司推出,随Windows3.1一起被人们所认识和熟知。所谓“音频视频交错”,就是可以将视频和音频交织在一起进行同步播放。这种视频格式的优点是图像质量好,可以跨多个平台使用,其缺点是体积过于庞大,而且更加糟糕的是压缩标准不统一,最普遍的现象就是高版本Windows媒体播放器播放不了采用早期编码编辑的AVI格式视频,而低版本Windows媒体播放器又播放不了采用最新编码编辑的AVI格式视频,所以我们在进行一些AVI格式的视频播放时常会出现由于视频编码问题而造成的视频不能播放或即使能够播放,但存在不能调节播放进度和播放时只有声音没有图像等一些莫名其妙的问题,如果用户在进行AVI格式的视频播放时遇到了这些问题,可以通过下载相应的解码器来解决。

    ●nAVI格式:nAVI是newAVI的缩写,是一个名为ShadowRealm的地下组织发展起来的一种新视频格式(与我们上面所说的AVI格式没有太大联系)。它是由Microsoft ASF压缩算法的修改而来的,但是又与下面介绍的网络影像视频中的ASF视频格式有所区别,它以牺牲原有ASF视频文件视频“流”特性为代价而通过增加帧率来大幅提高ASF视频文件的清晰度。

    ●DV-AVI格式:DV的英文全称是Digital Video Format,是由索尼、松下、JVC等多家厂商联合提出的一种家用数字视频格式。目前非常流行的数码摄像机就是使用这种格式记录视频数据的。它可以通过电脑的IEEE 1394端口传输视频数据到电脑,也可以将电脑中编辑好的的视频数据回录到数码摄像机中。这种视频格式的文件扩展名一般是.avi,所以也叫DV-AVI 格式。

    ●MPEG格式:它的英文全称为Moving Picture Expert Group,即运动图像专家组格式,家里常看的VCD、SVCD、DVD就是这种格式。MPEG文件格式是运动图像压缩算法的国际标准,它采用了有损压缩方法减少运动图像中的冗余信息,说的更加明白一点就是MPEG的压缩方法依据是相邻两幅画面绝大多数是相同的,把后续图像中和前面图像有冗余的部分去除,从而达到压缩的目的(其最大压缩比可达到200:1)。目前MPEG格式有三个压缩标准,分别是MPEG-1、MPEG-2、和MPEG-4,另外, MPEG-7与MPEG-21仍处在研发阶段。

    MPEG-1:制定于1992年,它是针对1.5Mbps以下数据传输率的数字存储媒体运动图像及其伴音编码而设计的国际标准。也就是我们通常所见到的 VCD制作格式。使用MPEG-1的压缩算法,可以把一部120分钟长的电影压缩到1.2GB左右大小。这种视频格式的文件扩展名包括.mpg、. mlv、.mpe、.mpeg及VCD光盘中的.dat文件等。

    MPEG-2:制定于1994年,设计目标为高级工业标准的图像质量以及更高的传输率。这种格式主要应用在DVD/SVCD的制作(压缩)方面,同时在一些HDTV(高清晰电视广播)和一些高要求视频编辑、处理上面也有相当的应用。使用MPEG-2的压缩算法,可以把一部120分钟长的电影压缩到4到 8GB的大小。这种视频格式的文件扩展名包括.mpg、.mpe、.mpeg、.m2v及DVD光盘上的.vob文件等。

    MPEG-4:制定于1998年,MPEG-4是为了播放流式媒体的高质量视频而专门设计的,它可利用很窄的带度,通过帧重建技术,压缩和传输数据,以求使用最少的数据获得最佳的图像质量。目前MPEG-4最有吸引力的地方在于它能够保存接近于DVD画质的小体积视频文件。另外,这种文件格式还包含了以前 MPEG压缩标准所不具备的比特率的可伸缩性、动画精灵、交互性甚至版权保护等一些特殊功能。这种视频格式的文件扩展名包括.asf、.mov和DivX AVI等。

    小提示:细心的用户一定注意到了,这中间怎么没有MPEG-3编码?实际上,大家熟悉的MP3就是采用的MPEG-3(MPEG Layeur3)编码。




    ●DivX格式:这是由MPEG-4衍生出的另一种视频编码(压缩)标准,也即我们通常所说的DVDrip格式,它采用了MPEG4的压缩算法同时又综合了MPEG-4与MP3各方面的技术,说白了就是使用DivX压缩技术对DVD盘片的视频图像进行高质量压缩,同时用MP3或AC3对音频进行压缩,然后再将视频与音频合成并加上相应的外挂字幕文件而形成的视频格式。其画质直逼DVD并且体积只有DVD的数分之一。这种编码对机器的要求也不高,所以 DivX视频编码技术可以说是一种对DVD造成威胁最大的新生视频压缩格式,号称DVD杀手或DVD终结者。

    ●MOV格式:美国Apple公司开发的一种视频格式,默认的播放器是苹果的QuickTimePlayer。具有较高的压缩比率和较完美的视频清晰度等特点,但是其最大的特点还是跨平台性,即不仅能支持MacOS,同样也能支持Windows系列。

    二、网络影像视频

    ●ASF格式:它的英文全称为Advanced Streaming format,它是微软为了和现在的Real Player竞争而推出的一种视频格式,用户可以直接使用Windows自带的Windows Media Player对其进行播放。由于它使用了MPEG-4的压缩算法,所以压缩率和图像的质量都很不错(高压缩率有利于视频流的传输,但图像质量肯定会的损失,所以有时候ASF格式的画面质量不如VCD是正常的)。

    ●WMV格式:它的英文全称为Windows Media Video,也是微软推出的一种采用独立编码方式并且可以直接在网上实时观看视频节目的文件压缩格式。WMV格式的主要优点包括:本地或网络回放、可扩充的媒体类型、部件下载、可伸缩的媒体类型、流的优先级化、多语言支持、环境独立性、丰富的流间关系以及扩展性等。

    ●RM格式:Real Networks公司所制定的音频视频压缩规范称为Real Media,用户可以使用RealPlayer或RealOne Player对符合RealMedia技术规范的网络音频/视频资源进行实况转播并且RealMedia可以根据不同的网络传输速率制定出不同的压缩比率,从而实现在低速率的网络上进行影像数据实时传送和播放。这种格式的另一个特点是用户使用RealPlayer或RealOne Player播放器可以在不下载音频/视频内容的条件下实现在线播放。另外,RM作为目前主流网络视频格式,它还可以通过其Real Server服务器将其它格式的视频转换成RM视频并由Real Server服务器负责对外发布和播放。RM和ASF格式可以说各有千秋,通常RM视频更柔和一些,而ASF视频则相对清晰一些。

    ●RMVB格式: 所谓RMVB格式,是在流媒体的RM影片格式上升级延伸而来。VB即VBR,是Variable Bit Rate(可改变之比特率)的英文缩写。我们在播放以往常见的RM格式电影时,可以在播放器左下角看到225Kbps字样,这就是比特率。影片的静止画面和运动画面对压缩采样率的要求是不同的,如果始终保持固定的比特率,会对影片质量造成浪费。 这是一种由RM视频格式升级延伸出的新视频格式,它的先进之处在于RMVB视频格式打破了原先RM格式那种平均压缩采样的方式,在保证平均压缩比的基础上合理利用比特率资源,就是说静止和动作场面少的画面场景采用较低的编码速率,这样可以留出更多的带宽空间,而这些带宽会在出现快速运动的画面场景时被利用。这样在保证了静止画面质量的前提下,大幅地提高了运动图像的画面质量,从而图像质量和文件大小之间就达到了微妙的平衡。另外,相对于 DVDrip格式,RMVB视频也是有着较明显的优势,一部大小为700MB左右的DVD影片,如果将其转录成同样视听品质的RMVB格式,其个头最多也就400MB左右。不仅如此,这种视频格式还具有内置字幕和无需外挂插件支持等独特优点。
    DVDrip以其高清晰的画质、震撼人心的AC3音效受到了广大影音发烧友的热烈追捧,自问世以来就风靡互联网,几乎成了网络电影的首选格式。不过 DVDrip虽然优势多多,但缺点也不少:数百兆的大个头、众多的外挂插件、对系统资源的巨大占用、解码器配置的繁难、制作的烦琐耗时等等,都在一定程度上限制了它的发展。而近期新一代影音格式RMVB的横空出世,更是严重动摇了DVDrip的霸主地位。
    而RMVB则打破了原先RM格式那种平均压缩采样的方式,在保证平均压缩比的基础上,设定了一般为平均采样率两倍的最大采样率值。将较高的比特率用于复杂的动态画面(歌舞、飞车、战争等),而在静态画面中则灵活地转为较低的采样率,合理地利用了比特率资源,使RMVB在牺牲少部分你察觉不到的影片质量情况下最大限度地压缩了影片的大小,最终拥有了近乎完美的接近于DVD品质的视听效果,如图1所示的就是RMVB格式的《圣斗士冥王篇》。可谓体积与清晰度 “鱼与熊掌兼得”,其发展前景不容小觑。
    相较DVDrip而言,RMVB的优势不言而喻。首先在保证影片整体视听效果的前提下,RMVB的个头只有300~450MB左右(以90分钟的标准电影计算),而DVDrip却需要700MB甚至更多;其次RMVB的字幕为内嵌字幕,不像DVDrip那样要安装调试字幕外挂软件,有时还会出现乱码;更重要的是RMVB的影音播放只需一次性安装完解码器,以后无论影像还是音效都无需另行调试。而DVDrip却视频、音频解码一大堆,设置不当还会造成音画不同步、花屏失声等等毛病。

    0
    0
    展开全文
  • Android 视频播放之流媒体格式处理

    千次阅读 2015-10-22 13:53:57
    原文链接地址:http://blog.zhourunsheng.com/2012/05/android-视频播放之流媒体格式处理/ 格式编码 项目的需求要实现流媒体的播放,简言之就是视频可以支持边下载边播放。鉴于MP4/h.264编码的优势,视频...

    原文链接地址:http://blog.zhourunsheng.com/2012/05/android-视频播放之流媒体格式处理/

    格式编码


    项目的需求要实现流媒体的播放,简言之就是视频可以支持边下载边播放。鉴于MP4/h.264编码的优势,视频采用MP4文件格式存储,因为mp4只是一个存储的规范,像国内的优酷主要采用flv文件格式,其内部也是MP4编码,flv是 Adobe 支持的格式,这样的话,不论是在网站端,通过pc浏览器浏览,借助于Flash Player,还是手持设备,借助于ffmpeg的解码库,都能实现视频的无缝播放,算是一个比较完美的解决方案。

    在实际视频的处理中,发现一个问题,利用Android手机自己拍摄录制的视频,可以完美支持边下载边播放,通过Iphone手机录制的视频,然后转码成mp4格式的视频就不能支持边下载边播放了,问题困扰了两三天,没办法,开始研究mp4的存储格式,最后终于找到了问题的所在。

    了解mp4格式的应该知道,mp4是采用一种box数据结构来存储视频数据的,理想的情况是,box的顺序为ftyp,moov,free和mdat,通过moov的解析就能获取该视频的关键信息,比如播放时长,关键帧数,sample存储情况,在mdat中对应的编码数据偏移量等等。这样只要视频缓存完头部信息,即moov之后,就能知道当前视频的关键数据了,随着mdat的逐渐下载,就能完美实现视频的边缓存边播放,具体的实例教程请参见我的博文《Android视频播放之边缓存边播放》

    但是通过第三方软件的编码转换,有的就把moov放置到mdat之后了,这样只有把视频全部下载完成之后才能获取该视频的关键信息,才能开始播放,理论上也就没法实现视频的边缓存边播放,找到问题的关键点之后,就开始寻找解决办法,终于找到qt-faststart,它能解析原视频格式,并将moov信息尽可能的提前,这样就能及早解析和播放视频了。

    格式转换

    下载地址:

    我使用的是window的客户端,使用命令如下:

    Usage: qt-faststart (转换前的视频文件) (转换后的视频文件)

    参考文章

    展开全文
  • 手机支持的流媒体格式总结

    千次阅读 2010-05-22 16:34:00
    现在市面上出现的智能手机特别多,其支持的流媒体格式也不同: 诺基亚支持real编码的流媒体,可直接播放后缀为rm的文件。 htc一般使用的是windows mobile系统。支持wm9编码的流媒体。 iphone支持quicktime编码的...
  • planar常见格式有: YUV420P(I420)、YV12; packed常见格式有: NV12(YUV420SP)、NV21。 2.1 Planar——YUV420P(I420) YUV420P先存储所有Y分量,之后存储所有U分量,最后存储所有V分量: 每个像素点占...
  • hls流媒体:ts流格式介绍

    千次阅读 2016-08-10 16:22:51
    1.ts简介  ts流最早应用于数字电视领域,其格式非常复杂包含的配置信息表多大十几个,视频格式主要是mpeg2。苹果公司发明的http live stream流媒体是基于ts文件的,不过他大大简化了传统的
  • 流媒体文件应用常见问题解答

    千次阅读 2016-07-09 16:46:23
    流媒体文件应用常见问题解答 作者/来源:未知 1.rm格式的文件能下载下来吗?   答:当然了,用streamboxvcr就可以,这个软件的套装可以在本站找到,名字  是streamboxvcrsuite1.0。   2.能将mpeg...
  • 流媒体(streaming media)是指将一连串数据压缩后,经过网络分段发送,即时传输以供观看音视频的一种技术。 通过使用 streaming media 技术,用户无需将文件下载到本地即可播放。由于媒体是以连续的数据流发送的,...
  • 图像和流媒体 -- 详解YUV数据格式

    千次阅读 多人点赞 2017-10-19 12:29:52
    我们在讲 FFmpeg 系列的时候,有提到...其中包括YUV播放器、简单的YUV格式介绍。 参看:FFmpeg再学习 -- 视音频基础知识 接下来详细研究一下: 参看:YUV -- 维基百科 参看:图文详解YUV420数据格式 一、YUV简...
  • 流媒体流媒体传输协议简介

    千次阅读 多人点赞 2019-06-01 22:26:10
    流媒体(streaming media):是指将一连串的媒体数据压缩后,经过网上分段发送数据,在网上即时传输影音以供观赏的一种技术与过程,此技术使得数据包得以像流水一样发送;如果不使用此技术,就必须在使用前下载整个...
  • LiveGBS就是一套开放的GB28181流媒体服务平台,提供用户私有化部署、提供标准RESTFul HTTP接口用于二次开发,将视频流转成RTMP、RTSP、HTTP-FLV、HLS格式支持WEB端、移动端等各终端播放,无需插件。另外还支持抓取...
  • 流媒体基础总结

    千次阅读 2017-04-25 18:32:44
    本人从事流媒体开发以来甚是感觉基础重要性,因此特地总结一下,希望初学者能过引起重视并少走弯路,也请相关大神...我们先从常见视频格式mp4开始入手了解如图: 我们可以通过下载播放器来查看该视频文件的相关信息
  • 如果你读过MPEG-DASH(23009 - Dynamic Adaptive Streaming over HTTP)的spec,...大家可能会有疑惑,好好的TS格式已经用了有20年了,这些新时代下的streaming协议干嘛还要搞一个新格式来用呢?本文就来简单介绍一下fm
  • 流媒体-FLV格式详解及数据分析

    万次阅读 2017-04-06 17:08:12
    一、FLV文件格式 FLV包括文件头(File Header)和文件体(File Body)两部分。文件结构如图所示: 二、FLV文件头 header部分记录了flv的类型、版本等信息,是flv的开头,一般都差不多,占9bytes。具体格式...
  • 主要流媒体系统目前主流的流媒体技术有三种,分别是RealNetworks公司的RealMedia、Microsoft公司的WindowsMediaTechnology和Apple公司的QuickTime。这三家的技术都有自己的专利算法、专利文件格式甚至专利传输控制...
  • 流媒体

    千次阅读 2007-03-19 18:45:00
    随着越来越多的朋友开始选择ADSL、Cable Modem或FTTB+ LAN作为首要的上网方式,宽频时代即将到来,这使我们“宽频 KTV、影音聊天室、线上电影院、远程教育”的梦想即将成为现实, 而与其密切相关的“流媒体...
  • 小编最近3周在做流媒体相关业务,对于视频这块有了一些自己认识,分享一下。 一、业务场景 类似“汽车抵押贷款”等相关贷款业务这几年很常见,往往为了做风险控制,要求贷款人在我门店按照工作人员要求录制N段视频...
  • 例如,网络上常见的一部90分钟1Mbps码的720P RMVB文件,其体积就=5400秒×1Mb/8=675MB。  通常来说,一个视频文件包括了画面及声音,例如一个RMVB的视频文件,里面包含了视频信息和音频信息,音频及视频都有...
  • 几种直播流媒体协议

    万次阅读 2017-06-01 21:30:34
    题外话: HTTP渐进下载流媒体播放: 基于TCP。 yy、乐视、爱奇艺、优酷土豆、搜狐视频、花椒直播,主要还是...所谓流媒体是指采用流式传输的方式在 Internet 播放的媒体格式。  流媒体又叫流式媒体,它是指商家用一个
  • Android流媒体播放器介绍

    千次阅读 2016-02-23 22:08:18
    Android原生流媒体播放Android原生SDK当中有提供流媒体播放API,ViewoView,播放流媒体也挺简单的,但是它支持的流媒体协议有限,例如先前博客里面提到的RTMP,就是不支持的,关于VideoView播放流媒体可以参考该博客...
  • 流媒体服务器

    千次阅读 2016-03-17 23:12:26
    流媒体指以流方式在网络中传送音频、视频和多媒体文件的媒体形式。 相对于下载后观看的网络播放形式而言,流媒体的典型特征是把连续的音频和视频信息压缩后放到网络服务器上,用户边下载边观看,而不必等待整个...
  • 安防流媒体概述

    千次阅读 2012-04-10 22:23:09
    流媒体技术最早出现在互联网,指在Internet/Intranet中使用流式传输技术的连续时基媒体,如:音频、视频或多媒体文件。使用流媒体技术可以避免文件信息下载后再播放的尴尬,并且实时性较好,无需长时间的下载等待,...
  • 流媒体直播协议与比较

    千次阅读 2018-12-19 13:30:04
    所谓流媒体是指采用流式传输的方式在 Internet 播放的媒体格式流媒体又叫流式媒体,它是指把实时的视频流或音频流传送到服务器,服务器再把视频流或音频流当成数据包发出,传送到网络上。 用户通过解压设备对...
  • 流媒体基础知识(一)

    千次阅读 2019-04-25 10:23:59
    文章目录视频文件常见的后缀名视频封装格式AVIMPEGMPEG1MPEG2MPEG4MPEG-7DivXRealVideo视频编码格式音频编码格式视频像素数据RGBYUV音频采样数据 本文分图中几个部分进行介绍。 视频文件常见的后缀名 不同厂家...
  • 流行视频格式讲解

    千次阅读 2013-07-22 16:27:45
    视频格式可以分为适合本地播放的本地影像视频和适合在网络中播放的网络流媒体影像视频两大类。尽管后者在播放的稳定性和播放画面质量上... 1、影像格式(Video) 2、流媒体格式(Stream Video) 在影像格式中还可以根

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 45,261
精华内容 18,104
关键字:

属于常见的流媒体格式