首页> 中国专利> 在播放多媒体文件时获得当前播放时间的方法和装置

在播放多媒体文件时获得当前播放时间的方法和装置

摘要

本发明公开了一种在播放多媒体文件时获得当前播放时间的方法和装置,本发明包括:播放解析模块,视频处理模块,定时器,当前时间模块;执行如下操作:播放解析模块对要播放的多媒体文件进行解析,获得视频播放的帧率并分离出视频数据,将它们发送给视频处理模块;视频处理模块根据视频播放的帧率计算出定时器时间间隔,设置并启动定时器;视频处理模块在定时器的驱动下每隔一个定时器时间间隔解码一帧视频,并对已经解码的视频帧数进行累计;当前时间模块根据视频处理模块提供的已经解码的视频帧数和帧率计算当前播放时间。本发明在播放多媒体文件时,即使没有音频数据只有视频数据也能够准确获得当前播放时间。

著录项

  • 公开/公告号CN1852425A

    专利类型发明专利

  • 公开/公告日2006-10-25

    原文格式PDF

  • 申请/专利权人 北京中星微电子有限公司;

    申请/专利号CN200610080862.5

  • 发明设计人 唐勉;

    申请日2006-05-19

  • 分类号H04N7/173(20060101);H04N7/24(20060101);

  • 代理机构11010 信息产业部电子专利中心;

  • 代理人梁军

  • 地址 100083 北京市海淀区学院路35号世宁大厦15层

  • 入库时间 2023-12-17 17:51:11

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-07-10

    未缴年费专利权终止 IPC(主分类):H04N7/173 授权公告日:20081015 终止日期:20120519 申请日:20060519

    专利权的终止

  • 2008-10-15

    授权

    授权

  • 2006-12-20

    实质审查的生效

    实质审查的生效

  • 2006-10-25

    公开

    公开

说明书

技术领域

本发明涉及一种视频编码中的图像处理方法和装置,尤其涉及一种在播放多媒体文件时获得当前播放时间的方法和装置。

背景技术

目前,很多的手机平台和PMP平台在播放AVI、WMV、MP4或者3GP等多媒体文件的时候,都需要获得播放多媒体文件的当前播放时间,这样就可以知道播放到的具体时间位置。

通常,在播放多媒体文件时获得当前播放时间的方法都是以音频为基准的,也就是以音频播放的时间为准。多媒体文件在播放的时候会分离出里面的音频、视频数据,分别通过音频模块、视频模块播放出来。以音频为基准获得当前播放时间的方法如图1所示,具体模块的功能如下:

播放解析模块:当接收到播放请求以后,播放解析模块会解析多媒体文件中的音频、视频数据,并将音频、视频数据分离出来,分别送给音频处理模块和视频处理模块。

音频处理模块:音频处理模块接收到音频数据以后,会对音频数据进行解码、音量调节、声音效果处理等操作,然后播放出来。

视频处理模块:视频处理模块接收到视频数据以后,会对视频数据进行解码,然后根据需要可以对视频图像尺寸进行改变、翻转等效果处理,然后将视频显示出来。

当前时间模块:当前时间模块接收到获得当前时间请求以后,会向音频处理模块发出请求,音频处理模块会告诉当前时间模块实际播放的音频数据,然后当前时间模块会根据这个信息计算出当前播放时间。

按照图1,简述该方法的实现步骤:

1.用户发出播放多媒体文件的请求。

2.播放解析模块接收到请求以后,读取多媒体文件,并将其中的音频、视频数据分离出来,分别送给音频处理模块和视频处理模块进行播放。

3.用户发出获得当前时间请求。

4.当前时间模块发出请求给音频处理模块要求获得实际播放的音频数据。

5.音频处理模块将实际播放的音频数据告诉当前时间模块,当前时间模块根据实际已经播放了的音频数据大小计算出当前播放时间。

这种方法存在的不足之处是:对于只有视频没有音频的多媒体文件就无能为力了,无法获得当前播放时间。

还有一种方法就是在播放多媒体文件开始的时候启动一个计时器,当需要获得当前播放时间的时候,就读一下定时器的值。该方法的主要问题是:由于在实际的播放过程中,音频、视频数据的解码以及对播放的声音和图像进行处理都需要占用系统时间,而定时器在开始播放的时候就开始计时,可能导致实际被播放出来的音频和视频数据的具体时间位置与定时器的时间存在偏差,从而使所获得的定时器的值与真正播放的视频的时间位置存在一定的误差,该误差无法进行精确校准。

发明内容

因此本发明所要解决的技术问题是提供一种在播放多媒体文件时,即使没有音频数据只有视频数据也能够准确获得当前播放时间的方法和装置。

