CN106060656B - 基于DirectShow生成BHD文件的方法及系统 - Google Patents

基于DirectShow生成BHD文件的方法及系统 Download PDF

Info

Publication number
CN106060656B
CN106060656B CN201610491486.2A CN201610491486A CN106060656B CN 106060656 B CN106060656 B CN 106060656B CN 201610491486 A CN201610491486 A CN 201610491486A CN 106060656 B CN106060656 B CN 106060656B
Authority
CN
China
Prior art keywords
file
bhd
data
link
directshow
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610491486.2A
Other languages
English (en)
Other versions
CN106060656A (zh
Inventor
吴超
朱春明
朱彦东
张鹏宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Storm Group Ltd By Share Ltd
Original Assignee
Storm Group Ltd By Share Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Storm Group Ltd By Share Ltd filed Critical Storm Group Ltd By Share Ltd
Priority to CN201610491486.2A priority Critical patent/CN106060656B/zh
Publication of CN106060656A publication Critical patent/CN106060656A/zh
Application granted granted Critical
Publication of CN106060656B publication Critical patent/CN106060656B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440218Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4

Abstract

本发明公开基于DirectShow生成BHD文件的方法,包括:接收基于DirectShow生成BHD文件的请求,并从中解析出源文件信息,创建源文件滤镜并加载源文件数据;创建BHD文件的转码滤镜,将源文件滤镜的传输功能单元与BHD文件的转码滤镜的传输功能单元对应形成链接;从链接中获取链接用媒体类型参数,并将链接用媒体类型参数转换为BHD格式的解码器信息;通过链接将源文件数据的音视频数据传输至BHD文件的转码滤镜转换为BHD格式的媒体数据;根据BHD格式的解码器信息及源文件信息创建BHD文件;获取BHD格式的媒体数据,写入BHD文件的数据区。通过本发明可基于DirectShow生成BHD文件。

Description

基于DirectShow生成BHD文件的方法及系统
技术领域
本发明涉及视频播放的技术领域,更具体地,涉及一种基于DirectShow生成BHD文件的方法及系统。
背景技术
BHD文件(即BHD格式的文件),是暴风影音播放器独有的一种媒体文件格式,其文件扩展名为.bhd,其是针对视频画质、视频大小、视频帧数、码率、手机省电等进行优化,研发出的一种专供暴风影音播放器播放的数据格式。如图1所示,为BHD文件的基本结构,包括:文件头101和数据区102两部分组成。其中,文件头101包含有文件的基本信息111(如文件播放时长、轨道数量等信息)、轨信息112(每个轨对应一个轨信息,一个文件含有一个或多个轨)、索引信息113等。轨信息112包含该轨的基本信息114(如ID号、视频或音频类型等)、解码器信息115等,而解码器信息115定义了解码器需要的详细信息。索引信息113含有一组或多组文件偏移和播放时间的对应关系。当用户播放时拖动(Seek操作)时,通过索引可快速定位到需要播放的数据。数据区102包括:媒体数据121,在数据区102中各个媒体数据121严格按照时间戳顺序排列。每个媒体数据121中均包含媒体头122和纯数据123部分,而媒体头122包含该媒体数据的时间戳、是否为关键帧等信息,纯数据123为二进制的文件内容数据。
文件格式(媒体文件,又称为容器格式)是指将媒体文件中的独立的视频(或音频)数据在文件中存储的具体方法。通过解析文件格式,可以获得具体的每一帧数据的详细信息(如时间戳)和纯数据(二进制数据)进行播放。现在通用的文件格式有avi、mp4、mkv、flv、rmvb、wmv等。但是在播放现有的文件格式时会存在以下问题:文件头过大,不适合在线播放,播放开始缓冲需要大量的时间,如mp4格式文件,播放1小时文件的文件头大约达到1~2MB;没有统一的解码器描述信息,支持的音频或视频编码格式有限,不便于扩展,如flv格式文件只支持mp3等有限的几种音频格式;不支持可变帧率,如avi格式文件。
基于DirectShow播放上述现有的格式文件时,一旦变化(如增加视频编码格式,mp4增加对H.265支持后会增加“hevc”结构),就需要升级分离器,否则无法识别、播放。DirectShow是微软公司在ActiveMovie和Video for Windows的基础上推出的新一代基于COM(Component Object Model)的流媒体处理的开发包,与DirectX开发包一起发布。DirectShow使用Filter Graph(滤镜图)模型来管理整个数据流的处理过程,DirectShow工作的时候,通过媒体类型MediaType进行Filter(DirectShow的功能模块单元)之间的链接,通过媒体样本MediaSample(基于DirectShow的功能模块单元之间的链接建立的传输通道)进行数据传输。DirectShow运行的方式通常是:开发者创建Filter Graph,可订制地把相应的转换方案加入Filter Graph,如,为mp3文件创建的mp3Filter graph,然后播放文件。运用DirectShow,可以很方便地从支持WDM驱动模型的采集卡上捕获数据,并且进行相应的后期处理乃至存储到文件中。使在多媒体数据库管理系统(MDBMS)中多媒体数据的存取变得更加方便。DirectShow广泛地支持各种媒体格式,包括Asf、Mpeg、Avi、Dv、mp3、Wave等,为多媒体流的捕捉和回放提供了强有力的支持。因此,DirectShow作为一种windows操作系统上广泛采用的音视频播放方案在视频播放领域得到普遍应用。DirectShow定义了一系列的标准接口,可以方便的进行功能扩展,如播放需要的分离器、解码器等。
目前,在DirectShow中可以生成avi等格式的视频文件,但是不能生成BHD格式的文件,当前唯一能够生成BHD格式的文件的方法是通过暴风影音提供的转码工具,而非DirectShow。如此,对于用户来讲,在播放BHD文件的时候还需要单独下载相应的转码工具进行转码后播放,不利于用户的使用体验。再者,现有技术中生成的BHD文件,支持的编码格式也有限(视频只支持H.264,音频只支持aac、mp3),不利于用户在不同播放器中的播放。而且,现有技术中生成BHD文件需要花费大量的时间对音视频数据进行编解码,需要用户等待的时间过长。
因此,提供一种基于DirectShow生成BHD文件的方法是本领域亟待解决的问题。
发明内容
有鉴于此,本发明提供了一种基于DirectShow生成BHD文件的方法及系统,解决了现有技术中不能基于DirectShow生成BHD文件的问题。
为了解决上述技术问题,本发明提出一种基于DirectShow生成BHD文件的方法,包括:
接收基于DirectShow生成BHD文件的请求,并从中解析出源文件信息;其中,所述BHD文件包括有:文件头和数据区,且所述文件头中包括有:BHD格式的解码器信息;
根据所述源文件信息创建源文件滤镜并加载源文件数据;
根据所述源文件滤镜创建BHD文件的转码滤镜,将所述源文件滤镜的传输功能单元与所述BHD文件的转码滤镜的传输功能单元对应形成至少一个的链接;
从链接中获取链接用媒体类型参数,并将所述链接用媒体类型参数转换为BHD格式的解码器信息并保存;
通过所述链接将所述源文件数据的音视频数据传输至所述BHD文件的转码滤镜,并在所述BHD文件的转码滤镜中将所述源文件数据的音视频数据转换为BHD格式的媒体数据保存到临时数据文件中;
通过所述链接传输所述源文件数据的音视频数据完成后,根据所述BHD格式的解码器信息及源文件信息生成所述BHD文件的文件头,并根据所述BHD文件的文件头创建BHD文件;
从所述临时数据文件中获取所述BHD格式的媒体数据,写入所述BHD文件的数据区,并删除所述临时数据文件。
进一步地,其中,通过所述链接将所述源文件数据的音视频数据传输至所述BHD文件的转码滤镜,并在所述BHD文件的转码滤镜中将所述源文件数据的音视频数据转换为BHD格式的媒体数据保存到临时数据文件中,还包括:
记录所述BHD格式的媒体数据的相关信息,其中,所述相关信息包括:时间戳、数据大小及在临时文件中的位置。
进一步地,其中,该方法还包括:根据所述相关信息按照时间戳顺序从临时文件中获取所述BHD格式的媒体数据,写入BHD文件的数据区中。
进一步地,其中,所述从链接中获取链接用媒体类型参数,包括:
所述链接用媒体类型参数为:基于DirectShow的所述传输功能单元间链接操作的专用接口及函数信息。
进一步地,其中,通过所述链接将所述源文件数据的音视频数据传输至所述BHD文件的转码滤镜,并在所述BHD文件的转码滤镜中将所述源文件数据的音视频数据转换为BHD格式的媒体数据保存到临时数据文件中,包括:
所述BHD格式的媒体数据包括有:媒体头,且所述媒体头与所述基于DirectShow中的链接的参数内容相同。
另一方面,本发明还提供一种基于DirectShow生成BHD文件的系统,包括:接收模块、加载模块、链接模块、转换模块及生成模块,其中,
所述接收模块,用于接收基于DirectShow生成BHD文件的请求,并从中解析出源文件信息;其中,所述BHD文件包括有:文件头和数据区,且所述文件头中包括有:BHD格式的解码器信息;
所述加载模块,用于根据所述源文件信息创建源文件滤镜并加载源文件数据;
所述链接模块,用于根据所述源文件滤镜创建BHD文件转码滤镜,将所述源文件滤镜的传输功能单元与所述BHD文件转码滤镜的传输功能单元对应形成至少一个的链接;
所述转换模块,包括:解码器信息转换单元及媒体数据转换单元,其中,
所述解码器信息转换单元,用于从链接中获取链接用媒体类型参数,并将所述链接用媒体类型参数转换为BHD格式的解码器信息并保存;
所述媒体数据转换单元,用于通过所述链接将所述源文件数据的音视频数据传输至所述BHD文件的转码滤镜,并在所述BHD文件的转码滤镜中将所述源文件数据的音视频数据转换为BHD格式的媒体数据保存到临时数据文件中;
所述生成模块,包括:文件头生成单元及写入单元,其中,
所述文件头生成单元,用于通过所述链接传输所述源文件数据的音视频数据完成后,根据所述BHD格式的解码器信息及源文件信息生成所述BHD文件的文件头,并根据所述BHD文件的文件头创建BHD文件;
所述写入单元,用于从所述临时数据文件中获取所述BHD格式的媒体数据,写入所述BHD文件的数据区,并删除所述临时数据文件。
进一步地,其中,所述媒体数据转换单元,还用于:
记录所述BHD格式的媒体数据的相关信息,其中,所述相关信息包括:时间戳、数据大小及在临时文件中的位置。
进一步地,其中,所述写入单元,还用于:
根据所述相关信息按照时间戳顺序从临时文件中获取所述BHD格式的媒体数据,写入BHD文件的数据区中。
进一步地,其中,所述链接用媒体类型参数为:基于DirectShow的所述传输功能单元间链接操作的专用接口及函数信息。
进一步地,其中,所述媒体数据转换单元,还用于:
将基于DirectShow的链接传输至所述BHD文件的转码滤镜中的所述源文件数据的音视频数据转换得到媒体头内容与所述链接的数据传输参数内容相同的BHD格式的媒体数据。
与现有技术相比,本发明的基于DirectShow生成BHD文件的方法及系统,实现了如下的有益效果:
(1)本发明所述的基于DirectShow生成BHD文件的方法及系统,基于DirectShow中的MediaType与BHD文件的解码器信息内容相同、MediaSample与BHD文件的媒体头信息相同,将源文件转换生成BHD格式的文件,解决了现有技术中不能基于DirectShow生成BHD格式的文件的问题。
(2)本发明所述的基于DirectShow生成BHD文件的方法及系统,在转换生成BHD文件的过程中,不需要关注DirectShow中MediaType与MediaSample的具体内容,只需用对照各项存储即可,在基于DirectShow进行BHD文件播放的时候,也只需要将解码器信息和媒体数据转换回MediaType和MediaSample即可保证正常播放,不需要用户再下载专门的BHD文件转换器,提升了用户使用体验。
(3)本发明所述的基于DirectShow生成BHD文件的方法及系统,对源文件格式没有限制,支持各种格式的音视频文件转换生成BHD文件,并且生成得到的BHD文件具有统一的解码器描述信息,支持的音频或视频编码格式广泛,便于扩展。
(4)本发明所述的基于DirectShow生成BHD文件的方法及系统,无需对音视频数据编解码即可生成BHD文件,生成速度快,生成的BHD文件支持可变帧率,还完美支持DirectShow,且文件头小,适合在线播放,开始缓冲不需要大量时间,且在播放过程中,只需要顺序读取文件,不需要在文件中跳动读取数据,极大地降低了与服务器重新连接而产生的消耗。
当然,实施本发明的任一产品必不特定需要同时达到以上所述的所有技术效果。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1为BHD文件的基本结构示意图;
图2为本发明所述的基于DirectShow生成BHD文件的方法的一个可选实施例的流程示意图;
图3为本发明实施例2所述的基于DirectShow生成BHD文件的方法的一个可选实施例的流程示意图;
图4为本发明所述的基于DirectShow生成BHD文件的系统结构示意图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
实施例1
如图2所示,为本发明所述的基于DirectShow生成BHD文件的方法的一个可选实施例的流程示意图。本发明能够基于DirectShow生成BHD文件,支持各种格式的音频或视频编码转换生成BHD文件。本实施例中基于DirectShow生成BHD文件的方法包括以下步骤:
步骤201、接收基于DirectShow生成BHD文件的请求,并从中解析出源文件信息;其中,所述BHD文件包括有:文件头和数据区,且所述文件头中包括有:BHD格式的解码器信息。
步骤202、根据所述源文件信息创建源文件滤镜(Filter)并加载源文件数据,例如,源文件为mkv格式的文件时,就创建mkv分离器作为源文件Filter。
Filter又称为“滤镜”,是DirectShow的独立功能单元,由DirectShow定义了标准接口。而DirectShow是微软公司DirectX的一部分,是一种windows操作系统上广泛采用的音视频播放方案,DirectShow定义了一系列的标准接口,可以方便的进行功能扩展,如播放需要的分离器、解码器等。
步骤203、根据所述源文件滤镜创建BHD文件转码滤镜(即BHD Muxer Filter),设置输出文件路径,将所述源文件滤镜的传输功能单元(Pin)与所述BHD文件转码滤镜的传输功能单元(Pin)对应形成至少一个的链接。
其中,Pin是DirectShow中Filter的传输功能单元,每个Filter含有一个或多个Pin。Filter之间通过Pin进行链接,并传输数据。Pin在链接时,需要确定待传输数据的类型及参数。
步骤204、从链接中获取链接用媒体类型参数,并将所述链接用媒体类型参数转换为BHD格式的解码器信息并保存。
步骤205、通过所述链接将所述源文件数据的音视频数据传输至所述BHD文件的转码滤镜,并在所述BHD文件的转码滤镜中将所述源文件数据的音视频数据转换为BHD格式的媒体数据保存到临时数据文件中。
步骤206、通过所述链接传输所述源文件数据的音视频数据完成后,根据所述BHD格式的解码器信息及源文件信息生成所述BHD文件的文件头,并根据所述BHD文件的文件头创建BHD文件。
步骤207、从所述临时数据文件中获取所述BHD格式的媒体数据,写入所述BHD文件的数据区,并删除所述临时数据文件。
本实施例所述的基于DirectShow生成BHD文件的方法,在转换生成BHD文件的过程中,不需要关注具体内容,只需用对照DirectShow中MediaType与MediaSample的各项存储即可,在基于DirectShow进行BHD文件播放的时候,也只需要将解码器信息和媒体数据转换回MediaType和MediaSample即可保证正常播放,不需要用户再下载专门的BHD文件转换器,提升了用户使用体验。
实施例2
如图3所示,为本发明实施例2所述的基于DirectShow生成BHD文件的方法的一个可选实施例的流程示意图。本实施例在实施例1的基础上,描述了基于DirectShow生成BHD文件的文件头及数据区的具体内容。本实施例所述的基于DirectShow生成BHD文件的方法的步骤如下:
步骤301、接收基于DirectShow生成BHD文件的请求,并从中解析出源文件信息。
步骤302、根据所述源文件信息创建源文件滤镜并加载源文件数据。
步骤303、根据所述源文件滤镜创建BHD文件转码滤镜,将所述源文件滤镜的传输功能单元与所述BHD文件转码滤镜的传输功能单元对应形成至少一个的链接。
步骤304、从链接中获取链接用媒体类型参数,转换为BHD格式的解码器信息并保存。优选地,获取的基于DirectShow的所述链接用参数为:所述传输功能单元间链接操作的专用接口及函数:IPin::ConnectionMediaType。
步骤305、通过所述链接将所述源文件数据的音视频数据传输至所述BHD文件的转码滤镜,并在所述BHD文件的转码滤镜中将所述源文件数据的音视频数据转换为BHD格式的媒体数据保存到临时数据文件中。
优选地,所述BHD格式的媒体数据中的媒体头信息与所述基于DirectShow中的链接传输参数MediaSample内容相同。
步骤306、记录所述BHD格式的媒体数据的相关信息,其中,所述相关信息包括:如时间戳、数据大小及在临时文件中的位置。
步骤307、通过所述链接传输所述源文件数据的音视频数据完成后,根据所述BHD格式的解码器信息及源文件信息生成所述BHD文件的文件头,并根据所述BHD文件的文件头创建BHD文件。
步骤308、根据所述相关信息按照时间戳顺序从临时文件中获取所述BHD格式的媒体数据,写入BHD文件的数据区中,并删除所述临时数据文件。
通过本实施例的方法生成的BHD文件格式。解码器部分的数据结构,与DirectShow中的MediaType结构一致,媒体数据中的信息与DirectShow中的MediaSample内容一致。只需用对照各项存储即可,在基于DirectShow进行BHD文件播放的时候,也只需要将解码器信息和媒体数据转换回MediaType和MediaSample即可保证正常播放,不需要用户再下载专门的BHD文件转换器,提升了用户使用体验。
实施例3
如图4所示,为本发明所述的基于DirectShow生成BHD文件的系统结构示意图。本实施例的基于DirectShow生成BHD文件的系统用于实现上述实施例中的基于DirectShow生成BHD文件的方法,该系统包括:接收模块401、加载模块402、链接模块403、转换模块404及生成模块405。
其中,所述接收模块401与所述加载模块402相藕接,用于接收基于DirectShow生成BHD文件的请求,并从中解析出源文件信息;其中,所述BHD文件包括有:文件头和数据区,且所述文件头中包括有:BHD格式的解码器信息;
所述加载模块402与所述接收模块401及链接模块403相藕接,用于根据所述源文件信息创建源文件滤镜并加载源文件;
所述链接模块403与所述加载模块402及转换模块404相藕接,用于根据所述源文件滤镜创建BHD文件转码滤镜,将所述源文件滤镜的传输功能单元与所述BHD文件转码滤镜的传输功能单元对应形成至少一个的链接;
所述转换模块404与所述链接模块403及生成模块405相藕接,所述转换模块404包括:解码器信息转换单元441及媒体数据转换单元442,其中,
所述解码器信息转换单元441用于从链接中获取链接用媒体类型参数,并将所述链接用媒体类型参数转换为BHD格式的解码器信息并保存;
所述媒体数据转换单元442用于通过所述链接将所述源文件数据的音视频数据传输至所述BHD文件的转码滤镜,并在所述BHD文件的转码滤镜中将所述源文件数据的音视频数据转换为BHD格式的媒体数据保存到临时数据文件中;
所述生成模块405与所述转换模块404相藕接,所述生成模块405包括:文件头生成单元451及写入单元452,其中,
所述文件头生成单元451用于通过所述链接传输所述源文件数据的音视频数据完成后,根据所述BHD格式的解码器信息及源文件信息生成所述BHD文件的文件头,并根据所述BHD文件的文件头创建BHD文件;
所述写入单元452用于从所述临时数据文件中获取所述BHD格式的媒体数据,写入所述BHD文件的数据区,并删除所述临时数据文件。
进一步地,所述媒体数据转换单元442还用于记录所述BHD格式的媒体数据的相关信息,其中,所述相关信息包括:如时间戳、数据大小及在临时文件中的位置。
所述写入单元452还用于:根据所述相关信息按照时间戳顺序从临时文件中获取所述BHD格式的媒体数据,写入BHD文件的数据区中。
所述解码器信息转换单元441还用于:获取基于DirectShow的所述链接用参数为所述传输功能单元间链接传输数据的专用接口及函数信息。
所述媒体数据转换单元442还用于将基于DirectShow的链接传输至所述BHD文件的转码滤镜中的所述源文件数据的音视频数据转换得到媒体头内容与所述链接的数据传输参数内容相同的BHD格式的媒体数据。
通过以上各个实施例可知,本发明的基于DirectShow生成BHD文件的方法及系统存在的有益效果是:
(1)本发明所述的基于DirectShow生成BHD文件的方法及系统,基于DirectShow中的MediaType与BHD文件的解码器信息内容相同、MediaSample与BHD文件的媒体头信息相同,将源文件转换生成BHD格式的文件,解决了现有技术中不能基于DirectShow生成BHD格式的文件的问题。
(2)本发明所述的基于DirectShow生成BHD文件的方法及系统,在转换生成BHD文件的过程中,不需要关注DirectShow中MediaType与MediaSample的具体内容,只需用对照各项存储即可,在基于DirectShow进行BHD文件播放的时候,也只需要将解码器信息和媒体数据转换回MediaType和MediaSample即可保证正常播放,不需要用户再下载专门的BHD文件转换器,提升了用户使用体验。
(3)本发明所述的基于DirectShow生成BHD文件的方法及系统,对对源文件格式没有限制,支持各种格式的音视频文件转换生成BHD文件,并且生成得到的BHD文件具有统一的解码器描述信息,支持的音频或视频编码格式广泛,便于扩展。
(4)本发明所述的基于DirectShow生成BHD文件的方法及系统,无需对音视频数据编解码即可生成BHD文件,生成速度快,生成的BHD文件支持可变帧率,还完美支持DirectShow,且文件头小,适合在线播放,开始缓冲不需要大量时间,且在播放过程中,只需要顺序读取文件,不需要在文件中跳动读取数据,极大地降低了与服务器重新连接而产生的消耗。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
虽然已经通过例子对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上例子仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发明的范围由所附权利要求来限定。

Claims (6)

1.一种基于DirectShow生成BHD文件的方法,其特征在于,包括:
接收基于DirectShow生成BHD文件的请求,并从中解析出源文件信息;其中,所述BHD文件包括有:文件头和数据区,且所述文件头中包括有:BHD格式的解码器信息;
根据所述源文件信息创建源文件滤镜并加载源文件数据;
根据所述源文件滤镜创建BHD文件的转码滤镜,将所述源文件滤镜的传输功能单元与所述BHD文件的转码滤镜的传输功能单元对应形成至少一个的链接;
从链接中获取链接用媒体类型参数,并将所述链接用媒体类型参数转换为BHD格式的解码器信息并保存;
通过所述链接将所述源文件数据的音视频数据传输至所述BHD文件的转码滤镜,并在所述BHD文件的转码滤镜中将所述源文件数据的音视频数据转换为BHD格式的媒体数据保存到临时数据文件中;
记录所述BHD格式的媒体数据的相关信息,其中,所述相关信息包括:时间戳、数据大小及在临时文件中的位置;
通过所述链接传输所述源文件数据的音视频数据完成后,根据所述BHD格式的解码器信息及源文件信息生成所述BHD文件的文件头,并根据所述BHD文件的文件头创建BHD文件;根据所述相关信息按照时间戳顺序从所述临时数据文件中获取所述BHD格式的媒体数据,写入所述BHD文件的数据区,并删除所述临时数据文件。
2.根据权利要求1所述的基于DirectShow生成BHD文件的方法,其特征在于,所述从链接中获取链接用媒体类型参数,包括:
所述链接用媒体类型参数为:基于DirectShow的所述传输功能单元间链接操作的专用接口及函数信息。
3.根据权利要求1所述的基于DirectShow生成BHD文件的方法,其特征在于,通过所述链接将所述源文件数据的音视频数据传输至所述BHD文件的转码滤镜,并在所述BHD文件的转码滤镜中将所述源文件数据的音视频数据转换为BHD格式的媒体数据保存到临时数据文件中,包括:
所述BHD格式的媒体数据包括有:媒体头,且所述媒体头与所述基于DirectShow中的链接的参数内容相同。
4.一种基于DirectShow生成BHD文件的系统,其特征在于,包括:接收模块、加载模块、链接模块、转换模块及生成模块,其中,
所述接收模块,用于接收基于DirectShow生成BHD文件的请求,并从中解析出源文件信息;其中,所述BHD文件包括有:文件头和数据区,且所述文件头中包括有:BHD格式的解码器信息;
所述加载模块,用于根据所述源文件信息创建源文件滤镜并加载源文件数据;
所述链接模块,用于根据所述源文件滤镜创建BHD文件转码滤镜,将所述源文件滤镜的传输功能单元与所述BHD文件转码滤镜的传输功能单元对应形成至少一个的链接;
所述转换模块,包括:解码器信息转换单元及媒体数据转换单元,其中,
所述解码器信息转换单元,用于从链接中获取链接用媒体类型参数,并将所述链接用媒体类型参数转换为BHD格式的解码器信息并保存;
所述媒体数据转换单元,用于通过所述链接将所述源文件数据的音视频数据传输至所述BHD文件的转码滤镜,并在所述BHD文件的转码滤镜中将所述源文件数据的音视频数据转换为BHD格式的媒体数据保存到临时数据文件中,并记录所述BHD格式的媒体数据的相关信息,其中,
所述相关信息包括:时间戳、数据大小及在临时文件中的位置;
所述生成模块,包括:文件头生成单元及写入单元,其中,
所述文件头生成单元,用于通过所述链接传输所述源文件数据的音视频数据完成后,根据所述BHD格式的解码器信息及源文件信息生成所述BHD文件的文件头,并根据所述BHD文件的文件头创建BHD文件;
所述写入单元,用于根据所述相关信息按照时间戳顺序从所述临时数据文件中获取所述BHD格式的媒体数据,写入所述BHD文件的数据区,并删除所述临时数据文件。
5.根据权利要求4所述的基于DirectShow生成BHD文件的系统,其特征在于,所述链接用媒体类型参数为:基于DirectShow的所述传输功能单元间链接传输数据的专用接口及函数信息。
6.根据权利要求4所述的基于DirectShow生成BHD文件的系统,其特征在于,所述媒体数据转换单元,还用于:
将基于DirectShow的链接传输至所述BHD文件的转码滤镜中的所述源文件数据的音视频数据转换得到媒体头内容与所述链接的数据传输参数内容相同的BHD格式的媒体数据。
CN201610491486.2A 2016-06-28 2016-06-28 基于DirectShow生成BHD文件的方法及系统 Active CN106060656B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610491486.2A CN106060656B (zh) 2016-06-28 2016-06-28 基于DirectShow生成BHD文件的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610491486.2A CN106060656B (zh) 2016-06-28 2016-06-28 基于DirectShow生成BHD文件的方法及系统

Publications (2)

Publication Number Publication Date
CN106060656A CN106060656A (zh) 2016-10-26
CN106060656B true CN106060656B (zh) 2019-04-26

Family

ID=57166985

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610491486.2A Active CN106060656B (zh) 2016-06-28 2016-06-28 基于DirectShow生成BHD文件的方法及系统

Country Status (1)

Country Link
CN (1) CN106060656B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107820124A (zh) * 2017-11-10 2018-03-20 暴风集团股份有限公司 格式转换方法、装置及服务器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101017483A (zh) * 2006-02-10 2007-08-15 联想(北京)有限公司 媒体转换装置和方法
CN102122300A (zh) * 2011-03-08 2011-07-13 天脉聚源(北京)传媒科技有限公司 一种视频格式转换的方法
CN102256162A (zh) * 2011-07-22 2011-11-23 网宿科技股份有限公司 基于实时文件格式转换的优化流媒体点播的方法和系统
CN102457776A (zh) * 2010-10-26 2012-05-16 李硕 基于DirectShow的流媒体文件格式转换器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101017483A (zh) * 2006-02-10 2007-08-15 联想(北京)有限公司 媒体转换装置和方法
CN102457776A (zh) * 2010-10-26 2012-05-16 李硕 基于DirectShow的流媒体文件格式转换器
CN102122300A (zh) * 2011-03-08 2011-07-13 天脉聚源(北京)传媒科技有限公司 一种视频格式转换的方法
CN102256162A (zh) * 2011-07-22 2011-11-23 网宿科技股份有限公司 基于实时文件格式转换的优化流媒体点播的方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于DirectShow的多媒体码流转换系统软件的实现;陈俊江;《中国电子学会第十届青年学术年会论文集 信息和电子技术理论与应用》;20040927;全文

Also Published As

Publication number Publication date
CN106060656A (zh) 2016-10-26

Similar Documents

Publication Publication Date Title
CN101689170B (zh) 用于数字媒体处理的接口
CN102089823B (zh) 多媒体演示系统及方法
KR100923993B1 (ko) 부호화/복호화 방법 및 장치.
RU2011120258A (ru) Способ и устройство для перемежения блока данных
CN106254867A (zh) 基于画面组对视频文件进行转码的方法及系统
US20070001877A1 (en) Information processing apparatus and decoding control method
CN104572686A (zh) Ppt文件的处理方法和装置
CN104902145B (zh) 一种直播流视频的播放方法及装置
CN104837033B (zh) 一种信息处理方法及服务器
CN102510519A (zh) 流媒体数据的处理方法、播放方法以及装置
CN1798309A (zh) 内容再生系统、再生装置、再生方法以及分发服务器
CN106060628A (zh) 基于DirectShow支持可变编码的方法及系统
CN106060656B (zh) 基于DirectShow生成BHD文件的方法及系统
CN101802803B (zh) 用于产生和再现基于媒体对象的元数据的方法和装置
CN101164112A (zh) 格式转换装置、格式转换方法和动图像解码系统
CN102682016B (zh) 一种支持mov/3gp/mp4文件的索引系统及方法
CN102473088B (zh) 再现媒体内容的方法
CN1913627B (zh) 解码装置
CN101803378B (zh) 用于访问媒体文件格式的元数据的方法
CN101146230B (zh) 动图像编码和/或译码设备、方法
CN102955809A (zh) 媒体文件编辑和播放的方法和系统
CN104683882B (zh) 一种流媒体倍速文件的生成及播放方法、装置
CN102157175B (zh) 一种音视频数据的数字化转储方法及系统
CN102231847B (zh) 一种支持流媒体文件直接帧精确定位方法
US20230377606A1 (en) Video editing projects using single bundled video files

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PP01 Preservation of patent right

Effective date of registration: 20190705

Granted publication date: 20190426

PP01 Preservation of patent right