发明内容
本发明的实施例提供一种获取媒体文件总时长的方法和设备,能够令播放设备获取到播放的任一媒体文件的总时长,进而使得该播放设备的跳转功能可以正常使用。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种获取媒体文件总时长的方法,所述方法包括:
在所述媒体文件播放时,获取第一播放时长以及第一文件大小,其中,所述第一文件大小为所述第一播放时长内播放的媒体文件大小;
根据所述第一播放时长和所述第一文件大小,确定所述媒体文件在所述第一播放时长内的平均播放码率;
根据所述平均播放码率,结合预存储的媒体总文件大小,确定所述媒体文件的总时长。
在第一种可能的实现方式中,结合第一方面,所述获取第一播放时长具体包括:
在预设经验值内,判断所述媒体文件的时间戳是否存在跳变;
若所述时间戳不存在跳变,获取所述当前时间戳和播放初始时间戳;
结合所述当前时间戳和所述播放初始时间戳,采用如下第一公式获取所述第一播放时长,其中,所述第一公式为:
第一播放时长=当前时间戳-播放初始时间戳。
在第二种可能的实现方式中,结合第一方面的第一种可能的实现方式,在所述获取第一播放时长之前,还包括:
获取所述媒体文件初始播放时刻的第一***时间;
在所述预设经验值内,判断所述时间戳是否存在跳变之后,还包括:
若所述时间戳存在跳变,获取当前***时间;
结合所述当前***时间和所述第一***时间,采用如下第二公式获取所述第一播放时长,其中,所述第二公式为:
第一播放时长=当前***时间-第一***时间。
在第三种可能的实现方式中,结合第一方面至第一方面的第二种可能的实现方式中的任一项,所述根据所述第一播放时长和所述第一文件大小,确定所述媒体文件的平均播放码率包括:
采用如下第三公式,确定所述媒体文件的平均播放码率,其中,所述第三公式为:
平均播放码率=第一文件大小/第一播放时长。
在第四种可能的实现方式中,结合第一方面的第三种可能的实现方式,所述根据所述播放码率,结合预存储的媒体总文件大小,确定所述媒体文件的总时长具体包括:
采用如下第四公式,确定所述媒体文件的总时长,其中,所述第四公式为:
总时长=媒体总文件大小/平均播放码率。
第二方面,提供一种获取媒体文件总时长的设备,所述设备包括:
获取单元,用于在所述媒体文件播放时,获取第一播放时长以及第一文件大小,其中,所述第一文件大小为所述第一播放时长内播放的媒体文件大小;
码率确定单元,用于根据所述第一播放时长和所述第一文件大小,确定所述媒体文件的在所述第一播放时长内的平均播放码率;
时长确定单元,用于根据所述平均播放码率,结合预存储的媒体总文件大小,确定所述媒体文件的总时长。。
在第一种可能的实现方式中,结合第二方面,所述获取单元中获取第一播放时长具体包括:
在预设经验值内,判断所述媒体文件的时间戳是否存在跳变;
若所述时间戳不存在跳变,获取所述当前时间戳和播放初始时间戳;
结合所述当前时间戳和所述播放初始时间戳,采用如下第一公式获取所述第一播放时长,其中,所述第一公式为:
第一播放时长=当前时间戳-播放初始时间戳。
在第二种可能的实现方式中,结合第二方面的第一种可能的实现方式,所述获取单元在获取第一播放时长之前,还用于:
获取所述媒体文件初始播放时刻的第一***时间;
在所述预设经验值内,判断所述时间戳是否存在跳变之后,还包括:
若所述时间戳存在跳变,获取当前***时间;
结合所述当前***时间和所述第一***时间,采用如下第二公式获取所述第一播放时长,其中,所述第二公式为:
第一播放时长=当前***时间-第一***时间。
在第三种可能的实现方式中,结合第二方面至第二方面的第二种可能的实现方式,所述码率确定单元具体用于:
采用如下第三公式,确定所述媒体文件的平均播放码率,其中,所述第三公式为:
平均播放码率=第一文件大小/第一播放时长。
在第四种可能的实现方式中,结合第二方面的第三种可能的实现方式,所述时长确定单元具体用于:
采用如下第四公式,确定所述媒体文件的总时长,其中,所述第四公式为:
总时长=媒体总文件大小/平均播放码率。
本发明实施例提供的一种获取媒体文件总时长的方法和设备,播放设备在媒体文件播放时,获取第一播放时长、在第一播放时长内播放的媒体文件大小即第一文件大小,接着根据第一播放时长和第一文件大小确定该媒体文件的平均播放码率,接着,根据确定的播放码率结合预存储的媒体总文件大小,确定该媒体文件的总时长。
详细的,在获取第一播放时长的过程中,还需要判断在预设经验值内,是否存在时间戳跳变的过程,若时间戳没有跳变,则获取当前时间戳和播放初始时间戳,进而第一播放时长就等于前者与后者的差值;若在预设经验值内,时间戳发生了跳变,则获取当前***时间以及播放初始时刻的第一***时间,该情况下的第一播放时长就等于前者与后者的差值。
通过上述方法,播放设备在对媒体文件进行播放时,通过获取到的第一播放时长以及在第一时长内播放的文件大小即第一文件大小,确定媒体文件在第一时间内的平均播放码率,根据已经确定的平均播放码率结合预存储的媒体文件总大小,确定媒体文件的总时长;通过此方法可以在媒体文件的播放初始阶段就迅速获取到媒体文件的总时长,进而令播放设备能够中根据获取到的媒体文件总时长进行跳转的功能可以正常使用。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例提供一种获取媒体文件总时长的方法,用于在通过常用方法已经无法获取到媒体文件总时长时,依然能够获取较为准确的媒体文件总时长,其中的常用方法包括:读取媒体文件中文件头内的时长信息、通过媒体文件的最后一个时间戳减去第一个时间戳等;本实施例中提出的方法如图1所示,具体包括:
101、播放设备在所述媒体文件播放时,获取第一播放时长以及第一文件大小。
其中,所述第一文件大小为所述第一播放时长内播放的媒体文件大小。
具体的,如图2所示获取第一播放时长包括:
1011、播放设备确定在预设经验值内,媒体文件的时间戳是否存在跳变。
若媒体文件的时间戳不存在跳变,则执行步骤1012~1013。
1012、播放设备获取当前时间戳和播放初始时间戳。
1013、结合当前时间戳和播放初始时间戳,根据第一公式获取第一播放时长。
具体的,第一公式为:第一播放时长=当前时间戳-播放初始时间戳。
对立的,若媒体文件的时间戳发生了跳变,则执行步骤1014~1015。
1014、播放设备获取媒体文件初始播放时刻的第一***时间和当前***时间。
1015、结合第一***时间和当前***时间,根据第二公式获取第一播放时长。
具体的,第二公式为:第一播放时长=当前***时间-第一***时间。
102、播放设备根据第一播放时长和第一文件大小,确定媒体文件在第一播放时长内的平均播放码率。
播放设备结合第三公式来确定媒体文件的平均播放码率,具体的第三公式为:平均播放码率=第一文件大小/第一播放时长。
这里的码率其实就是比特率(Bit Rate),是在单位时间内传送或处理比特(Bit)的数量。比特率规定使用比特每秒(bit/s或bps)为单位,在实际的使用情况中常用的单位有(kbit/s或kbps)、(Mbit/s或Mbps)等。
在多媒体领域中,比特率常被称为码率,根据上述对比特率的定义可知,码率的计算公式为:
这里当文件大小的单位为常见的MB,之所以文件大小要乘以8,是为了实现文件大小单位从字节Byte到比特bit的转换,文件时间的单位为s时,得到的码率的单位为MB/s。
根据上述公式,针对性的,在本步骤102中,媒体文件的播放码率为第一文件大小除以第一播放时长得到的商,具体的媒体文件的播放码率的计算公式为:
与上述公式不同的是,这里的第一播放时长内已播放的文件大小的单位为Mb,为了公式的简洁,从字节Byte到比特bit的乘以的转换倍数8不在公式中显示。
其中第一文件大小可以将在第一播放时长内每秒播放文件的大小进行累加得到,这里就不再对具体的获取步骤进行描述,
示例性的,若第一播放时长为10s,并且在该10s的第一文件大小为1000Mb,则根据上述公式,容易得到该媒体文件的播放码率为1000Mb/10s=100Mbps,即该媒体文件的播放码率为100Mbps。
103、播放设备根据平均播放码率,结合预存储的媒体总文件大小,确定所述媒体文件的总时长。
播放设备结合第四公式来确定媒体文件的总时长,具体的,第四公式为:总时长=媒体总文件大小/平均播放码率。
简单的说,媒体文件的总时长为媒体文件大小除以媒体文件的播放播放码率得到的商,具体的计算公式为:
根据公式2,结合步骤102中的公式1,则可以得到以下比例式:
对公式3进行简单数学变形后,可以得到关于媒体的时间长度的计算公式:
根据变换后的关系式,分别将媒体总文件大小、第一文件大小和第一播放时长代入,就可以获取媒体文件的总时长。
具体的,以一个视频文件为例进行详细描述。
该视频文件的总大小为10.24GB,第一播放时长为8s,在8s的时间内第一文件大小为300MB,将三个参数直接代入变换后的公式,容易有:
也就是说,该视频文件的时间长度为273.067s,约合4分31秒,因此播放设备就将4分31秒作为该视频文件的总时长进行显示。
在上述媒体文件时间长度计算中,在预设经验值内没有发生时间戳跳变转的情况,若在预设经验值内,发生了时间戳跳变,则计算关系式中的第一播放时长为当前***时间减去第一***时间得到的差值。
这里的时间戳是用于表明视频文件中,视频信息与音频信息的同步的参考值,若在视频中,时间戳是稳定的则该视频的第一播放时长可以直接根据前后时间戳的差值得到,但是在视频中,倘若时间戳是不稳定、无规律变化的,则不能直接根据时间戳得到,需要借用***时间才能获得。
具体的,结合另一个示例进行说明。
当播放设备开始播放视频文件的第1s至第9s,发生了发生时间戳跳变,则该情况下,第一播放时长为发生时间戳在第9s对应的***时刻减去开始播放第1s的对应的***时刻得到的差值,接着获取到在该段时间内,该视频文件已跳转的第一文件大小为50MB,则在该视频文件大小为2.5GB的情况下,根据上一个示例中的公式4,有:
容易得到,发生时间跳转的视频的总时长为320s也就是5分20秒。
104、伴随所述播放的进行,播放设备将所述媒体的时间长度进行更新。
在步骤103完成后,得到的是在播放第一播放时长的视频后,播放设备计算出的媒体文件总时长,为了保证获取到的媒体文件时间长度的准确性,还需要随着播放的进行,通过多次重复运算,不断的获取媒体文件总时长,来保证准确性。并且,随着播放的进行,更新得到的媒体文件总时长会越加准确。
本发明实施例提供一种获取媒体文件总时长的方法,播放设备在对媒体文件进行播放时,通过获取到的第一播放时长以及在第一时长内播放的文件大小即第一文件大小,确定媒体文件在第一时间内的平均播放码率,根据已经确定的平均播放码率结合预存储的媒体文件总大小,确定媒体文件的总时长;通过此方法可以在媒体文件的播放初始阶段就迅速获取到媒体文件的总时长,进而令播放设备能够中根据获取到的媒体文件总时长进行跳转的功能可以正常使用。
实施例二
本发明实施例提供一种获取媒体文件总时长的设备3,用于在通过常用方法已经无法获取到媒体文件总时长时,依然能够获取较为准确的媒体文件总时长,其中的常用方法包括:读取媒体文件中文件头内的时长信息、通过媒体文件的最后一个时间戳减去第一个时间戳等;本实施例中提出的设备如图3所示,具体包括:
获取单元31,用于在所述媒体文件播放时,获取第一播放时长以及第一文件大小,其中,所述第一文件大小为所述第一播放时长内播放的媒体文件大小;
码率确定单元32,用于根据所述第一播放时长和所述第一文件大小,确定所述媒体文件的在所述第一播放时长内的平均播放码率;
时长确定单元33,用于根据所述平均播放码率,结合预存储的媒体总文件大小,确定所述媒体文件的总时长。
进一步的,获取单元31获取第一播放时长具体包括:
确定在预设经验值内,判断所述媒体文件的时间戳是否存在跳变;
若所述时间戳不存在跳变,获取所述当前时间戳和播放初始时间戳;
结合所述当前时间戳和所述播放初始时间戳,采用如下第一公式获取所述第一播放时长,其中,所述第一公式为:
第一播放时长=当前时间戳-播放初始时间戳。
类似的,在获取单元31在获取第一播放时长之前,还用于:
获取所述媒体文件初始播放时刻的第一***时间;
在所述预设经验值内,判断所述时间戳是否存在跳变之后,还包括:
若所述时间戳存在跳变,获取当前***时间;
结合所述当前***时间和所述第一***时间,采用如下第二公式获取所述第一播放时长,其中,所述第二公式为:
第一播放时长=当前***时间-第一***时间。
进一步的,码率确定单元32具体用于:
采用如下第三公式,确定所述媒体文件的平均播放码率,其中,所述第三公式为:
平均播放码率=第一文件大小/第一播放时长。
更进一步的,时长确定单元33具体用于:
采用如下第四公式,确定所述媒体文件的总时长,其中,所述第四公式为:
总时长=媒体总文件大小/平均播放码率。
本发明实施例提供一种获取媒体文件总时长的设备,播放设备将媒体文件进行播放,并在开始播放的第一播放时长以及第一播放时长内播放的媒体文件大小即第一文件大小,进而根据第一播放时长和第一文件大小获得媒体文件的播放码率,最终根据媒体总文件大小和播放码率确定媒体文件的总时长。使得播放设备能够获取媒体文件总时长,并正常显示媒体文件的进度条,从而使得根据进度条进行时间跳转的功能能够正常使用。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法,装置,和***,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。