本发明具体是这样实现的:

一种在播放多媒体文件时获得当前播放时间的方法,当接收到多媒体文件播放请求时,准备开始播放多媒体文件,该方法还包括如下步骤:播放解析步骤,即对要播放的多媒体文件进行解析,获得视频播放的帧率并分离出视频数据;视频处理步骤,即首先根据帧率计算出定时器时间间隔,设置并启动定时器;然后在定时器的驱动下每隔一个定时器时间间隔解码一帧视频,并对已经解码的视频帧数进行累计;当前时间处理步骤,即接收到获得当前播放时间的请求后,获取已经解码的视频帧数和帧率;然后根据所述视频帧数和帧率计算当前播放时间。

按上述方案,视频处理步骤中计算定时器时间间隔可以按下列公式进行:定时器时间间隔=1000/帧率;其中,定时器时间间隔的计量单位为毫秒/帧,帧率的计量单位为帧/秒。

按上述方案,当前时间处理步骤中计算当前播放时间可以按下列公式进行:当前播放时间=已经解码帧数*定时器时间间隔;其中,当前播放时间的计量单位为毫秒,已经解码帧数的计量单位为帧,定时器时间间隔的计量单位为毫秒/帧。

按上述方案,当前时间处理步骤中计算当前播放时间可以按下列公式进行:

其中,当前播放时间的计量单位为毫秒,已经解码帧数的计量单位为帧,帧率的计量单位为帧/秒,定时器时间间隔的计量单位为毫秒/帧,[]为取整计算,r()为取余计算。

按上述方案,视频处理步骤中每次解码一帧视频后,可以对该视频进行处理并播放,直到解码到最后一帧视频,播放结束。

一种在播放多媒体文件时获得当前播放时间的装置,该装置包括:播放解析模块,视频处理模块,定时器,当前时间模块;该装置执行如下操作:当接收到多媒体文件播放请求时,准备开始播放多媒体文件;播放解析模块对要播放的多媒体文件进行解析,获得视频播放的帧率并分离出视频数据,将它们发送给视频处理模块;视频处理模块根据视频播放的帧率计算出定时器时间间隔,设置并启动定时器;视频处理模块在定时器的驱动下每隔一个定时器时间间隔解码一帧视频,并对已经解码的视频帧数进行累计;当前时间模块接收到获得当前播放时间的请求,通知视频处理模块,视频处理模块就向当前时间模块提供已经解码的视频帧数和帧率;当前时间模块根据视频处理模块提供的视频帧数和帧率计算当前播放时间。

按上述方案,视频处理模块计算定时器时间间隔可以按下列公式进行:定时器时间间隔=1000/帧率;其中,定时器时间间隔的计量单位为毫秒/帧,帧率的计量单位为帧/秒。

按上述方案,当前时间模块计算当前播放时间可以按下列公式进行:当前播放时间=已经解码帧数*定时器时间间隔;其中,当前播放时间的计量单位为毫秒,已经解码帧数的计量单位为帧,定时器时间间隔的计量单位为毫秒/帧。

按上述方案,当前时间模块计算当前播放时间可以按下列公式进行:

其中,当前播放时间的计量单位为毫秒,已经解码帧数的计量单位为帧,帧率的计量单位为帧/秒,定时器时间间隔的计量单位为毫秒/帧,[]为取整计算,r()为取余计算。

按上述方案,视频处理模块每次解码一帧视频后,可以对该视频进行处理并播放,直到解码到最后一帧视频,播放结束。

由于采用了上述处理步骤和装置,本发明与现有技术相比,具有以下优点:

现有技术中,播放多媒体文件时获得当前播放时间的方法是以音频实际播放的数据来计算时间,或者启动计时器来计时。本发明采用的方法和装置是以视频实际播放的帧数和视频的帧率来计算出当前播放时间,有效解决了只有视频没有音频的多媒体文件无法获得当前播放时间的问题;同时,以视频实际播放的帧数作参考,计算出的当前播放时间更加精确;同时,通过获得的当前播放时间,还可以清楚地了解到当前播放的视频帧数。

附图说明

图1是以音频为基准获得当前播放时间的过程示意图;

图2是本发明的装置原理框图;

图3是本发明的方法的基本步骤示意图;

图4是本发明的详细流程图。

具体实施方式

以下结合附图对本发明的具体实施过程作进一步的说明:

