将多媒体数据分段保存的方法及系统与流程

文档序号:12740647阅读:495来源:国知局
将多媒体数据分段保存的方法及系统与流程

本发明涉及计算机领域,特别涉及将多媒体数据分段保存的方法及系统。



背景技术:

在具有视频录像功能的产品中,如行车记录仪、银行ATM机、安防监控产品等,由于文件系统的一些限制,存储的视频文件是有大小限制的,如FAT32文件系统最大只支持4G Bytes大小的文件。另外,在用户实际使用中,为了方便查看、管理视频文件,往往也会对录出来的视频文件的大小或时长有要求,这些都需要在连续录像过程中,要间歇性地更换视频文件去保存。

在目前的很多技术实现方案里,虽然能在录像过程中更换文件保存,但很多是采取先停止Camera录像再紧接着启动Camera录像的方式,这就导致在停止和下一次启动之间的视频画面没有录下来,往往会有1秒左右或几秒的画面丢失,即“漏秒”问题。为了解决上述问题,还有一种方式为在分段保存文件的过程没有停止Camera录像,但在前后文件切换的过程中造成某些视频帧丢失,造成“漏帧”问题。或者,由于切换的时机存在于任意时刻,写入新的文件的第一个视频帧不是同步帧,造成录下的文件播放时的开始瞬间出现花屏。

因此,需对现有技术进行改进。



技术实现要素:

本发明的目的在于提供一种将多媒体数据分段保存的方法及系统,用于解决现有技术中的在分段保存的交接图像帧区间,无法获得清晰音视频数据的问题。

为解决上述技术问题,本发明的实施方式提供了一种将多媒体数据分段保存的方法,包含:获取多媒体数据并缓存在预先分配的队列中;将所述队列中的多媒体数据送入编码器进行编码;当编码后的多媒体数据满足预设的保存条件、或接收到保存指令时,继续获取多媒体数据、并暂停将所述队列中的多媒体数据送入编码器;将暂停之后所述编码器所编码的多媒体数据按照预设格式保存成多媒体文件,重新向所述编码器输送所述队列中的多媒体数据。

基于上述目的,本发明还提供一种将多媒体数据分段保存的系统,包含:获取模块,用于获取多媒体数据并缓存在预先分配的队列中;输出模块,用于将所述队列中的多媒体数据送入编码器进行编码;分段保存模块,用于当编码后的多媒体数据满足预设的保存条件、或接收到保存指令时,继续获取多媒体数据、并暂停将所述队列中的多媒体数据送入编码器;将暂停之后所述编码器所编码的多媒体数据按照预设格式保存成多媒体文件,重新执行所述输出模块,以向所述编码器输送所述队列中的多媒体数据。

本发明实施方式相对于现有技术而言,在分段保存时采用不中断获取多媒体数据,并对前端数据进行编码保存的方式,使得在录像的切换过程中,保持采集、转换和编码各环节不重启,只是在文件封装上(即分段保存)做重启更换,能缩短切换的时间,有效解决因重启造成的漏时、漏帧的问题。

另外,特别对于视频数据的分段保存,在重新向编码器输出视频数据时,还输出同步帧指令,使得分段文件的第一帧为同步帧,如此能够确保分段保存的前几秒图像清晰、无花屏。

另外,当停止时,采用将所缓存的所有多媒体数据予以编码、保存,有效防止了停止时刻的多媒体数据的丢失。

另外,将多媒体数据中的音频视频数据分开缓存,能够配置成音频、视频单码流录像、或音视频混合码流录像,还能实现多路同时无干扰的连续录像。

附图说明

图1是本发明的将多媒体数据分段保存的方法中一种实施方式的流程图;

图2是本发明的将多媒体数据分段保存的方法中一种优选实施方式的流程图;

图3是本发明的将多媒体数据分段保存的系统中一种实施方式的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。

如图1所示,本发明提供一种将多媒体数据分段保存的方法。所述保存方法主要由保存系统来执行。所述保存系统安装在计算机设备中。其中,所述计算机设备包括但不限于:流媒体服务器、视频监控中心等。所述保存系统执行以下步骤:

在步骤S1中,所述保存系统获取多媒体数据并缓存在预先分配的队列中。其中,所述多媒体数据包括但不限于以下至少一种:音频数据、视频数据。所述多媒体数据可以为未经压缩的数据流。当所述多媒体数据包含音频数据和视频数据时,所述保存系统将从音频数据线路获取的音频数据保存在预设的专用于存放音频数据的队列中。同样,所述保存系统将从视频数据线路获取的视频数据保存在预设的专用于存放视频数据的队列中。各所述队列的大小可预先设定为固定值。该固定值应大于编码器的缓存容量。

在此,所述保存系统可直接获取摄像装置所提供的多媒体数据,并从获取到多媒体数据开始,对所获取的多媒体数据的总量、或下载时长进行监控。

在步骤S2中,所述保存系统将所述队列中的多媒体数据送入编码器进行编码。

具体地,当所述保存系统获取到多媒体数据时,开始循环执行数据传输线程,将所述队列中的多媒体数据送入编码器中。

当所述多媒体数据为音频数据时,所述保存系统启动编码器并直接将多媒体数据输送至所述编码器。

当所述多媒体数据为视频数据时,所述保存系统向编码器发出包含同步帧处理的指令,并将多媒体数据输送至所述编码器。如此,所述编码器以所获取的第一帧多媒体数据作为同步帧,并开始进行编码。

在步骤S3中,当所述保存系统监控到编码后的多媒体数据满足预设的保存条件时,继续获取多媒体数据、并暂停将所述队列中的多媒体数据送入编码器;将暂停之后所述编码器所编码的多媒体数据按照预设格式保存成多媒体文件,重新向所述编码器输送所述队列中的多媒体数据。

其中,所述保存条件包括但不限于:对应所要保存的多媒体数据类型的总量达到预设数量阈值。例如,所述保存系统累计步骤S2中编码后的多媒体数据的总量。若所述保存系统所要保存的多媒体数据类型为单音频类型, 则所述保存条件为编码后的音频数据的总量达到预设保存数量阈值。又如,所述保存系统累计步骤S2中编码后的多媒体数据的总量。若所述保存系统所要保存的多媒体数据类型为音频和视频类型,则所述保存条件为编码后的音频数据和视频数据的总量达到预设保存数量阈值。

当所述保存系统满足预设保存条件时,继续获取多媒体数据、并暂停将所述队列中的多媒体数据送入编码器;同时等待编码器将其自身缓存中的多媒体数据进行编码,并将编码后的各多媒体数据按照预设格式保存成多媒体文件,再重新向所述编码器输送所述队列中的多媒体数据。

具体地,当所述保存系统按照预设的保存条件每隔固定时长、或每固定文件大小对所接收的数据流进行分段保存时,并非暂停接收摄像装置所传输的多媒体数据。所述保存系统继续将所获取的多媒体数据保存到相应队列中,同时暂停从所述队列中输出多媒体数据。与此同时,所述保存系统指示所述编码器继续将自身缓存中的多媒体数据编码完成,并将暂停后所述编码器编码的所有多媒体数据以预设的格式和命名规则保存在预设的文件夹下。

在此,所述格式包括但不限于:rmvb格式、mp4格式等。所述命名规则包括但不限于:按照当前时间进行命名、按照预设的编码顺序进行命名等。

当所述保存系统完成保存操作时,重新向所述编码器输送所述队列中的多媒体数据。

具体地,所述保存系统重新从队列中将多媒体数据输至所述编码器。若所述保存系统保存的为音频数据,则直接将所述音频数据输至所述编码器。若所述保存系统所要保存的包含视频数据,则重新输送多媒体数据时,还行所述编码器发送同步帧指令。如此,所述编码器将重新获得的多媒体数据作为同步帧。如此,不仅不会因保存间隔而丢失数据,更不会因重新向编码器输送的视频数据非同步帧,而造成前几秒花屏的情况。

可替换的,所述保存系统还可以在接收到保存指令时,继续获取多媒体 数据、并暂停将所述队列中的多媒体数据送入编码器;将暂停之后所述编码器所编码的多媒体数据按照预设格式保存成多媒体文件,重新向所述编码器输送所述队列中的多媒体数据。

