基于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。

继续阅读
基于WiFi无线视频传输技术的研究

随着电力系统自动化水平的日益提高,人们对变电站监控系统提出了越来越高的要求。结合变电站现场的实际需求,以及对嵌入式系统Wince和WiFi技术研究的基础上,文章提出了一套无线视频传输系统。包括论述了系

基于Directshow的H.264流媒体播放器设计

0引言   DirectsHow应用框架完成了流媒体处理的底层工作,使得编程者无需关心数据如何输入,以及处理完后如何输出,而只需关心如何对输入数据进行处理。H.264视频编解码标准具有高压缩比和优良

精彩活动