精华内容
下载资源
问答
  • 属于常见的流媒体格式
    千次阅读
    2021-10-30 13:58:39

            随着Internet 的日益普及,在网络上传输的数据已经不再局限于文字和图形,而是逐渐向声音和视频等多媒体格式过渡。目前在网络上传输音频/视频(Audio/Video,简称A/V)等多媒体文件时,基本上只有下载和流式传输两种选择。通常说来,A/V文件占据的存储空间都比较大,在带宽受限的网络环境中下载可能要耗费数分钟甚至数小时,所以这种处理方法的延迟很大。如果换用流式传输的话,声音、影像、动画等多媒体文件将由专门的流媒体服务器负责向用户连续、实时地发送,这样用户可以不必等到整个文件全部下载完毕,而只需要经过几秒钟的启动延时就可以了,当这些多媒体数据在客户机上播放时,文件的剩余部分将继续从流媒体服务器下载。

           流(Streaming)是近年在Internet上出现的新概念,其定义非常广泛,主要是指通过网络传输多媒体数据的技术总称。流媒体包含广义和狭义两种内涵:广义上的流媒体指的是使音频和视频形成稳定和连续的传输流和回放流的一系列技术、方法和协议的总称,即流媒体技术;狭义上的流媒体是相对于传统的下载-回放方式而言的,指的是一种从Internet上获取音频和视频等多媒体数据的新方法,它能够支持多媒体数据流的实时传输和实时播放。通过运用流媒体技术,服务器能够向客户机发送稳定和连续的多媒体数据流,客户机在接收数据的同时以一个稳定的速率回放,而不用等数据全部下载完之后再进行回放。

           由于受网络带宽、计算机处理能力和协议规范等方面的限制,要想从Internet上下载大量的音频和视频数据,无论从下载时间和存储空间上来讲都是不太现实的,而流媒体技术的出现则很好地解决了这一难题。目前实现流媒体传输主要有两种方法:顺序流(progressive streaming)传输和实时流(realtime streaming)传输,它们分别适合于不同的应用场合。

    顺序流传输:

           顺序流传输采用顺序下载的方式进行传输,在下载的同时用户可以在线回放多媒体数据,但给定时刻只能观看已经下载的部分,不能跳到尚未下载的部分,也不能在传输期间根据网络状况对下载速度进行调整。由于标准的HTTP服务器就可以发送这种形式的流媒体,而不需要其他特殊协议的支持,因此也常常被称作 HTTP流式传输。顺序流式传输比较适合于高质量的多媒体片段,如片头、片尾或者广告等。

    实时流传输:

    实时流式传输保证媒体信号带宽能够与当前网络状况相匹配,从而使得流媒体数据总是被实时地传送,因此特别适合于现场事件。实时流传输支持随机访问,即用户可以通过快进或者后退操作来观看前面或者后面的内容。从理论上讲,实时流媒体一经播放就不会停顿,但事实上仍有可能发生周期性的暂停现象,尤其是在网络状况恶化时更是如此。与顺序流传输不同的是,实时流传输需要用到特定的流媒体服务器,而且还需要特定网络协议的支持。

    更多相关内容
  • 常见流媒体格式.doc

    2021-10-11 14:30:38
    常见流媒体格式.doc
  • 流媒体/流媒体文件格式详解

    万次阅读 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存储在同一个文件中,也可以在一个单独的文件或者在几个文件中。

    展开全文
  • 本文根据这一需求设计了一种嵌入式流媒体播放器,方案基于Intel PXA270 的硬件平台及嵌入式Linux 的软件平台,采用无线上网方式,可支持ASF、RM 格式的流文件解压,能够播放常见的MP1、MP2、MP3、WAV 音频和先进的...
  • 流媒体技术介绍

    千次阅读 多人点赞 2021-03-08 17:11:36
    本文简单介绍流媒体技术的相关知识。 1 概述 流媒体(streaming media)技术,是指将一连串的多媒体数据压缩后,经过互联网分段发送数据,在互联网上即时传输影音,以供用户观赏的一种技术。 流媒体技术使得...

    本文介绍流媒体技术的相关知识。

    1 概述

    流媒体streaming media)技术,是指将一连串的多媒体数据压缩后,经过互联网分段发送数据,在互联网上即时传输影音,以供用户观赏的一种技术。

    在流媒体技术出现之前,人们必须要先下载多媒体内容到本地计算机,等待完整的多媒体内容下载完成之后,才能够欣赏多媒体的内容。流媒体技术的出现,使人们只需经过几秒或十几秒的启动延时即可欣赏媒体内容,而无需再等待媒体内容完全下载完成了。

    流媒体技术使得数据包可以像流水一样发送,如果不使用此技术,用户就必须先下载整个媒体文件,而后才能使用多媒体数据。通过流媒体技术,可将现场或预存于服务器上的影音传送至观看者端,当影音数据传送至观看者的计算机后,即可立即通过特定的播放软件欣赏影音数据。

    如果将媒体文件的传输看作是一次接水的过程,那么过去的媒体传输方式就像是对用户做了一个规定:必须等到一桶水接满才能使用它,“接满一桶水”这个过程等待的时间就要受到水流量大小和桶大小的影响了。而流媒体传输则是,打开水头龙后,稍等一小会儿,水就会源源不断地流出来了,此时即可随接随用。因此,不管水流量的大小、也不管桶的大小,用户都可以随时用上水。从这个角度来看,“流媒体”这个词是非常形象的。

    2 流媒体(技术)的特征

    流媒体包括声音流、视频流、文本流、图像流、动画流等,在时间上连续的媒体数据。

    1. 流媒体具有较强的实时性和交互性;

    2. 通过利用流媒体技术,用户侧的媒体启动时间大幅度缩短,用户不必像以往那样“等到所有媒体内容都下载完成后上才能浏览”,而是经过一段启动延时后,立即就能欣赏媒体内容。

    3. 与传统的媒体传输方式相比,流媒体技术对客户端(用户计算机)的缓存容量要求大大降低。
    Internet 是以包传输为基础进行的异步传输,因此数据会被分解成许多包进行传输,由于每个数据包可能选择不同的路由(进行传输),所以这些数据包到达客户端(用户计算机)的时间延迟就会不同,因此在客户端就需要缓存系统来消减延迟和抖动的影响,以及保证接收到数据包的传输顺序的准确性。与传统的(完整)媒体传输方式相比,在流媒体文件的播放过程中,由于不再需要把所有的文件都放入缓存系统,因此对缓存容量的要求是很低的。

    3 流式传输

    流媒体技术的特征就是流式传输,它使得流媒体数据可以像流水一样传输。

    流式传输主要包括两种实现方式:顺序流式传输(progressive streaming)和实时流式传输(real time streaming)。需要根据具体需求决定采用哪种方式进行流式传输,下面就对这两种传输方式进行简单介绍。

    3.1 顺序流式传输

    在顺序流式传输模式下,用户在观看在线媒体的同时,也在下载文件。在这个过程中,用户只能观看已经下载完成的媒体内容,而不能直接观看未下载的部分。因此,用户会在一段延时后,才能看到服务器传送过来的媒体内容。由于标准的HTTP服务器就可以发送这种形式的媒体文件,因此流式传输也经常被称为HTTP流式传输。

    由于顺序流式传输能够较好地保证节目的播放质量,因此比较适合在网站上发布的、可供用户点播的、高质量的视频。

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

    根据以上信息,能够知道“顺序流式传输”主要提现了流媒体技术的基本功能:无需下载完整的媒体文件,即可欣赏媒体内容。

    3.2 实时流式传输

    使用实时流式传输时,必须要保证与流媒体对应的带宽,以使媒体内容可以被用户实时观看到。用户在观看过程中,可以任意观看当前媒体内容之前或后面的内容。但是在这种传输方式中,如果网络状况不理想,会导致收到的图像质量比较差。

    实时流式传输需要特定的服务器(如 Windows Media Server),这些服务器可以对媒体进行更多的控制,所以系统设置、管理比标准HTTP服务器更加复杂。

    实时流式传输还需要特殊的网络协议,如 RTSP(realtime streaming protocol) 或 MMS(microsoft media server)。防火墙有时会对这些协议进行屏蔽,导致用户看不到不实时内容。

    根据以上信息,能够知道“实时流式传输”更强度的是媒体传输的“实时性”,因此目前流行的视频直播行业,应属于“实时流式传输”功能的应用。

    4 流媒体传输的网络协议

    流媒体传输一般采用HTTP/TCP(RTCP)协议来传输控制信息,而用UDP(RTP)协议来传输实时媒体数据(TCP开销相对较大,所以不太适合传输实时数据)。

    4.1 RTP(实时传输协议)

    RTP(实时传输协议)通常用于实时数据的传输工作(一般使用UDP来传送数据)。

    当应用程序开始一个RTP会话时,将开启两个端口:一个给RTP,一个给RTCP。RTP本身并不能为“按顺序传输数据包”提供可靠的传输送制,也不提供流量控制和拥塞控制服务,而是依赖RTCP提供这些服务。通常RTP算法并不作为一个独立的网络层来实现,而是作为应用程序代码的一部分来实现的。

    4.2 RTCP(实时传输控制协议)

    RTCP(实时传输控制协议)在RTP传输实时数据时,提供流量控制和拥塞控制服务。在RTP会话期间各参与者会周期性地传送RTCP包,RTCP包中含有已发送的数据包的数量、丢失的数据包数量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。

    RTP和RTCP配合使用,能通过有效的反馈和最小的开销,使传输效率最佳化,因此特别适合在互联网上传输实时数据。

    4.3 RTSP(实时流协议)

    RTSP(实时流协议)定义了一对多模式下如何有效地通过IP网络传送多媒体数据。

    RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或UDP(RTP)协议完成数据传输,如下图4.3-1(RTSP在网络体系结构中的位置)所示。

    5 流媒体系统组成

    流媒体系统包括以下五个内容:

    1. 编码工具:用于创建、捕捉和编辑多媒体数据,形成流媒体格式;
    2. 流媒体数据;
    3. 服务器:存放和控制流媒体的数据;
    4. 网络:适合多媒体传输协议(甚至是实时传输协议)的网络;
    5. 播放器:客户端通过播放器浏览流媒体文件。

    以上五个部分有些是服务器需要的,有些是客户端需要的,而且不同的流媒体标准和不同公司的解决方案中,会在有些内容上有所不同。

    6 流媒体技术涉及到的关键技术

    流媒体技术不是一个单一的技术,它是网络技术与视音频技术的有机结合。

    实现流媒体技术,需要解决流媒体的制作、发布、传输和播放等方面的问题,这些问题的解决需要利用到视音频技术和网络技术。下面具体讨论一下流媒体的这几个问题。

    6.1 流媒体的制作

    只有适合流媒体传输的流媒体格式文件才能在互联网上传输。因为一般的多媒体格式文件体积很大,因此在网络上传输时需要花费较长的时间,如果遇到网络繁忙等情况,还会造成传输中断。另外,一般格式的媒体文件也不能通过流媒体传输协议进行传输。

    因此,需要先对待传输的文件进行预处理,将文件压缩成流媒体格式文件。此处主要包括两个要点:一是选用适当的压缩算法进行压缩,确保生成的文件体积较小;二是需要向文件中添加流式信息。

    6.2 流媒体的传输

    流媒体的传输需要合适的传输协议,在Internet上进行的文件传输大部分都建立在TCP协议的基础上,也有一些是通过FTP进行传输,但采用这些传输协议都不能满足流媒体的实时传输要求。

    随着流媒体技术的深入研究,比较成熟的流媒体传输一般都是采用建立在UDP协议上的RTP/RTSP等实时传输协议。

    为何要在UDP而不在TCP上进行实时数据的传输呢?因为两者在数据传输的速度和可靠性方面有很大的区别。TCP协议中包含了专门的数据传送校验机制,当数据接收方收到数据后,会自动向发送方发出确认信息,发送方在接收到该确认信息后,才会继续传送数据,否则将一直处于等待状态;而UDP协议则不同,UDP协议本身并不做任何数据传输校验。由此可以看出:TCP协议注重传输质量,而UDP协议则注重传输速度。因此,对于那些对传输质量要求不是很高,而对传输速度有很高要求的流媒体文件来说,采用UDP协议传输更为合适。

    用户通过Web浏览器播放流媒体时,主要的交互过程如下:

    1. 用户选择流媒体服务后,Web浏览器与Web服务器之间使用 HTTP/TCP 交换控制信息,以便把需要传输的实时数据从原始信息中检索出来;
    2. Web浏览器启动A/V Helper程序,使用 HTTP 从Web服务器检索相关参数,然后对Helper程序初始化。这些参数可能包括目录信息、A/V数据的编码类型,或与A/V检索相关的服务器地址;
    3. A/V Helper程序及A/V服务器运行RTSP协议,以交换A/V传输所需的控制信息。与CD播放机或VCRs所提供的功能类似,RTSP提供了控制播放、快进、快倒、暂停及录制等命令的方法;
    4. A/V服务器使用RTP/UDP协议,将A/V数据传输给A/V客户程序(一般可认为客户程序等同于A/V Helper程序);
    5. 当A/V数据抵达客户端时,A/V客户程序即可播放A/V数据了。

    需要说明的是,在流媒体传输过程中,使用RTP/UDP和RTSP/TCP两种不同的通信协议与A/V服务器建立联系,是为了能够把服务器的输出重定向到一个不同于运行A/V Helper程序所在客户端的目的地址。实现流式传输一般都需要专用服务器和播放器。

    6.3 流媒体数据在客户端的缓存

    在流媒体传输和播放过程中,客户端的缓存技术能够确保视音频数据正确、连续地播放。

    6.3.1 纠正数据包顺序的缓存技术

    因为Interent是以包为单位进行异步传输的,因此多媒体数据在传输中要被分解成许多包,由于网络传输的不稳定性,各个包选择的路由可能不同,所以到达客户端的时间次序就可能发生改变,甚至出现丢包的现象。因此,必须采用缓存技术来纠正数据包到达次序混乱的情况,利用缓存技术对到达的数据包进行正确排序,从而使视音频数据能正确地播放。

    从技术角度来讲,纠正数据包顺序的缓存技术,属于流媒体传输过程接收侧的功能,主要目的是保证视音频内容可以正确地播放。

    6.3.2 播放缓冲区

    流媒体技术需要在客户端的计算机上创建一个缓冲区,在播放前预先下载一段多媒体数据作为缓冲,在网络实际传输速度小于媒体播放所需的速度时,播放程序就会取用一小段缓冲区内预先存储的数据,这样就可以避免播放内容的中断,保证了视频播放品质。

    在流媒体传输模式下,缓存中存储的是某一段时间内的数据,数据在缓存中存放的时间是暂时的,缓存中的数据也是动态的、不断更新的,流媒体在播放时不断读取缓存中的数据,播放完成后该数据就会被立即清除,新的数据又将存入到缓存中。因此,在播放流媒体文件时并不需要占用太大的缓存空间。

    从技术角度来讲,播放缓冲区技术,属于客户端播放器的功能,主要目的是(在不太损失实时性的前提下)保证视音频内容可以连续地播放。

    6.4 流媒体的播放

    流媒体只能在支持对应的流媒体格式的播放器(浏览器)中正常播放。

    7 流媒体服务器

    流媒体服务器是流媒体应用的核心系统,主要包括流媒体的编码、转码、分发、存储等功能,是向用户提供视频服务的关键平台。

    从播放模式方面来看,流媒体服务器的主要包括以下两种模式:

    • 以流式协议(RTP/RTSP、MMS、RTMP等)将视频文件传输到客户端,供用户在线观看,即“点播模式”;
    • 从视频采集、压缩软件接收实时视频流,再以流式协议直播给客户端,即“直播模式”。

    流媒体应用的主要性能取决于媒体服务器的性能和服务质量。因此,流媒体服务器既是流媒体应用系统的基础,也是最主要的组成部分。

    8 流媒体与传统媒体

    流媒体与传统媒体相比,区别如下:

    • 欣赏媒体内容的即时性:因为视音频文件(特别是视频文件)容量一般都很大,受到网络带宽的限制,下载一个视音频文件可能需要几分钟甚至几小时,因此导致传输媒体的欣赏时延很大;而通过利用流媒体技术,多媒体文件一边被下载一边被播放,用户可以即时地欣赏到多媒体内容了(即点即看)。此外,目前流行的视频直播相关行业,也是流媒体技术非常重要的应用场景。
    • 对客户端的存储容量要求:传统媒体需要下载完整的媒体文件,而媒体文件的容量一般都很大,所以需要占用客户端较大的存储空间;而通过利用流媒体技术,不需要占用客户端太大的缓存容量,也可以欣赏到媒体内容了。

    9 流媒体技术的应用前景

    互联网的迅猛发展和普及,为流媒体业务的发展提供了强大的市场动力,流媒体行业正在蓬勃发展。流媒体技术(及流媒体直播技术)广泛用于多媒体新闻发布、在线直播、网络广告、电子商务、视频点播、远程教育、远程医疗、网络电台、实时视频会议等互联网信息服务的方方面面。不难看出,在未来,流媒体技术的应用将会为网络信息交流带来革命性的变化,也将对人们的工作和生活产生深远的影响。

     

    展开全文
  • 本文根据这一需求设计了一种嵌入式流媒体播放器,方案基于Intel PXA270 的硬件平台及嵌入式Linux 的软件平台,采用无线上网方式,可支持ASF、RM 格式的流文件解压,能够播放常见的MP1、MP2、MP3、WAV 音频和先进的...
  • 1、流媒体封装格式介绍  一个流媒体文件由音频流和视频流两种数据组成。    h264/mpeg4等就是视频流编码格式,视频流一般以帧的单位存在,i帧、p帧、b帧,帧率(frame rate)是每秒显示帧数(frames per second,...

    1、流媒体封装格式介绍

      一个流媒体文件由音频流和视频流两种数据组成。
      
      h264/mpeg4等就是视频流编码格式,视频流一般以帧的单位存在,i帧、p帧、b帧,帧率(frame rate)是每秒显示帧数(frames per second,简称:fps),如果帧率是25,那么帧与帧的时间撮间隔应该是40ms。
      
      adpcm/g711a/g723 等就是音频流编码格式(pcm是原始音频数据),音频数据就没有帧的概念了,就是一包一包的音频数据。下面计算一下 pcm 音频流的码率,采样率值×采样大小值×声道数 bps。一个采样率为 44.1khz,采样大小为 16bit,双声道的pcm编码的wav文件,它的数据速率则为 44.1k×16×2 = 1411.2 kbps。我们常说 128k 的mp3,对应的 wav 的参数,就是这个 1411.2 kbps,这个参数也被称为数据带宽,它和 adsl 中的带宽是一个概念。将码率除以 8,就可以得到这个 wav 的数据速率,即 176.4kb/s。这表示存储一秒钟采样率为 44.1khz,采样大小为 16bit,双声道的 pcm 编码的音频信号,需要 176.4kb 的空间,1分钟则约为 10.34m,这对大部分用户是不可接受的,尤其是喜欢在电脑上听音乐的朋友,要降低磁盘占用,只有2种方法,降低采样指标或者压缩。降低指标是不可取的,因此就有了各种压缩方案。
      
      流媒体文件就是把音频流和视频流数据打包封装成一定的文件格式。mp4/ts/ps/avi/flv 等是一些常用的封装格式。封装格式(也叫容器):所谓封装格式就是将已经编码压缩好的视频流和音频流按照一定的格式放到一个文件中,就是说仅仅是一个外壳,或者把它当成一个放视频流和音频流的文件夹也可以。说通俗点,视频流媒体相当于饭,而音频流媒体相当于菜,封装格式是选择什么样的容器(碗或锅),用来盛放某种视频流和音频流的组合。

    2、流媒体传输协议介绍

      网络间的数据传输无外乎两种方式 tcp 和 udp,应用场景不同,所选择的传输方式不一样。 而流媒体传输的协议一般有 rtp/rtsp/rtcp(可基于 tcp 或者 udp)、http(一般是 tcp 方式)。流媒体传输会存在两种需求:顺序流式传输(progressive streaming)和实时流式传输(real time streaming)。
      
      顺序流式传输(progressive streaming)的特点:期望音视频数据无错误无丢失顺序的从一端传输到另一端,例如警方对视频监控录像回放取证、网络电影播放等都需要数据正常到达然后解码播放,对于这种情况一般采用可靠的 tcp 方式传输。
      
      实时流式传输(real time streaming)的特点:期望音视频数据实时的的从一段传输到另一端,例如数字电视行业的电视直播,由于 tcp 的包确认机制的开销大,基于窗口的拥塞控制技术不太适应稳定的流媒体传输,tcp 重传机制对实时流没有必要,对于这种情况一般采用 udp 方式传输。解决方案为:http(基于 tcp)做控制信息的传输,rtp(基于udp)做实时数据流的传输;http live streaming (hls) 码流自适应也可作为实时流传输的解决方案。

    展开全文
  • 流媒体报告

    2015-11-26 20:40:15
    【实验目的及要求】 了解流媒体和流媒体技术 了解常见流媒体格式 了解流媒体的传输协议 了解流媒体信息的播放方式 架设视频点播系统 架设实况广播系统
  • 流媒体(streaming media)是指将一连串数据压缩后,经过网络分段发送,即时传输以供观看音视频的一种技术。 通过使用 streaming media 技术,用户无需将文件下载到本地即可播放。由于媒体是以连续的数据流发送的,...
  • H264、Xvid等就是视频编码格式,MP3、AAC等就是音频编码格式。 例如:将一个Xvid视频编码文件和一个MP3视频编码文件按AVI封装标准封装以后,就得到一个AVI后缀的视频文件,这个就是我们常见的AVI视频文件了。 ...
  • 流媒体技术概述

    千次阅读 2019-05-08 11:06:42
    所谓流媒体,是指采用流式传输的方式在Iternet播放的媒体格式流媒体又称流式媒体,是将普通多媒体,如音频、视频、动画等,经过特殊编码,使其成为在网络中使用流式传输的连续时基媒体,以适应在网络上边下载边...
  • 一 直播架构 直播架构例如以某主播在某直播平台直播为例: 1)首先向平台请求直播url。 2)主播得到url。 3)然后主播开始往该url推流,实际最终是推流至流媒体服务器...4 常见流媒体协议 1)RTP实时传输协议(Real
  • 流媒体流媒体传输协议简介

    千次阅读 多人点赞 2019-06-01 22:26:10
    流媒体(streaming media):是指将一连串的媒体数据压缩后,经过网上分段发送数据,在网上即时传输影音以供观赏的一种技术与过程,此技术使得数据包得以像流水一样发送;如果不使用此技术,就必须在使用前下载整个...
  • 所谓流媒体是指采用流式传输的方式在Internet播放的媒体格式。和需要将整个视频文件全部下载之后才能观看的传统方式相比,流媒体技术是通过将视频文件经过特殊的压缩方式分成一个个的小数据包,由视频服务器向用户...
  • 常见的扩展名,认识一些流行媒体文件格式
  • 流媒体、资料整理,比较流媒体各种格式,表格整理后出来的word文档
  • planar常见格式有: YUV420P(I420)、YV12; packed常见格式有: NV12(YUV420SP)、NV21。 2.1 Planar——YUV420P(I420) YUV420P先存储所有Y分量,之后存储所有U分量,最后存储所有V分量: 每个像素点占...
  • 超简单!Android 播放流媒体

    千次阅读 热门讨论 2020-04-17 14:58:01
    我利用了大名鼎鼎的vlc来播放媒体。它可以播放来自网络、摄像头、磁盘、光驱的文件,支持包括MPEG 1/2/4, H264, VC-1, DivX, WMV, Vorbis, AC3, AAC等格式的解码。 但是libvlc对于普通的开发者还是有一些门槛的,...
  • 自适应流媒体传输-fmp4

    千次阅读 2019-06-01 16:22:38
    如果你读过MPEG-DASH(23009 - Dynamic Adaptive Streaming over HTTP)的spec,...大家可能会有疑惑,好好的TS格式已经用了有20年了,这些新时代下的streaming协议干嘛还要搞一个新格式来用呢?本文就来简单介绍一下f...
  • 流媒体直播协议与比较

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

    千次阅读 2020-07-21 14:14:22
    SRS提供了丰富的接入方案将RTMP接入SRS, 包括推送RTMP到SRS、推送RTSP/UDP/FLV到SRS、拉取到SRS。 SRS还支持将接入的RTMP进行各种变换,譬如将RTMP流转码、截图、 转发给其他服务器、转封装成HTTP-FLV、...
  • 音视频流媒体系统简述

    千次阅读 2022-04-19 09:26:23
    音视频流媒体方案。 本文章系列主要包括音视频采集、编解码、传输、渲染几大部分,阐述了一套完整的流媒体方案。
  • 功能:基于Intel PXA270 的硬件平台及嵌入式Linux 的软件平台,采用无线上网方式,可支持ASF、RM 格式文件解压,能够播放常见的MP1、MP2、MP3、WAV 音频和先进的MPEG- 4 视频,并可通过软件升级加入对其它格式的...
  • 网络流媒体(四)———TS流

    万次阅读 多人点赞 2019-08-04 11:54:59
    MPEG-2是MPEG(Moving Picture Experts Group,运动图像专家组)组织制定的视频和音频有损压缩标准之一,它的正式名称为“基于数字存储媒体运动图像和语音的压缩标准”。与MPEG-1标准相比,MPEG-2标准具有更高的...
  • 开源流媒体解决方案,流媒体服务器,推拉流,直播平台,SRS,WebRTC,移动端流媒体,网络会议,优秀博客资源等分享一、优秀的流媒体博客资源1.1 EasyNVR:专注于安防视频互联网化的技术1.2 青柿视频流媒体的博客1.3 ...
  • 大家知道TSINGSEE团队有很多视频流媒体平台和辅助分发的组件,我们研发的EasyNVR、EasyDSS、EasyGBS是流媒体平台,而EasyRTMPLive就是负责拉转推的推流网关,当然还有很多其他的产品,跟大家提起的不多,以后都会...
  • 流媒体基础知识(一)

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

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 52,566
精华内容 21,026
关键字:

属于常见的流媒体格式