一种媒体录制方法及装置的制作方法

文档序号:6783476阅读:154来源:国知局
专利名称:一种媒体录制方法及装置的制作方法
技术领域
本发明涉及多媒体技术领域,特别是涉及一种媒体录制方法及装置。
背景技术
近些年来,各种具有录音、录像等功能的终端被越来越广泛地使用,用 户对于终端存储空间的需求也越来越大。
图1所示为现有的媒体文件的存储格式示意图,^某体文件一般由文件头、 媒体数据和媒体索引三部分组成。在文件头中记录着该媒体文件的一些基本
信息,例如标题、制作者、编码格式、编码速率等;经过编码J 某体数据,每 隔一段时间会以数据块(Chunk)的形式写入文件中,其中,每个数据块代表 固定单位时间(通常是ls)媒体数据。当媒体数据写入完毕后,编码程序会 根据数据块的写入情况,生成媒体索引(MediaIndex),并将媒体索引信息写 入文件尾部。在媒体索引中,记录着每个媒体数据块的存储位置、数据块大 小等信息,是保证媒体文件能够正常播放的重要部分。
由于媒体索引信息是在媒体数据写入完成之后,再一次性生成并保存的, 为了保证媒体索引信息能够在有限的存储空间中正确保存,终端在录制媒体 之前,会根据当前的可用存储空间对允许录制的时间进行预估,具体方法为 获取终端当前可用的存储空间大小S (单位bytes、或Kb、 Mb等);将媒体编 码速率(单位bits/s)换算为单位时间的i某体数据所需占用的存储空间V (单 位bytes/s );通过计算S/V即可得到允许录制媒体的最大时间T。在录制媒体 的过程中,如果当前持续录制时间达到略小于T的某个门限值,终端会自动 停止录制操作,然后生成媒体索引并写入所录制的媒体文件的尾部。
在实现本发明的过程中,发明人发现现有技术中至少存在如下问题 对于支持多任务的终端系统,在进行媒体录制的同时,可能会进行如数 据下载等其他类型的数据写入任务,这样存储空间的变化速率就会超出预期, 如果在录制时间还没有达到预估的阈值时,存储空间就已经被写满,那么将会出现媒体索引信息写入失败的情况,进而导致之前所写入的媒体数据都无 法正常播放,造成很差的用户体验。

发明内容
有鉴于此,本发明实施例提供了一种J 某体录制方法及装置,以解决在媒 体录制过程中,因存储空间变化超出预期而导致的媒体索引信息写入失败的 问题。
本发明实施例的"l支术方案如下
一种媒体录制方法,包括在媒体录制过程中,周期性地根据当前已写 入的々某体数据块生成媒体索引信息,保存所生成的J 某体索引信息。 一种媒体录制装置,包括
索引信息生成单元,用于在媒体录制过程中,周期性地根据当前已写入 的媒体数据块生成媒体索引信息;
索引信息保存单元,用于保存所述索引信息即时生成单元生成的媒体索 引4言息。
以上技术方案,在媒体录制过程中,周期性地生成媒体索引信息并对其 进行保存。如果终端在录制媒体的同时还执行了其他写入任务,那么即使存 储空间变化超出预期导致录制异常终止,在录制终止之前所保存的^ 某体数据 也能够正常播放,保证了媒体录制任务的健壮性。


