音视频数据的录制方法及装置与流程

文档序号:14293496阅读:158来源:国知局
本发明涉及音视频录制
技术领域
:,尤其涉及一种音视频数据的录制方法及装置。
背景技术
::随着数字电视技术的发展,数字电视一体机和机顶盒得到了迅速的发展,越来越多的新技术、新业务和新功能都在数字电视一体机和机顶盒上得到开发和利用,给观众带来全新的电视节目的收看方式。个人视频录像(personalvideorecord,简称pvr)功能深受用户喜爱,pvr是指用户把自己感兴趣的数字电视节目的视频、音频数据保存在存储器中(比如电视内置硬盘或移动硬盘),供以后方便的时间反复观看。现有的录制方案中,由demux设备把属于预先设置的音视频的包识别符(packetidentifier,简称pid)的分组的数据流(packetizedelementarystreams,简称pes)读取出来然后写入存储器。当播放时会把录制文件再注入给demux设备,demux设备根据设定的音频和/或视频数据包的pid,就可以从录制文件中解析出对应的音视频pes然后输出到解码器播放。但是,已有技术的这种录制方法,若音视频的pid发生了变化,就会无法成功录制及播放。技术实现要素:本发明提供一种音视频数据的录制方法及装置,实现了在pid变化的场景下,也可以正常录制及播放。第一方面,本发明提供一种音视频数据的录制方法,包括:监测待录制节目的码流中数据包的包识别符pid是否发生变化;所述数据包包括音频数据包和/或视频数据包;若监测到所述数据包的pid发生变化,则将已存储的所述数据包的pid替换为变化后的pid;根据所述变化后的pid对所述数据包进行录制,得到录制码流;所述录制码流中携带节目映射表pmt;所述pmt中包括所述数据包的pid。可选的,监测待录制节目的码流中数据包的包识别符pid是否发生变化,具体包括:监测所述待录制节目的码流中的节目映射表pmt;所述pmt中包括所述数据包的pid;将所述pmt中所述数据包的pid,与已存储的所述数据包的pid进行比较,确定所述pid是否发生变化。可选的,监测待录制节目的码流中数据包的包识别符pid是否发生变化之前,还包括:根据所述pmt获取所述数据包的初始的pid,将所述初始的pid存储在解复用器demux中;将已存储的所述数据包的pid替换为变化后的pid,具体包括:将所述demux中已存储的所述数据包的pid替换为变化后的pid。可选的,还包括:若监测到所述数据包的pid未发生变化,则根据所述pid对所述数据包进行录制,并将包括所述pid的pmt根据预设时间间隔插入到所述录制码流中。第二方面,本发明提供一种音视频数据的录制装置,包括:监测模块,用于监测待录制节目的码流中数据包的包识别符pid是否发生变化;所述数据包包括音频数据包和/或视频数据包;处理模块,用于若监测到所述数据包的pid发生变化,则将已存储的所述数据包的pid替换为变化后的pid;录制模块,用于根据所述变化后的pid对所述数据包进行录制,得到录制码流;所述录制码流中携带节目映射表pmt;所述pmt中包括所述数据包的pid。可选的,所述监测模块,具体用于:监测所述待录制节目的码流中的节目映射表pmt;所述pmt中包括所述数据包的pid;将所述pmt中所述数据包的pid,与已存储的所述数据包的pid进行比较,确定所述pid是否发生变化。可选的,所述处理模块,还用于:根据所述pmt获取所述数据包的初始的pid,将所述初始的pid存储在解复用器demux中;所述处理模块,具体用于:将所述demux中已存储的所述数据包的pid替换为变化后的pid。可选的,所述录制模块,还用于:若监测到所述数据包的pid未发生变化,则根据所述pid对所述数据包进行录制,并将包括所述pid的pmt根据预设时间间隔插入到所述录制码流中。本发明提供的音视频数据的录制方法及装置,监测待录制节目的码流中数据包的包识别符pid是否发生变化;数据包包括音频数据包和/或视频数据包;若监测到数据包的pid发生变化,则将已存储的数据包的pid替换为变化后的pid;进一步的,根据变化后的pid对数据包进行录制,得到录制码流;由于在录制过程中一直监测监数据包的pid是否发生变化,即使录制过程中pid发生变化,也可以及时获知到变化后的pid,并根据变化后的pid进行录制,能够完成录制,进一步的由于录制码流中携带pmt,pmt中包括数据包的pid,因此在播放时,可以根据录制码流中携带的pmt获知到数据包的pid,根据pid对该录制码流进行播放,即使相同类型数据包的pid发生变化,也可以获知到该类型数据包变化后的pid,并根据变化后的pid正确解析相应的数据包,从而完成播放。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。图1是本发明提供的音视频数据的录制方法一实施例的流程图;图2是本发明提供的音视频数据的录制方法另一实施例的流程图;图3是本发明提供的音视频数据的录制方法又一实施例的流程图;图4是本发明提供的音视频数据的录制装置一实施例的结构图;图5是本发明提供的电子设备一实施例的结构图。通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的设备的例子。本发明的说明书和权利要求书及所述附图中的术语术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。首先对本发明所涉及的名词进行解释:每个节目都有对应的pid,每个节目对应的pid都有对应的节目映射表(programmaptable,简称pmt),pmt中包括该节目的音频、视频以及其他数据对应的pid。现有的录制方案中,是把要录制的音视频的包识别符(packetidentifier,简称pid)设置给解复用器(demux)设备,由demux设备把属于该pid的分组的数据流(packetizedelementarystreams,简称pes)读取出来然后写入存储器,同时记录下音频和/或视频数据包的pid。当播放时会把录制文件再注入给demux设备,同时把音频和/或视频数据包的pid设置给demux设备,demux设备根据包识别符过滤器过滤出该录制文件中不同pid的pes,即demux设备从录制文件中解析出了对应的音视频pes,然后输出到解码器播放。在一些场景下,节目的音视频的pid会发生变化,例如当前节目是标清节目,当标清节目播放结束时要播放高清节目,那么就有可能换新的pid来传输新的高清节目的音视频数据。另外当要转播其它电视台的节目时,节目中的音视频的pid也可能发生变化,比如地方台转播中央台的新闻联播时。而上述方案只是针对音视频数据包的pid一直不变化的场景,若音频和/或视频数据包的pid发生了变化,那么将无法读取属于变化了的pid的pes,因此无法完成录制,或者即使录制下所有的pes,但在播放时由于无法正确解析pes,因此也无法正常播放。本发明实施例的音视频数据的录制方法,通过对数据包对应的pid的监控,即使在pid变化的场景下,也可以正常录制及播放。图1是本发明提供的音视频数据的录制方法一实施例的流程图。如图1所示,本实施例的方法,包括:步骤101、监测待录制节目的码流中数据包的包识别符pid是否发生变化;数据包包括音频数据包和/或视频数据包。具体的,本发明实施例中数据包包括音频数据包和/或视频数据包;待录制节目即用户希望录制的音视频节目;待录制节目的码流包括多个数据包。在录制时,监控待录制节目的码流中数据包对应的包识别符pid,得到数据包对应的pid,并监测数据包对应的pid是否发生变化。步骤102、若监测到数据包的pid发生变化,则将已存储的数据包的pid替换为变化后的pid。具体的,若监测到数据包的pid发生变化,则将之前存储的数据包的pid替换为变化后的pid。可选的,在实际应用中,步骤101具体可以通过如下方式实现:监测待录制节目的码流中的节目映射表pmt;pmt中包括数据包的pid;将pmt中数据包的pid,与已存储的数据包的pid进行比较,确定pid是否发生变化。具体的,如图2所示,在录制的过程中可以监控属于待录制节目的pmt,pmt中携带了数据包的pid。将pmt中数据包的pid,与已存储的数据包的pid进行比较,确定pid是否发生变化。其中,步骤101之前,还进行如下操作:根据pmt获取数据包的初始的pid,将初始的pid存储在解复用器demux中。将数据包的初始的pid解析出来,存储在demux中,之后一直监测待录制节目的码流中的节目映射表pmt中的数据包的pid,若发生变化,则将存储的初始的pid替换为变化后的pid,若之后pid再发生变化,则将之前存储的pid再次替换为变化后的pid。可选的,将已存储的数据包的pid替换为变化后的pid,具体包括:将demux中已存储的数据包的pid替换为变化后的pid。步骤103、根据变化后的pid对数据包进行录制,得到录制码流;录制码流中携带节目映射表pmt;pmt中包括数据包的pid。具体的,当pmt中的音频数据包和/或视频数据包的pid发生变化时就停止对原pid对应的数据包的录制,启动对新的pid对应的数据包的录制,在录制的码流中插入pmt,pmt中包括数据包的pid,从而使得在播放时可以根据插入的pmt获知到数据包的pid。示例性的,例如待录制节目的码流中数据包,包括音频数据包和视频数据包,前5分钟的节目的码流中的音频数据包的pid为1,剩余的码流中的音频数据包的pid为10,待录制节目的码流中视频数据包的pid为5。在录制时,demux设备通过监测码流中pmt,得到音频数据包和视频数据包的pid,根据不同的pid获取相应的数据包,得到录制码流,即使相同数据包的pid发生变化,也可以及时的获知到变化后的pid,并根据变化后的pid获取到相应的数据包,从而完成录制。进一步的,可以在录制码流中插入pmt,pmt中包含音频数据包和视频数据包的pid,例如前5分钟的录制码流中携带的pmt中音频数据包的pid为1,剩余的码流中携带pmt中音频数据包的pid为10,录制码流中携带的pmt中视频数据包的pid为5。在播放时,demux设备可以根据录制码流中携带的pmt获知到数据包的pid,根据pid对该录制码流进行播放,即使相同类型数据包的pid发生变化,也可以获知到该类型数据包变化后的pid,并根据变化后的pid正确解析相应的数据包,从而完成播放。本实施例的音视频数据的录制方法,监测待录制节目的码流中数据包的包识别符pid是否发生变化;数据包包括音频数据包和/或视频数据包;若监测到数据包的pid发生变化,则将已存储的数据包的pid替换为变化后的pid;进一步的,根据变化后的pid对数据包进行录制,得到录制码流;由于在录制过程中一直监测监数据包的pid是否发生变化,即使录制过程中pid发生变化,也可以及时获知到变化后的pid,并根据变化后的pid进行录制,能够完成录制,进一步的由于录制码流中携带pmt,pmt中包括数据包的pid,因此在播放时,可以根据录制码流中携带的pmt获知到数据包的pid,根据pid对该录制码流进行播放,即使相同类型数据包的pid发生变化,也可以获知到该类型数据包变化后的pid,并根据变化后的pid正确解析相应的数据包,从而完成播放。在上述实施例的基础上,可选的,上述方法还可以包括如下步骤:若监测到数据包的pid未发生变化,则根据pid对数据包进行录制,并将包括pid的pmt根据预设时间间隔插入到录制码流中。具体的,监测数据包的pid,即可以通过监测pmt实现,若数据包的pid未发生变化,则根据原pid即已存储在demux中的pid进行录制,并将包含该pid的pmt根据预设的时间间隔插入到录制码流中,使得在播放时可以根据插入的pid解析对应的数据包,从而完成录制码流的播放。可选的,根据变化后的pid对数据包进行录制,具体可以通过如下方式实现:根据变化后的pid对数据包进行录制,并将包括变化后的pid的pmt插入到所述录制码流中。具体的,若数据包的pid在某个时刻发生了变化,则根据变化后的pid对剩余的待录制节目的码流中的数据包进行录制,并将包含该变化后的pid的pmt插入到录制码流中,使得在播放时可以根据插入的变化后的pid解析对应的数据包,从而完成录制码流的播放,且能够保证播放的连续性。上述具体实施方式中,通过监测pid的变化,当数据包的pid发生变化时就停止对原pid对应的数据包的录制,启动对新的pid对应的数据包的录制,并且在录制码流中插入包括变化后的pid的pmt,因此在播放时,可以及时的获知到相同类型数据包的pid是否发生变化,并根据变化后的pid正确解析相应的数据包,从而完成播放,从而保证了播放的连续性。在上述实施例的基础上,可选的,本实施例的方法,还包括如下步骤:监测录制码流中的pmt;所述pmt包括所述数据包的pid;根据pid对录制码流进行播放。具体的,监测录制码流中的pmt中包括的数据包的pid是否发生变化;若监测到数据包的pid发生变化,则将已存储的所述数据包的pid替换为变化后的pid;根据变化后的pid对录制码流进行播放。具体可以是替换demux中存储的pid。确定是否变化的方式与录制过程中相同,此处不再赘述。如图3所示,在播放录制文件,注入录制码流,读取录制码流中的节目关联表(programassociationtable,简称pat)(录制时可以插入pat,其中,pat中包括pmtpid以及pmt的表tablepid,通过pat可以找到该节目对应的pmt,然后得到pmt中的pid信息),监控该pat中的pmt,由于录制的时候只在录制码流中插入了属于该待录制节目的pmt表,因此监控属于待录制节目的pmt,可以通过启动多个pmt滤波器实现监控属于待录制节目的pmt,多个pmt滤波器中只有一个能获取到pmt,然后不停地监控该pmt的变化。当该pmt中的音频和/或视频数据包的pid发生变化时,就根据变化后的pid进行播放,从而能在pid变化的那一刻准确的根据新的pid解析数据进行播放,从而保证了播放的连续性。上述具体实施方式中,由于通过监测录制码流中的pmt中的pid,根据pid对录制码流进行播放,即可以及时的获知到数据包的pid,若pid发生变化,则根据变化后的pid正确解析相应的数据包,从而完成播放,从而保证了播放的连续性。图4为本发明提供的音视频数据的录制装置一实施例的结构图,如图4所示,本实施例的音视频数据的录制装置,包括:监测模块401,用于监测待录制节目的码流中数据包的包识别符pid是否发生变化;所述数据包包括音频数据包和/或视频数据包;处理模块402,用于若监测到所述数据包的pid发生变化,则将已存储的所述数据包的pid替换为变化后的pid;录制模块403,用于根据所述变化后的pid对所述数据包进行录制,得到录制码流;所述录制码流中携带节目映射表pmt;所述pmt中包括所述数据包的pid。可选的,监测模块401,具体用于:监测所述待录制节目的码流中的节目映射表pmt;所述pmt中包括所述数据包的pid;将所述pmt中所述数据包的pid,与已存储的所述数据包的pid进行比较,确定所述pid是否发生变化。可选的,所述处理模块402,还用于:根据所述pmt获取所述数据包的初始的pid,将所述初始的pid存储在解复用器demux中;所述处理模块402,具体用于:将所述demux中已存储的所述数据包的pid替换为变化后的pid。可选的,所述录制模块403,还用于:若监测到所述数据包的pid未发生变化,则根据所述pid对所述数据包进行录制,并将包括所述pid的pmt根据预设时间间隔插入到所述录制码流中。可选的,所述录制模块403,还用于:根据所述变化后的pid对所述数据包进行录制,并将包括所述变化后的pid的pmt插入到所述录制码流中。可选的,还包括:播放模块,用于监测所述录制码流中的pmt;所述pmt包括所述数据包的pid;根据所述pid对所述录制码流进行播放。本实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。图5为本发明提供的电子设备实施例的结构图,如图5所示,该电子设备包括:处理器501,以及,用于存储处理器501的可执行指令的存储器502。其中,处理器501配置为经由执行所述可执行指令来执行前述方法实施例中对应的方法,其具体实施过程可以参见前述方法实施例,此处不再赘述。本发明实施例中还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前述方法实施例中对应的方法,其具体实施过程可以参见前述方法实施例,其实现原理和技术效果类似,此处不再赘述。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本发明旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本
技术领域
:中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1