例如,技术人员需要单独保存当前多媒体数据,则通过操作计算机设备中的人机交互装置(如键盘、鼠标、触屏等)向所述保存系统发出保存指令,则所述保存系统继续获取多媒体数据、并暂停将所述队列中的多媒体数据送入编码器;同时等待编码器将其自身缓存中的多媒体数据进行编码,并将编码后的各多媒体数据按照预设格式保存成多媒体文件;再重新向所述编码器输送所述队列中的多媒体数据。

在此,所述保存系统继续获取多媒体数据、并暂停将所述队列中的多媒体数据送入编码器;将暂停之后所述编码器所编码的多媒体数据按照预设格式保存成多媒体文件;以及重新向所述编码器输送所述队列中的多媒体数据的方式与前述方式相同,在此不再详述。

作为一种优选方式,所述保存系统还可能接收到停止指令。具体地,当用户点击停止按钮、或所述保存系统监测到所保存的存储空间临近满存时,则所述保存系统接收到停止指令。此时,所述保存系统所执行的步骤如图2所示。

所述保存系统停止执行步骤S1。

具体地,所述保存系统基于所述停止指令停止从摄像装置继续获取并缓存新的多媒体数据,并继续执行步骤S2,以将所述队列中的剩余多媒体数据送入编码器进行编码,直至所述队列被清空。

当所述保存系统利用所述编码器将所有剩余多媒体数据进行编码后,将所编码的多媒体数据按照预设格式保存成多媒体文件。

如此,所述保存系统将所获取的所有多媒体数据保存在文件中。如此实现了将接收到停止指令之前的所有多媒体数据都予以保存的目的。

如图3所示,本发明提供一种将多媒体数据分段保存的系统。所述保存系统安装在计算机设备中。其中,所述计算机设备包括但不限于:流媒体服务器、视频监控中心等。所述保存系统1包括:获取模块11、输出模块12、分段保存模块13。

所述获取模块11用于获取多媒体数据并缓存在预先分配的队列中。其中,所述多媒体数据包括但不限于以下至少一种:音频数据、视频数据。所述多媒体数据可以为未经压缩的数据流。当所述多媒体数据包含音频数据和视频数据时,所述获取模块11将从音频数据线路获取的音频数据保存在预设的专用于存放音频数据的队列中。同样,所述获取模块11将从视频数据线路获取的视频数据保存在预设的专用于存放视频数据的队列中。各所述队列的大小可预先设定为固定值。该固定值应大于编码器的缓存容量。

在此,所述获取模块11可直接获取摄像装置所提供的多媒体数据,并从获取到多媒体数据开始,对所获取的多媒体数据的总量、或下载时长进行监控。

所述输出模块12用于将所述队列中的多媒体数据送入编码器进行编码。

具体地,当所述输出模块12获取到多媒体数据时,开始循环执行数据传输线程,将所述队列中的多媒体数据送入编码器中。

当所述多媒体数据为音频数据时,所述输出模块12启动编码器并直接将多媒体数据输送至所述编码器。

当所述多媒体数据为视频数据时,所述输出模块12向编码器发出包含同步帧处理的指令,并将多媒体数据输送至所述编码器。如此,所述编码器以所获取的第一帧多媒体数据作为同步帧,并开始进行编码。

所述分段保存模块13用于当监控到编码后的多媒体数据满足预设的保存条件时,继续获取多媒体数据、并暂停将所述队列中的多媒体数据送入编码器;将暂停之后所述编码器所编码的多媒体数据按照预设格式保存成多媒 体文件,重新向所述编码器输送所述队列中的多媒体数据。

其中,所述保存条件包括但不限于:对应所要保存的多媒体数据类型的总量达到预设数量阈值。例如,所述分段保存模块13累计编码后的多媒体数据的总量。若所述分段保存模块13所要保存的多媒体数据类型为单音频类型,则所述保存条件为编码后的音频数据的总量达到预设保存数量阈值。又如,所述分段保存模块13累计编码后的多媒体数据的总量。若所述分段保存模块13所要保存的多媒体数据类型为音频和视频类型,则所述保存条件为编码后的音频数据和视频数据的总量达到预设保存数量阈值。

