[发明专利]一种WMV文件的解码方法和装置有效
| 申请号: | 201510239125.4 | 申请日: | 2015-05-12 |
| 公开(公告)号: | CN104837073B | 公开(公告)日: | 2018-02-09 |
| 发明(设计)人: | 彭岳松 | 申请(专利权)人: | 无锡天脉聚源传媒科技有限公司 |
| 主分类号: | H04N21/658 | 分类号: | H04N21/658;H04N21/438 |
| 代理公司: | 北京尚伦律师事务所11477 | 代理人: | 张亮 |
| 地址: | 214000 江苏省无锡*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 wmv 文件 解码 方法 装置 | ||
技术领域
本发明涉及音视频解码技术领域,特别涉及一种WMV文件的解码方法和装置。
背景技术
WMV(Windows Media Video)是微软公司开发的一组数字视频编解码格式的通称,它是Windows Media架构下的一部分。WMV可以使用如MPlayer或者Windows Media Player这样的播放器播放,Windows Media Player只能在微软视窗和Macintosh系统上使用,有许多用于如Linux这样不同平台上的使用FFmpeg实现WMV编解码的第三方播放器。
视频流通常与Windows Media Audio音频流组合在一起并且使用扩展名为.wmv或者.asf的Advanced Streaming Format的文件进行封装。WMV通常使用Advanced Streaming Format(ASF)封装,它也可以使用AVI或者Matroska格式封装。如果是AVI封装的文件结果文件可以是.avi,如果是ASF封装的话则是.wmv或者.asf,如果是MKV封装的话则是.mkv。
当使用VirtualDub编码器编码和WMV9VCM编解码实现的时候WMV可以存储在AVI文件中。用于Mac的微软公司媒体播放器不支持所有的WMV编码的文件,因为它只支持ASF文件封装,Flip4Mac和QuickTime或者用于MacOSX的MPlayer可以播放更多的文件。
在现有技术中,由于通常格式的数据包,一个数据包只包括一帧数据,但在对WMV文件进行解码时,数据包无法只解出一个帧,而是一个数据包可能包括多个帧。在WMV文件中,一个数据包可能包含多个视频帧或者音频帧,但是,在采用现有技术中的解码方法得到数据包时,无法得知原WMV文件中数据包中有多少帧,也不知道什么时候解码结束,给实际的解码操作和信息浏览带来了不便。
发明内容
本发明提供一种WMV文件的解码方法和装置,用以解决现有技术中存在的无法获知原WMV文件包含的帧数量及解码进度的问题,实现提高解码效率的目的。
本发明提供一种WMV文件的解码方法,包括:
步骤A:获取待解码的WMV文件的数据包描述信息,根据所述数据包描述信息获取数据包的数据总长度B1;
步骤B:根据所述数据包描述信息中的数据格式,选择与所述数据包中的数据格式对应的解码方式;
步骤C:根据所述对应的解码方式对数据包的一个数据帧进行解码,获取解码后的第一个数据帧,计算所述第一个数据帧在数据包中的长度B2;
步骤D:判断所述数据的总长度B1与所述第一个数据帧在数据包中的长度B2之差是否小于或等于零,如果是,则结束解码;
如果不是,则重复所述步骤C。
本发明实施例的一些有益效果可以包括:
该实施例通过获取数据包的描述信息,进而获取数据包中数据的总长度和数据格式,根据数据格式,可以选择与该数据格式相对应的解码方式对WMV文件进行解码,保证了对WMV文件解码的快速和便捷。当解码出第一个数据帧时,将该数据帧在数据包中的长度与数据总长度进行比较,判断其是否大于或等于数据总长度,如果是,即说明数据包中已经全部解码,可以直接结束解码,节省了工作时间,提高了工作效率;如果该数据帧在数据包中的长度小于数据总长度,说明还有数据包未解码,应当继续对数据包进行解码。该方法对每次解码后的数据帧长度与数据总长度进行比较,可以实现在全部数据数据包解码完成时,及时结束解码。
在一个实施实施例中,在所述步骤C和所述步骤D之间还包括:
步骤E:监测当前数据包的解码速度,判断所述解码速度是否达到预设的解码速度;
步骤F:如果所述解码速度小于预设解码速度,则判断当前待解码数据帧的类型;
步骤G:若所述当前待解码数据帧为非预设类型的数据帧,则丢弃所述当前待解码数据帧。
该实施例对解码过程中的解码速度与预设的解码速度进行比较,如果达到解码速度,则可以正常继续解码;如果未达到预设的解码速度,则说明当前待解码的数据帧可能不是实际需要的WMV文件的数据帧,进而对当前待解码数据帧的类型进行判断是否属于预设类型的数据帧,如果不是,则直接将该数据帧丢弃,防止在解码过程对不必要数据帧进行解码,造成解码时间的浪费,降低解码效率。
在一个实施例中,所述步骤E具体包括:
获取解码状态参数,所述解码状态参数为解码过程中对处理器和内存的资源利用率;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡天脉聚源传媒科技有限公司,未经无锡天脉聚源传媒科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510239125.4/2.html,转载请声明来源钻瓜专利网。