本发明的设计构思:在播放多媒体文件的时候,首先要分离出视频数据,视频数据指经过压缩处理的数字视频,视频数据格式主要是Mpeg-4和H.263,也可以是Mpeg-1,Mpeg-2和H.264等数字视频格式。播放视频是通过定时器驱动的,每隔一段时间解码一帧视频,然后显示在显示器上面,因此,时间间隔由视频的帧率来决定。在播放视频文件的过程中,本发明累计解码的帧数,当需要获得当前播放时间的时候,通过当前已经解码了多少帧,然后根据帧率就可以算出准确的当前播放时间。

根据本发明的设计构思,所述的当前播放时间可以采用下列公式计算:

当前播放时间(毫秒)=已经解码帧数(帧)*定时器时间间隔(毫秒/帧)

但是,由于定时器时间间隔(毫秒/帧)=1000/帧率(帧/秒),则当帧率的值不能被1000整除时,定时器时间间隔计算时不得不进行取整运算,这样就会出现由取整后的定时器时间间隔值计算所得的当前播放时间值,与实际的当前播放时间有偏差的现象。因此采用此计算公式适合时间精度要求不高的情况。

在一些要求精度高的情况下,当当前播放时间计算偏差相对比较大,不在可允许的误差范围内时,作为本发明的另一较佳实施方式,可以采用下述计算公式:

其中,当前播放时间的计量单位为毫秒,已经解码帧数的计量单位为帧,帧率的计量单位为帧/秒,定时器时间间隔的计量单位为毫秒/帧,[]为取整计算,r()为取余计算。

采用此公式计算当前播放时间,精度高,其误差在可允许的误差范围内。

本发明的以视频为基准获得当前播放时间的装置框图如图2所示,其中:

播放解析模块:当接收到播放请求以后,播放解析模块会解析多媒体文件中的音频、视频数据,并将音频、视频数据分离出来,分别送给音频处理模块和视频处理模块。

音频处理模块:音频处理模块接收到音频数据以后,会对音频数据进行解码、音量调节、声音效果处理等操作,然后播放出来。

视频处理模块:视频处理模块接收到视频数据以后,会对视频数据进行解码,然后根据需要可以对视频图像尺寸进行改变、翻转等效果处理,然后将视频显示出来。

当前时间模块:当前时间模块接收到获得当前时间请求以后,会向视频处理模块发出请求,视频处理模块会告诉当前时间模块已经播放的视频帧数和帧率,然后当前时间模块会根据已经播放的视频帧数和播放的帧率计算出当前播放时间。

本发明的实现步骤如下(如图3):

步骤1:接收到用户的播放多媒体文件请求,准备播放多媒体文件。

步骤2:播放解析模块开始解析多媒体文件,分离出音频和视频,将音频数据和视频数据分别送给音频处理模块和视频处理模块。

步骤3:音频处理模块和视频处理模块接收到数据,开始播放。

步骤4:接收到用户的获得当前播放时间请求,交给当前时间模块处理。

步骤5:当前时间模块从视频处理模块获得已经播放的视频帧数和帧率,然后计算出当前播放时间。

本发明详细的流程描述如下(如图4):

(1)接收到用户的多媒体文件播放请求,准备开始播放多媒体文件。

(2)播放解析模块对要播放的多媒体文件进行解析,获得视频播放的帧率,分离出音频、视频数据分别发送给音频处理模块和视频处理模块。

(3)视频处理模块根据帧率计算出定时器时间间隔。计算公式如下:

定时器时间间隔=1000/帧率;

其中,定时器时间间隔的计量单位为毫秒/帧,帧率的计量单位为帧/秒。

(4)视频处理模块根据计算结果设置定时器的时间间隔,启动定时器。

(5)视频处理模块中的定时器每隔一个定时器时间间隔驱动视频处理模块解码一帧视频,经过处理后播放出来。

(6)每次解码一帧视频以后,视频处理模块会对解码的视频帧数进行累计。从技术的角度来说,播放一帧视频相当于先解码一帧视频然后显示这帧视频。所以,累计解码的视频帧数就等于累计播放的视频帧数,视频数据经过解码后一定会被显示,先解码然后立刻显示。

(7)判断是否有获得当前播放时间的请求。

(8)如果当前时间模块向视频处理模块发出获得当前播放时间的请求,视频处理模块就向当前时间模块提供已经解码的视频帧数和帧率,当前时间模块根据帧数和帧率计算当前播放时间。计算公式如下:

其中,当前播放时间的计量单位为毫秒,已经解码帧数的计量单位为帧,帧率的

计量单位为帧/秒,定时器时间间隔的计量单位为毫秒/帧,[]为取整计算,r()为取余计算。

(9)判断是否已经解码到最后一帧,如果不是,视频处理模块继续解码下一帧视频。

(10)如果是最后一帧,则播放结束。

以上所述仅为本发明的过程及方法的具体实施例,并不用以限制本发明。因此,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号