[发明专利]一种从多媒体中抽取音视频的方法有效
申请号: | 201210110281.7 | 申请日: | 2012-04-16 |
公开(公告)号: | CN102710983A | 公开(公告)日: | 2012-10-03 |
发明(设计)人: | 陈刚 | 申请(专利权)人: | 杭州米加科技有限公司 |
主分类号: | H04N21/434 | 分类号: | H04N21/434;H04N21/4385;H04N21/439 |
代理公司: | 杭州杭诚专利事务所有限公司 33109 | 代理人: | 尉伟敏 |
地址: | 310000 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 多媒体 抽取 视频 方法 | ||
技术领域
本发明涉及音视频处理领域,尤其是涉及一种从多媒体中抽取音视频的方法。
背景技术
多媒体项目中,往往需要采用特定格式的音频、视频数据进行传输,而数据来源不一,有的是各种格式的媒体文件(flv/rmvb/avi/mp4等等),有的是网络的媒体流(mms等),如果针对每种不同具体源,都进行链路处理,则非常繁琐而且不具有通用性。
媒体源主要有文件类型和网络数据流类型两种,我们常见的文件类型有AVI、RMVB、MOV、FLV、MP4等等,每一种文件类型对应着不同的媒体容器,它将各种不同编码的音视频数据进行组织,并按照特定格式封装。常见的网络数据流类型有微软的MMS和RTSP等,它也具有特定的数据格式。
面对各种各样的媒体,要想把它包含的音视频数据抽取出来,最简单的方式就是直接读取。按照不同容器格式,编写对应的程序,将文件读取,并进行二进制的解析,分离等工作,最后将音视频数据输出。
为了简化一些操作,开源界有一些工具包,简化了操作,比如FFMPEG,功能强大,能够对不同格式的文件和媒体流进行转换,它的内部包含了原始格式文件读写的实现,使得开发人员从繁重的工作中摆脱了出来。但是它侧重于文件转换,而且不够智能,需要人工来识别文件类型,并需要指定解码器以及复杂的参数才能进行处理,也就是说,还需要每种媒体类型都使用不同参数。
微软提出了一个DerectShow架构,将每一种媒体(文件和网络流)都抽象成一个数据源过滤器(Filter),将它们之间的共性提取出来,屏蔽掉底层的差异,使用链路的方式构建一个过滤器图表(Filter Graph),当图表建立完成,即可进行播放。无需知道具体是何种格式,也无需指定文件打开的参数,就可以进行自动匹配。微软的媒体播放器就是在这个技术之上实现的成功案例。
建立图表有两种方法,一种是手工建立,需要建立每一级的过滤器,手工连接,这个操作比较复杂,同时不具有通用性,换了一台机器可能就连接失败。另外还有智能连接技术,每一种媒体都能自动匹配到最佳链路,但是不能精确控制连接的过程。
对于播放器的应用来说,智能连接的方法已经足够完善,因为它自动构建了文件读取、分离、解码、播放的全部过滤器。但是对于抽取媒体数据的应用,这个就实现不了,传统的方法是采用手工构建的方式,如暴风影音的媒体链路技术,就是这样一种方式,将每种媒体格式都做一个或者多个最佳链路的配置,好处是能够快速搭建链路、精确控制播放效果。但是太复杂,暴风自己公布的链路就有几百条,普通应用要维护、管理这些链路是困难的事情。
从上面的阐述可以看出,手工处理所有媒体格式的方式最原始,工作量巨大,实在不可取。使用FFMPEG进行转换,参数设置麻烦,每种格式都要不同的参数进行指定,所以在抽取媒体数据的应用场合中,具有较大局限性。使用DirectShow手工构建链路,工作量也较大,同时每种格式都要不同的配置进行构建。使用智能连接的方式,因为强调的是全自动,所以手工控制方面很弱,只能播放文件,不能抽取数据。
发明内容
本发明主要是解决现有技术所存在的手工构建链路抽取音视频数据工作量大、速度慢、通用性差,难以获得需要的数据的技术问题,提供一种可以自动构建链路且具有较好通用性的从多媒体中抽取音视频的方法。
本发明针对上述技术问题主要是通过下述技术方案得以解决的:一种从多媒体中抽取音视频的方法,包括以下步骤:
步骤一、构建完整的媒体渲染链路;
步骤二、通过搜索链路的方式,找到最末端的渲染器,然后找到对应的引脚,调用UnConnent方式,将渲染器手动断开;
步骤三、将自定义的若干个过滤器插入链路的断开处,调用Connent方式将断开的渲染器重新连接;
步骤四、通过插入的过滤器抽取音视频数据;
步骤五、将抽取出来的数据进行分流,变作多路输出,然后针对每一路的数据,采用不同的编码参数进行处理;
步骤六、将处理后的数据交给应用层。
DirectShow是微软的多媒体框架库,提供了众多的函数方法,Windows系统都支持。
过滤器图表Filter Graph是微软DirectShow库中的组件,用于管理过滤器组件,其中包含Render、Run等接口,用于操作过滤器。
过滤器Filter是微软DirectShow库中的组件,将它放于图表管理器中,并连接正确,才能发挥作用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州米加科技有限公司,未经杭州米加科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210110281.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:火焰判断方法、火焰判断系统与火焰判断装置
- 下一篇:信息推送方法及系统