当前位置:首页 > 消费电子 > 音响技术
[导读]  0引言   DirectsHow应用框架完成了流媒体处理的底层工作,使得编程者无需关心数据如何输入,以及处理完后如何输出,而只需关心如何对输入数据进行处理。H.264视频编解码标准具有高压缩比和

  0引言

  DirectsHow应用框架完成了流媒体处理的底层工作,使得编程者无需关心数据如何输入,以及处理完后如何输出,而只需关心如何对输入数据进行处理。H.264视频编解码标准具有高压缩比和优良的网络亲和性,被普遍认为是最有影响力的流媒体视频压缩标准。将Direct-show和H.264两种相结合的流媒体播放器无疑将具有非常优秀的性能。

  1Directshow技术和H.264视频压缩标准简介

  Directshow是微软公司提供的一套流媒体开发软件包,为在windows平台上处理各种格式的媒体文件的回放、音视频采集的高性能要求的多媒体应用,提供了完整的解决方案。

  Directshow是一套完全基于COM的应用系统,该系统位于应用层中,它使用FilterGraph的模型来管理整个数据流的处理过程;参与数据处理的各个功能模块叫Filter;各个Filter在FilterGraph中按照一定的顺序连接成一条“流水线”协同工作。Filter是一个COM组件,其功能可以由用户自行实现,DirectShowSDK也为用户提供了一些标准的Filter供用户使用。各个Filter在FilterGraph中按一定顺序通过Pin互相连接起来,Pin也是一个COM对象。

  H.264是由ITU-T和ISO/IEC的联合开发组共同开发的最新国际视频编码标准。H.264/AVC视频编码标准在编码质量和压缩比上比原有的视频编码标准都有了明显的提高。在相同的视觉感知质量上,编码效率比H.263,MPEG-2和MPEG-4提高了50%左右。H.264不仅具有优异的压缩性能,而且具有良好的网络亲和性。因此,H.264被普遍认为是最有影响力的流媒体视频压缩标准。

  2系统设计框架

  本系统基于Direotshow应用框架和H.264视频压缩标准,实现了从网络接收流媒体数据,并在客户端实时播放的功能。流媒体文件是采用H.264编码的AVI文件,由于directshow提供了AVISplitteRFilter、AudioDecoder和标准的Video/AudioRenderer,因此,本系统只需设计自定义的网络源Filter、H.264解码Filter。

  多媒体流式传输实际上牵涉到两个方面的技术。其一就是服务器与客户端的通信技术,包括多媒体数据的传输、命令控制等;其二就是客户端对接收到的多媒体流实时解码后播放的技术。显然,网络通信可以使用windowssocket技术,多媒体流的解码播放可以使用direct-show技术。本文采用direetshow应用框架,设计了网络源filter和h.264解码filter,并通过FilterGraph构建了流媒体播放器。

  播放本地基于H.264编码的AVI文件的FilterGraph如图1。只需将本地FileSourceFilter替换为网络源Filter,将CoreAVCVideoDe-coder替换为h.264解码Filter,即可实现网络H.264视频播放器。

  

 

  3系统的设计与实现

  3.1Filter设计流程

  Filter的编码实现包括Filter的注册信息、Filter上的框架函数实现、逻辑控制类实现、自定义接口实现、属性页实现、产权保护等。

  首先,要对Filter所要完成的功能和它在FilterGraph中的位置进行分析,以确定filter模型,选择一个合适的基类;然后,再定义输入输出PIN以及自定义接口,注册Filter信息;最后实现基类的全部纯虚函数和自定义接口函数,并重写基类的相关函数以定制filter功能。

  3.2网络源Filter的设计

  源Filter主要功能是接收服务器发来的流媒体数据,并提供给FilterGraph中其它Filter使用。

  由于directshow自带的AVIsplitter工作于拉模式,故该源Filter也工作于拉模式。

  本源Filter采用双缓冲循环队列技术来实现数据的接收和向下一级Filter传递数据。采用该技术有如下理由:

  (1)在SourceFilter与SpliRer连接的过程中,会从SourceFilter中读取一部分数据,以获得数据的格式描述,否则FilterGraph无法完成连接。源Filter与SplitterFilter进行连接前,应启动一个等待线程,当SourceFilter的数据缓存预先接收到足够的数据后,再构建完整的FilterGraph。

  (2)当完整的FilterGrapH构建完成,并且处于运行状态后,SourceFilter必须动态地接收数据,并持续地把新数据提供给SplitteRFilter,双缓冲循环队列既充分利用内存空间,又能为SplitterFilter提供稳定的数据源。

  (3)缓冲队列可以稳定码率,有效减小网络延时、阻塞和抖动的影响。

  源Filter的工作过程如下:建立一个循环缓冲队列,队列尾指针用于缓冲从网络接收的数据,队列头指针供Splitter读取数据,进行音视频分离,并传给下一级Decoder处理;当Socket接收到网络数据后,将数据插入队列尾部,并使尾指针后移;当Splitter需要读取数据时,从队列头读取数据,并使头指针后移。

  流媒体传输采用客户端/服务器的架构,服务器与客户端之间还有一个Socket通信协议问题,由于流媒体是连续的,它的同步点不能随意选择,因此,为了传送流媒体数据,必须使用面向连接的可靠的传输协议(TCP)。客户端与服务器端的控制与反馈消息,则可以使用(UDP)来传输。服务器端首先创建一个侦听Socket,侦听来自客户端的连接请求。一旦侦听到客户端的请求,服务器端就创建一个用于数据传送的Socket,并绑定到请求连接的客户端,此时,服务器处于数据传送的就绪状态。当客户端发出命令,服务器再根据命令的类型执行相应的操作,如数据发送、停止、断开连接等。

  在服务器端首先将连续的H.264流分成一块一块小包的负载数据,并且加上一个信息头一起使用TCP协议发送;在客户端根据信息头描述,将小包的负载数据进行拼装,然后进行H.264的解码播放。Socket数据传送结构为:负载类型(8bit)、负载数据长度(16bit)和负载数据包(2324Byte)。

  客户端的实现可以参考SDK中的MEMFileFilter,直接从SDK例子将asyncrdr.cpp、asyncrdr.h、asyncio.cpp、asyneio.h四个文件拷贝过来,然后在MemFilter.h文件中从CAsyncStream派生流处理类CMemStream,定制数据源并进行数据的读取操作;从CAsyncReader派生滤波器类CMemReader,实现含1个输出PIN的SourceFilter框架,完成与SplitterFilter的连接。

  网络源滤波器类间数据流程如图2,下一级Filter“拉”线程数据流程如图3。其中:CAsyneStream用以标示数据流;CAsyneRequest标示输入与输出请求;CAsyncIo实现数据输入和输出的控制。编程主要实现CMemStream:Read()函数以实现从特定的数据源读取数据到下一级Filter的Sample中。

  

 

  

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