当所述分段保存模块13满足预设保存条件时,继续获取多媒体数据、并暂停将所述队列中的多媒体数据送入编码器;同时等待编码器将其自身缓存中的多媒体数据进行编码,并将编码后的各多媒体数据按照预设格式保存成多媒体文件,再重新向所述编码器输送所述队列中的多媒体数据。

具体地,当所述分段保存模块13按照预设的保存条件每隔固定时长、或每固定文件大小对所接收的数据流进行分段保存时,并非暂停接收摄像装置所传输的多媒体数据。所述分段保存模块13继续将所获取的多媒体数据保存到相应队列中,同时暂停从所述队列中输出多媒体数据。与此同时,所述指示输出模块12指示所述编码器继续将其自身缓存中的多媒体数据编码完成,并将暂停后所述编码器编码的所有多媒体数据以预设的格式和命名规则保存在预设的文件夹下。

在此,所述格式包括但不限于:rmvb格式、mp4格式等。所述命名规则包括但不限于:按照当前时间进行命名、按照预设的编码顺序进行命名等。

当所述分段保存模块13完成保存操作时,指示输出模块12重新向所述编码器输送所述队列中的多媒体数据。

具体地,所述分段保存模块13重新从队列中将多媒体数据输至所述编码器。若所述分段保存模块13保存的为音频数据,则直接将所述音频数据输 至所述编码器。若所述分段保存模块13所要保存的包含视频数据,则重新输送多媒体数据时,还行所述编码器发送同步帧指令。如此,所述编码器将重新获得的多媒体数据作为同步帧。如此,不仅不会因保存间隔而丢失数据,更不会因重新向编码器输送的视频数据非同步帧,而造成前几秒花屏的情况。

可替换的,所述分段保存模块13还可以在接收到保存指令时,继续获取多媒体数据、并暂停将所述队列中的多媒体数据送入编码器;将暂停之后所述编码器所编码的多媒体数据按照预设格式保存成多媒体文件,重新向所述编码器输送所述队列中的多媒体数据。

例如,技术人员需要单独保存当前多媒体数据,则通过操作计算机设备中的人机交互装置(如键盘、鼠标、触屏等)向所述分段保存模块13发出保存指令,则所述分段保存模块13继续获取多媒体数据、并暂停将所述队列中的多媒体数据送入编码器;同时等待编码器将其自身缓存中的多媒体数据进行编码,并将编码后的各多媒体数据按照预设格式保存成多媒体文件;再指示输出模块12重新向所述编码器输送所述队列中的多媒体数据。

在此,所述分段保存模块13继续获取多媒体数据、并暂停将所述队列中的多媒体数据送入编码器;将暂停之后所述编码器所编码的多媒体数据按照预设格式保存成多媒体文件;以及指示输出模块12重新向所述编码器输送所述队列中的多媒体数据的方式与前述方式相同,在此不再详述。

作为一种优选方式,所述获取模块11还可能接收到停止指令。具体地,当用户点击停止按钮时,所述获取模块11获取到停止指令。或者,当所述分段保存模块13监测到所保存的存储空间临近满存时,所述获取模块11接收到停止指令。

所述获取模块11用于基于所述停止指令停止继续获取新的多媒体数据。

具体地,所述获取模块11基于所述停止指令停止从摄像装置继续获取并缓存新的多媒体数据,所述输出模块12继续执行,以将所述队列中的剩余 多媒体数据送入编码器进行编码,直至所述队列被清空。

当所述分段保存模块13利用所述编码器将所有剩余多媒体数据进行编码后,将所编码的多媒体数据按照预设格式保存成多媒体文件。

如此,所述保存系统1将所获取的所有多媒体数据保存在文件中。如此实现了将接收到停止指令之前的所有多媒体数据都予以保存的目的。

值得一提的是,本实施方式中所涉及到的各模块和单元均为逻辑模块和逻辑单元,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。

本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1