一种多媒体文件的录制方法和装置的制造方法

文档序号:9330996阅读:264来源:国知局
一种多媒体文件的录制方法和装置的制造方法
【技术领域】
[0001]本发明涉及多媒体的技术领域,特别是涉及一种多媒体文件的录制方法和一种多媒体文件的录制装置。
【背景技术】
[0002]在行车记录仪、场地监控等视频监控领域,一般需要长时间录制视频。
[0003]在目前的视频录制工具中,由于文件系统及计算平台的限制,需要在录制时设定录制视频文件的尺寸上限,用多个视频文件连续存放录制的视频。
[0004]但是,在结束视频文件的录制时,需要关闭视频录制工具,在重新进行视频文件的录制时,再重新启动视频录制工具,而启动时需要进行初始化等操作。
[0005]由此可见,在视频文件切换过程中需要耗费较长时间,切换过程中无法进行录制,造成监控时间上的空白,对于要求严格的监控领域,这种视频数据的丢失可能存在严重问题。

【发明内容】

[0006]鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题的一种多媒体文件的录制方法和相应的一种多媒体文件的录制装置。
[0007]为了解决上述问题,本发明实施例公开了一种多媒体文件的录制方法,包括:
[0008]当接收到多媒体文件的录制请求时,创建数据源、编码器、打包器、第一多媒体写入器、第二多媒体写入器;
[0009]通过数据源持续采集多媒体数据;
[0010]编码器持续对所述多媒体数据进行编码,并将编码之后的多媒体数据写入预置的缓存队列;
[0011]第一多媒体写入器从所述缓存队列读取编码后的多媒体数据,并写入第一多媒体文件;
[0012]判断所述第一多媒体文件是否超过预设的文件大小阈值;若是,则切换至第二多媒体写入器从所述缓存队列读取编码后的多媒体数据,并写入第二多媒体文件。
[0013]优选地,所述第一多媒体写入器包括第一写入器和第一打包器,所述第二多媒体写入器包括第二写入器和第二打包器。
[0014]优选地,所述第一多媒体写入器从所述缓存队列读取编码后的多媒体数据,并写入第一多媒体文件的步骤包括:
[0015]第一打包器从所述缓存队列读取编码之后的多媒体数据;
[0016]第一打包器将编码之后的多媒体数据打包成多媒体数据包;
[0017]第一写入器将所述多媒体数据包写入第一多媒体文件。
[0018]优选地,所述第一多媒体写入器从所述缓存队列读取多媒体数据包,并写入第一多媒体文件的步骤包括:
[0019]当所述第一多媒体文件超过预设的文件大小阈值时,第一多媒体写入器生成封装完成事件;
[0020]第一多媒体写入器广播所述封装完成事件。
[0021]优选地,所述判断所述第一多媒体文件是否超过预设的文件大小阈值的步骤包括:
[0022]判断是否接收到由第一多媒体写入器广播的封装完成事件;若是,则判断所述第一多媒体文件超过预设的文件大小阈值。
[0023]优选地,所述切换至第二多媒体写入器从所述缓存队列读取编码后的多媒体数据,并写入第二多媒体文件的步骤包括:
[0024]停止第一打包器和第一写入器,同时,第一写入器对所述第一多媒体进行保存处理;
[0025]启动第二打包器和第二写入器;
[0026]第二打包器从所述缓存队列读取编码之后的多媒体数据;
[0027]第二打包器将编码之后的多媒体数据打包成多媒体数据包;
[0028]第二写入器将所述多媒体数据包写入第二多媒体文件。
[0029]优选地,所述缓存队列配置有互斥锁,所述切换至第二多媒体写入器从所述缓存队列读取编码后的多媒体数据的步骤包括:
[0030]第一打包器释放所述缓存队列;
[0031]第二打包器锁定所述缓存队列;
[0032]第二打包器通过所述缓存队列提供的读接口从所述缓存队列读取编码后的多媒体数据。
[0033]优选地,所述数据源包括摄像头和/或麦克风,所述多媒体数据包括视频数据和/或音频数据;
[0034]所述通过数据源持续采集多媒体数据的步骤包括:
[0035]通过预置的摄像头源类CameraSource从摄像头采集视频数据;
[0036]和/ 或,
[0037]通过预置的音频源类Aud1Source从麦克风采集音频数据。
[0038]本发明实施例还公开了一种多媒体文件的录制方法,包括:
[0039]当接收到多媒体文件的录制请求时,创建数据源、编码器、打包器、第一写入器、第二写入器;
[0040]通过数据源持续采集多媒体数据;
[0041 ] 编码器持续对所述多媒体数据进行编码;
[0042]打包器持续将编码之后的多媒体数据打包成多媒体数据包,并将所述多媒体数据包写入预置的缓存队列;
[0043]第一写入器从所述缓存队列读取多媒体数据包,并写入第一多媒体文件;
[0044]判断所述第一多媒体文件是否超过预设的文件大小阈值;若是,则切换至第二写入器从所述缓存队列读取多媒体数据包,并写入第二多媒体文件。
[0045]优选地,所述写入第一多媒体文件的步骤包括:
[0046]当所述第一多媒体文件超过预设的文件大小阈值时,第一写入器生成封装完成事件;
[0047]第一写入器广播所述封装完成事件。
[0048]优选地,所述判断所述第一多媒体文件是否超过预设的文件大小阈值的步骤包括:
[0049]判断是否接收到由第一写入器广播的封装完成事件;若是,则判断所述第一多媒体文件超过预设的文件大小阈值。
[0050]优选地,所述切换至第二写入器从所述缓存队列读取多媒体数据包的步骤包括:
[0051]停止第一写入器,同时,第一写入器对所述第一多媒体进行保存处理;
[0052]启动第二写入器;
[0053]第二写入器从所述缓存队列读取所述多媒体数据包。
[0054]优选地,所述缓存队列配置有互斥锁,所述切换至第二写入器从所述缓存队列读取多媒体数据包的步骤包括:
[0055]第一写入器释放所述缓存队列;
[0056]第二写入器锁定所述缓存队列;
[0057]第二写入器通过所述缓存队列提供的读接口从所述缓存队列读取所述多媒体数据包。
[0058]优选地,所述数据源包括摄像头和/或麦克风,所述多媒体数据包括视频数据和/或音频数据;
[0059]所述通过数据源持续采集多媒体数据的步骤包括:
[0060]通过预置的摄像头源类CameraSource从摄像头采集视频数据;
[0061]和/ 或,
[0062]通过预置的音频源类Aud1Source从麦克风采集音频数据。
[0063]本发明实施例还公开了一种多媒体文件的录制装置,包括:
[0064]录制工具创建模块,用于在接收到多媒体文件的录制请求时,创建数据源、编码器、打包器、第一多媒体写入器、第二多媒体写入器;
[0065]多媒体数据采集模块,用于通过数据源持续采集多媒体数据;
[0066]编码模块,用于由编码器持续对所述多媒体数据进行编码,并将编码之后的多媒体数据写入预置的缓存队列;
[0067]第一封装模块,用于由第一多媒体写入器从所述缓存队列读取编码后的多媒体数据,并写入第一多媒体文件;
[0068]文件大小判断模块,用于判断所述第一多媒体文件是否超过预设的文件大小阈值;若是,则调用第二封装模块;
[0069]第二封装模块,用于切换至第二多媒体写入器从所述缓存队列读取编码后的多媒体数据,并写入第二多媒体文件。
[0070]优选地,所述第一多媒体写入器包括第一写入器和第一打包器,所述第二多媒体写入器包括第二写入器和第二打包器。
[0071 ] 优选地,所述第一封装模块包括:
[0072]第一读取子模块,用于由第一打包器从所述缓存队列读取编码之后的多媒体数据;
[0073]第一打包子模块,用于由第一打包器将编码之后的多媒体数据打包成多媒体数据包;
[0074]第一写入子模块,用于由第一写入器将所述多媒体数据包写入第一多媒体文件。
[0075]优选地,所述第一封装模块包括:
[0076]封装完成事件生成子模块,用于在所述第一多媒体文件超过预设的文件大小阈值时,第一多媒体写入器生成封装完成事件;
[0077]封装完成事件广播子模块,用于由第一多媒体写入器广播所述封装完成事件。
[0078]优选地,所述文件大小判断模块包括:
[0079]封装完成事件判断子模块,用于判断是否接收到由第一多媒体写入器广播的封装完成事件;若是,则调用封装完成判断子模块;
[0080]封装完成判断子模块,用于判断所述第一多媒体文件超过预设的文件大小阈值。[0081 ] 优选地,所述第二封装模块包括:
[0082]停止子模块,用于停止第一打包器和第一写入器,同时,第一写入器对所述第一多媒体进行保存处理;
[0083]启动子模块,用于启动第二打包器和第二写入器;
[0084]第二读取子模块,用于由第二打包器从所述缓存队列读取编码之后的多媒体数据;
[0085]第二打包子模块,用于由第二打包器将编码之后的多媒体数据打包成多媒体数据包;
[0086]第二写入子模块,用于由第二写入器将所述多媒体数据包写入第二多媒体文件。
[0087]优选地,所述缓存队列配置有互斥锁,所述第二封装模块包括:
[0088]释放子模块,用于由第一打包器释放所述缓存队列;
[0089]锁定子模块,用于由第二打包器锁定所述缓存队列;
[0090]接口读取子模块,用于由第二打包器通过所述缓存队列提供的读接口从所述缓存队列读取编码后的多媒体数据。
[0091]优选地,所述数据源可以包括摄像头和/或麦克风,所述多媒体数据可以包括视频数据和/或音频数据;
[0092]所述多媒体数据采集模块包括:
[0093]视频数据采集子模块,用于通过预置的摄像头源类CameraSource从摄像头采集视频数据;
[0094]和/ 或,
[0095]音频数据采集子模块,用于通过预置的音频源类Aud1Source从麦克风采集音频数据。
[0096]本发明实施例还公开了一种多媒体文件的录制装置,包括:
[0097]录制工具创建模块,用于在接收到多媒体文件的录制请求时,创建数据源、编码器、打包器、第一写入器、第二写入器;
[0098]多媒体数据采集模块,用于通过数据源持续采集多媒体数据;
[0099]编码模块,用于由编码器持续对所述多媒体数据进行编码;
[0100]打包模块,用于由打包器持续将编码之后的多媒体数据打包成多媒体数据包,并将所述多媒体数据包写入预置的缓存队列;
[0101]第一封装模块,用于由第一写入器从所述缓存队列读取多媒体数据包,并写入第一多媒体文件;
[0102]文件大小判断模块,用于判断所述第一多媒体文件是否超过预设的文件大小阈值;若是,则调用第二封装模块;
[0103]第二封装模块,用于切换至第二写入器从所述缓存队列读取多媒体数据包,并写入第二多媒体文件。
[0104]优选地,所述第一封装模块包括:
[0105]封装完成事件生成子模块,用于在所述第一多媒体文件超过预设的文件大小阈值时,第一写入器生成封装完成事件;
[0106]封装完成事件广播子模块,用于由第一写入器广播所述封装完成事件。
[0107]优选地,所述文件大小判断模块包括:
[0108]封装完成事件判断子模块,用于判断是否接收到由第一写入器广播的封装完成事件;若是,则调用封装完成判断子模块;
[0109]封装完成判断子模块,用于判断所述第一多媒体文件超过预设的文件大小阈值。
[0110]优选地,所述第二封装模块包括:
[0111]停止子模块,用于停止第一写入器,同时,第一写入器对所述第一多媒体进行保存处理;
[0112]启动子模块,用于启动第二写入器;
[0113]第二读取子模块,用于由第二写入器从所述缓存队列读取所述多媒体数据包。
[0114]优选地,所述缓存队列配置有互斥锁,所述第二封装模块包括:
[0115]释放子模块,用于由第一写入器释放所述缓存队列;
[0116]锁
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1