图1为现有的媒体文件的存储格式示意图2为实现本发明实施例i某体录制方法的流程图3为本发明实施例所提供的i某体文件存储格式;
图4为实现本发明实施例计算预留空间大小的方法流程图5为本发明实施例媒体录制装置的第一种结构示意图6为本发明实施例i某体录制装置的第二种结构示意图7为本发明实施例i某体录制装置的第三种结构示意图8为本发明实施例媒体录制装置的第四种结构示意图。
具体实施例方式
本发明实施例所提供的媒体录制方法为在媒体录制过程中,周期性地 根据当前已写入的媒体数据块生成媒体索引信息,保存所生成的媒体索引信 息。由于索引信息不是在录制结束后一次性生成并保存,因此,当存储空间 不足导致录制异常终止时,也能够保证录制终止之前所保存的媒体数据可以 正常播放。
下面将结合附图,对本发明的具体实施方案进行详细说明。 图2所示为本发明实施例的媒体录制方法流程图,具体描述如下 SlOl,根据当前已写入的媒体数据块生成媒体索引信息。 S102,保存所生成的媒体索引信息。
媒体录制开始后,经过tl时长,终端会顺序执行步骤S101和S102,在 执行完S102之后,每经过tl时长,会再次执行SIOI,这样往复循环,相当 于终端根据当前已经写入存储空间的媒体数据的变化,动态对媒体索引信息 进行更新,因此,当存储空间不足导致录制异常终止时,也能够保证录制终 止之前所保存的媒体数据可以正常播放。
在图1所示的媒体文件存储格式示意图中,媒体索引信息是写入媒体文 件的尾部,即存储于所有媒体数据块之后,这个存储顺序也与现有技术的媒 体文件数据写入时序相一致。这种存储格式,如果应用于上述的本发明技术 方案,每隔周期tl后,在上一周期刚刚写入的数据块之后写入索引信息,就 会造成数据块的存储位置不连续,进而导致产生存储空间碎片、影响数据读 取性能等问题。
为解决上述问题,在本发明的优选实施例中,提供一种优化的媒体文件 存储;洛式,参见图3所示,当录制开始之后,在开始写入媒体数据块之前, 先预留出 一块用于保存媒体索引信息的空间,后续的媒体数据块将写入所述 预留数据块之后的空间。
其中,参见图4所示,所预留空间大小,可以按照如下的步骤计算
S201,开始录制媒体时,获取可用存储空间的大小So;
即获取在开始录制媒体时的可用存储空间大小So,存储空间大小一般以、 Mb等。
S202,将录制媒体所应用的编码速率,转换为存储单位时间的媒体数据 所需占用的存储空间V;
媒体编码速率, 一般以bps表示,即比特每秒。(编码速率是在录制开始 时就确定的,如果是固定码率编码方式,那么这个数值在编码过程中一直保 持不变,如果非固定码率编码方式,需要在编码之前确定一个编码速率的平 均值。)将编码速率的数值除以8,就可以得到存储每秒i某体数据所需占用的 存储空间V的数值,V的单位为bytes/s (或Kb/s、 Mb/s等)。
例如,媒体编码速率为128kbps,则存储每秒该媒体数据所需占用的存储 空间大小为16kb,即V二16kb/s。
需要说明的是,如果所录制的媒体同时包括音频和视频,则上述的媒体 编码速率应该为两种编码速率之和。例如,录制々某体时,采用64kbps的音频 编码速率、384kbps的视频编码速率,则存储每秒该媒体数据所需占用的存储 空间大小为(64+384)/8二56kb,即V=56kb/s。
S203,根据录制媒体所应用的编码方式,得到建立单位时间媒体数据的 索引所需占用的存储空间U;
媒体数据索引占用的存储空间大小,取决于该媒体文件中所包含的数据 取样(Sample)的数量。媒体数据是以数据块(Chunk)的形式存在于媒体文 件中,而每个Chunk中会包含若干数量的Sample。对于每个Sample来说, 在建立数据索引时,需要对应保存该Sample的时戳信息、所属媒体数据块 (Chunk)在媒体文件中的位置,该Sample在此Chunk中的位置偏移、关键 帧属性等4类重要内容,假设每个内容需要占用4bytes的存储空间,那么每 个Sample所对应的索引空间占用量即为16bytes。
一般来说,每个Chunk代表固定单位时间(通常是ls)媒体数据,而每 个Chunk中会包含若干数量的Sample,这个数量由录制^某体所应用的编码方 式所决定。例如,AMR音频编码4各式是以20ms的音频数据作为一个音频 Sample进行处理,则在一个代表Is数据的音频Chunk中,就包含有50个音 频Sample。这样,就可以进一步得到建立每秒媒体数据的索引所需占用的存 储空间U,其单位为bytes/s (或Kb/s、 Mb/s等)。例如,通过上面的例子,
8我们可以得到建立每秒AMR音频数据的索引所需占用的存储空间为 16*50=800bytes,即U=800bytes/s。
与S202所述类似,如果所录制的媒体同时包括音频和视频,则计算上述 占用空间时,应同时考虑单位时间的音频数据和视频数据。例如,录制々某体 时,采用15fps的QVGA视频编码格式、AMR的音频编码格式,则建立每秒 该媒体数据的索引所需占用的存储空间为16*(15+50)=1040bytes,即。
S204,计算争.U,得到所述预留空间的大小。
根据以上步骤的描述不难看出,S。/V的值,实际上就是在开始录制时所 预估的最大允许录制时间,将该值乘以U所得到的数值就是我们所需预留空 间的大小。
例如,在开始录制媒体时的可用存储空间大小So=100Mb、U=1040bytes/s、 V=56kb/s,
则预留空间的大小为
1 OOMbx 1040bytes/s , 。-", ^
-^-= 1857kb
56kb/s
考虑到非固定码率编码方式的误差,我们可以取一个稍微大于计算结果 的数值作为预留空间的大小(例如把计算结果的数值增加一定的百分比),这 个预留空间的大小,即可以在So全部用来录制i某体的情况下,确保索引信息 的正确写入。并且索引信息的存储不会影响媒体数据块的写入连续性,避免 出现更多的存储空间碎片,减少由于数据写入不连续对数据读取性能的影响。
在本发明的另一优选实施例中,我们还可以通过动态调整周期tl,来进 一步提高存储空间的利用率。具体方案描述如下
可以理解的是,在媒体录制刚开始时,如果剩余的可用存储空间较大, 那么此时所录制的媒体文件是相对"安全"的,则此时可以选用较大的tl值, 降低生成并保存索引信息的频率,以节省系统资源。在录制过程中,随着可 用存储空间的不断减小,录制任务被其他写入数据任务所中断的可能性也越 来越大,此时应相应提高生成并保存索引信息的频率,即减小tl的值。以确 保能够尽量利用剩余的可用空间,保存更多的有效媒体数据。上述方法,原则上是根据动态获取的当前剩余的可用存储空间St,来调 整周期tl,但是在实际的业务操作中,应该根据々某体编码速率,来衡量存储 空间的相对大小。因此,我们选择依据St/V的值来调整tl的大小,具体来说,
可以预先设定一个或多个调整门限值,当St/V小于该调整门限值时,相应的 减小tl,例如
媒体开始录制时,tl=60s;
当St/V<300s时,tl=30s;
当St/V<180s时,tl=10s;
当St/V<120s时,tl=5s;
当St/V<60s时,tl=2s;
应用上述设定,相当于根据当前剩余的可用空间St所允许的最大录制时 间的减小,动态减小tl的值。这样, 一方面使得在存储空间较充裕时,可以 以较低的数据操作频率来节省系统资源,另一方面,当存储空间不足时,通 过提高生成并保存索引的频率,使得剩余的可用空间能够尽可能的保存更多 的有效媒体数据。
此外,我们还可以进一步设定一个停止门限值,当St/V小于此停止门限 值时,则自动停止媒体录制。例如,根据上面的例子,我们可以将停止门限 值设为30s。当St/V值小于这个门限值时。后续的录制操作很可能已经无法 得到有效保存了,因此,终端根据当前已写入的媒体数据块生成媒体索引信 息并保存,结束录制任务,以避免后续可能进行的无效操作。
需要说明的是,上述调整门限值的设定方式仅为示意性说明,本领域技 术人员可以根据实际需求,采用其他的门限调整方式,本发明实施例对此不 加以限定。
可以理解的是,上述的实现动态获取当前剩余的可用存储空间St操作, 对于该操作来说,也有一个执行周期t2,对于该t2,也可以采用与tl类似的 调整方式,即根据所获取的当前剩余可用存储空间St,来调整周期t2。具体 的调整方式与tl类似,这里不再赘述。需要注意的是,只有动态获取可用空 间的操作频率不小于动态生成并保存索引信息的频率时,才能保证tl的调整 是及时有效的,因此tl在数值上应该不小于t2。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤
可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读
取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述 的存储介质包括ROM、 RAM、磁碟或者光盘等各种可以存储程序代码的介质。
相应于上面的方法实施例,本发明实施例还提供一种媒体录制装置,参 见图5所示,包括
索引信息生成单元301,用于在媒体录制过程中,周期性地根据当前已写 入的媒体数据块生成媒体索引信息;
索引信息保存单元302,用于保存所述索引信息即时生成单元301生成的 媒体索引信息。
参见图6所示,该装置还可以包括
预留空间计算单元303,用于计算在写入媒体数据块之前,所预留的用于 保存^ 某体索引信息的空间大小。
所述预留空间计算单元具体可以包括参数获取子单元,用于获取可用 存储空间的大小S。、将录制i某体所应用的编码速率,转换为存储单位时间的 媒体数据所需占用的存储空间大小V,及根据录制媒体所应用的编码方式, 得到建立单位时间^ 某体数据的索引所需占用的存储空间大小U;
计算子单元,用于计算^.u,得到所述预留空间的大小。
参见图7所示,该装置还可以包括
存储空间检测单元304,用于在录制过程中,周期性地获取当前可用存储 空间的大小St。
第一周期调整单元305,用于根据当前可用存储空间的大小St,调整所述 生成^f某体索引信息的周期tl。所述第一周期调整单元可以包括第一周期调整 子单元,用于当^的值小于预设的调整门限值时,则减小周期tl。
参见图8所示,图7所示的装置还可以包括
第二周期调整单元306,用于才艮据当前可用存储空间的大小St,调整所述 存储空间检测单元304获取当前可用存储空间大小的周期t2。所述第二周期调整单元可以包括第二周期调整子单元,用于当,的值小于预设的调整门限
值时,则减小周期t2,且t2小于等于tl。
所述^^某体录制装置还可以包括停止录制单元,用于当,的值小于预设 的停止门限值时,停止媒体录制,通知所述索引信息保存单元根据当前已写 入的媒体数据块生成媒体索引信息,保存所生成的媒体索引信息。
应用上述的媒体录制装置,在媒体录制过程中,周期性地生成媒体索引 信息并对其进行保存。如果终端在录制媒体的同时还执行了其他写入任务, 那么即使存储空间变化超出预期导致录制异常终止,在录制终止之前所保存 的媒体数据也能够正常播放,保证了媒体录制任务的健壮性。进一步的,还 可以在录制过程中,根据所剩余的可用空间大小,动态调整生成索引信息的 周期,例如在可用空间小于预设的门限值时,减小所述周期,也即加大生成 索引信息的频率,以确保能够尽量利用剩余的可用空间,保存更多的有效媒 体数据。
对于装置实施例而言,由于其基本相应于方法实施例,所以描述得比较 简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例 仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是
以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要 选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术 人员在不付出创造性的劳动的情况下,即可以理解并实施。
以上所述仅是本发明的具体实施方式
,应当指出,对于本技术领域的普 通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润 饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1、一种媒体录制方法,其特征在于,包括在媒体录制过程中,周期性地根据当前已写入的媒体数据块生成媒体索引信息,保存所生成的媒体索引信息。
2、 根据权利要求1所述的方法,其特征在于,在写入媒体数据块之前, 预留用于保存i某体索引信息的空间;则所述保存所生成的媒体索引信息,包括将所生成的媒体索引信息写 入所述预留空间。
3、 根据权利要求2所述的方法,其特征在于,所述预留用于保存媒体索 引信息的空间的大小,其计算方法包括获^f又可用存储空间的大小S0;将录制媒体所应用的编码速率,转换为存储单位时间的媒体数据所需占 用的存储空间大小V;根据录制媒体所应用的编码方式,得到建立单位时间媒体数据的索引所 需占用的存储空间大小U;计算争.U,得到所述预留空间的大小。
4、 根据权利要求1至3任一项所述的方法,其特征在于,该方法还包括 在录制过程中,周期性地获:f又当前可用存储空间的大小St; 根据当前可用存储空间的大小St,调整所述生成媒体索引信息的周期tl。
5、 根据权利要求4所述的方法,其特征在于,所述根据当前可用存储空 间的大小St,调整生成媒体索引信息的周期tl,包括当,的值小于预设的调整门限值时,则减小周期11 。
6、 根据权利要求4所述的方法,其特征在于,该方法还包括根据当前可用存储空间的大小,调整所述获取当前可用存储空间大小的 周期t2。
7、 根据权利要求6所述的方法,其特征在于,所述根据当前可用存储空 间的大小St,调整所述获取当前可用存储空间大小的周期t2,包括当争的值小于预设的调整门限值时,则减小周期t2,且t2小于等于tl。
8、 根据权利要求4所述的方法,其特征在于,该方法还包括当,的值小于预设的停止门限值时,则停止媒体录制,根据当前已写入 的媒体数据块生成媒体索引信息,保存所生成的媒体索引信息。
9、 一种媒体录制装置,其特征在于,包括索引信息生成单元,用于在媒体录制过程中,周期性地根据当前已写入 的媒体数据块生成媒体索引信息;索引信息保存单元,用于保存所述索引信息即时生成单元生成的J 某体索 引信息。
10、 根据权利要求9所述的装置,其特征在于,该装置还包括 预留空间计算单元,用于计算在写入媒体数据块之前,所预留的用于保存媒体索引信息的空间大小。
11、 根据权利要求IO所述的装置,其特征在于,所述预留空间计算单元 包括参数获取子单元,用于获取可用存储空间的大小So、将录制媒体所应用 的编码速率转换为存储单位时间的々某体数据所需占用的存储空间大小V,以 及根据录制媒体所应用的编码方式得到建立单位时间媒体数据的索引所需占 用的存储空间大小U;计算子单元,用于计算争.u,得到所述预留空间的大小。
12、 根据权利要求9、 10或11所述的装置,其特征在于,该装置还包括 存储空间检测单元,用于在录制过程中,周期性地获取当前可用存储空间的大小St;第一周期调整单元,用于根据当前可用存储空间的大小St,调整所述生 成媒体索引信息的周期tl。
13、 根据权利要求12所述的装置,其特征在于,所述第一周期调整单元 包括第一周期调整子单元,用于当,的值小于预设的调整门限值时,则减小 周期tl。
14、 根据权利要求12所述的装置,其特征在于,该装置还包括 第二周期调整单元,用于根据当前可用存储空间的大小St,调整所述存储空间检测单元获取当前可用存储空间大小的周期t2。
15、 根据权利要求14所述的装置,其特征在于,所述第二周期调整单元包括第二周期调整子单元,用于当,的值小于预设的调整门限值时,则减小 周期t2,且t2小于等于tl。
16、根据权利要求12所述的装置,其特征在于,还包括停止录制单元, 用于当,的值小于预设的停止门限值时,停止J 某体录制,通知所述索引信息保存单元根据当前已写入的媒体数据块生成媒体索引信息,保存所生成的媒 体索引信息。
全文摘要
本发明实施例公开了一种媒体录制方法及装置。一种媒体录制方法为,在媒体录制过程中,周期性地根据当前已写入的媒体数据块生成媒体索引信息,保存所生成的媒体索引信息。应用本发明技术方案,如果终端在录制媒体的同时还执行了其他写入任务,那么即使存储空间变化超出预期导致录制异常终止,在录制终止之前所保存的媒体数据也能够正常播放,保证了媒体录制任务的健壮性。进一步的,还可以在录制过程中,根据所剩余的可用空间大小,动态调整生成索引信息的周期,例如在可用空间小于预设的门限值时,减小所述周期,也即加大生成索引信息的频率,以确保能够尽量利用剩余的可用空间,保存更多的有效媒体数据。
文档编号G11B20/10GK101447207SQ20081018886
公开日2009年6月3日 申请日期2008年12月30日 优先权日2008年12月30日
发明者涛 马 申请人:深圳华为通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1