CN108600803A - 多路视频码流的回放方法、装置、终端设备和存储介质 - Google Patents
多路视频码流的回放方法、装置、终端设备和存储介质 Download PDFInfo
- Publication number
- CN108600803A CN108600803A CN201810317565.0A CN201810317565A CN108600803A CN 108600803 A CN108600803 A CN 108600803A CN 201810317565 A CN201810317565 A CN 201810317565A CN 108600803 A CN108600803 A CN 108600803A
- Authority
- CN
- China
- Prior art keywords
- video frame
- video
- channel
- queue
- timestamp
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/414—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
- H04N21/4147—PVR [Personal Video Recorder]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47217—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
Abstract
本发明涉及视频监控技术领域,提出一种多路视频码流的回放方法、装置、终端设备和存储介质。该方法包括:获取网络硬盘录像机各个通道待播放的视频帧,每个视频帧均包含对应的时间戳;将所述视频帧按照时间戳由先至后的顺序排入预设的播放队列;设置定时器,所述定时器的定时时间为所述播放队列中首个视频帧的时间戳与视频回放的基准时间之差;当定时时间到达时,将所述播放队列的首个视频帧移动至对应通道的播放器进行播放;若所述播放队列中仍然存在视频帧,则将所述基准时间更新为所述基准时间和所述定时时间之和,然后返回执行设置定时器的步骤以及后续步骤。本发明只需创建一个线程即可控制多个通道的视频回放,极大地降低了系统资源的消耗。
Description
技术领域
本发明涉及视频监控技术领域,尤其涉及一种多路视频码流的回放方法、装置、终端设备和计算机存储介质。
背景技术
NVR(Network Video Recorder)指网络硬盘录像机,其最主要的功能是通过网络接收各个IPC(网络摄像机)设备传输的数字视频码流,并进行存储、管理,从而实现网络化带来的分布式架构优势。简单来说,通过NVR可以同时观看、浏览、回放、管理、存储多个网络摄像机。
由于NVR需要同时播放多路IPC的数据,故通常的回放控制算法为多线程设计。比如,为每路视频码流通道创建一个播放线程,用于管理该通道的数据并计算帧间隔,通过线程睡眠的方式实现不同通道不同帧率的帧控制。另外,还需要创建一个控制线程用于管理各个通道的播放线程,响应用户的操作,实现功能的灵活扩展。然而,上述多线程的控制方法对系统资源的消耗极大,在资源有限的嵌入式系统中,可能会产生资源不足的问题。
发明内容
有鉴于此,本发明实施例提供了一种多路视频码流的回放方法、装置、终端设备和计算机存储介质,旨在解决现有的多路视频码流的回放控制对系统资源的消耗大的问题。
本发明实施例的第一方面提供了一种多路视频码流的回放方法,包括:
获取网络硬盘录像机各个通道待播放的视频帧,每个视频帧均包含对应的时间戳;
将所述视频帧按照时间戳由先至后的顺序排入预设的播放队列;
设置定时器,所述定时器的定时时间为所述播放队列中首个视频帧的时间戳与视频回放的基准时间之差;
当定时时间到达时,将所述播放队列的首个视频帧移动至对应通道的播放器进行播放;
若所述播放队列中仍然存在视频帧,则将所述基准时间更新为所述基准时间和所述定时时间之和,然后返回执行设置定时器的步骤以及后续步骤。
本发明实施例的第二方面提供了一种多路视频码流的回放装置,包括:
视频帧获取模块,用于获取网络硬盘录像机各个通道待播放的视频帧,每个视频帧均包含对应的时间戳;
视频帧排列模块,用于将所述视频帧按照时间戳由先至后的顺序排入预设的播放队列;
定时器设置模块,用于设置定时器,所述定时器的定时时间为所述播放队列中首个视频帧的时间戳与视频回放的基准时间之差;
视频帧播放模块,用于当定时时间到达时,将所述播放队列的首个视频帧移动至对应通道的播放器进行播放;
基准时间更新模块,用于若所述播放队列中仍然存在视频帧,则将所述基准时间更新为所述基准时间和所述定时时间之和,然后返回执行设置定时器的步骤以及后续步骤。
本发明实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明实施例的第一方面提供的多路视频码流的回放方法的步骤。
本发明实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本发明实施例的第一方面提供的多路视频码流的回放方法的步骤。
本发明实施例提出的多路视频码流的回放方法包括:获取网络硬盘录像机各个通道待播放的视频帧,每个视频帧均包含对应的时间戳;将所述视频帧按照时间戳由先至后的顺序排入预设的播放队列;设置定时器,所述定时器的定时时间为所述播放队列中首个视频帧的时间戳与视频回放的基准时间之差;当定时时间到达时,将所述播放队列的首个视频帧移动至对应通道的播放器进行播放;若所述播放队列中仍然存在视频帧,则将所述基准时间更新为所述基准时间和所述定时时间之和,然后返回执行设置定时器的步骤以及后续步骤。上述过程首先将NVR各个播放通道的待播放视频帧按照时间戳的先后次序排入同一个播放队列,然后通过设置定时器的方式逐个将播放队列中的视频帧移动至对应通道的播放器进行播放。采用这种方式只需创建一个线程即可控制多个通道的视频回放,与现有的多线程控制方法相比,极大地降低了系统资源的消耗。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种多路视频码流的回放方法的第一个实施例的流程图;
图2是本发明实施例提供的一种多路视频码流的回放方法的第二个实施例的流程图;
图3是本发明实施例提供的一种多路视频码流的回放方法的第三个实施例的流程图;
图4是本发明实施例提供的一种多路视频码流的回放装置的一个实施例的结构图;
图5是本发明实施例提供的一种终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
本发明实施例提供了一种多路视频码流的回放方法、装置、终端设备和计算机存储介质,旨在解决现有的多路视频码流的回放控制对系统资源的消耗大的问题。
请参阅图1,本发明实施例中一种多路视频码流的回放方法的第一个实施例包括:
101、获取网络硬盘录像机各个通道待播放的视频帧;
网络硬盘录像机最主要的功能是通过网络接收各个IPC(网络摄像机)设备传输的数字视频码流,并进行存储、管理,从而实现网络化带来的分布式架构优势。一般来说,网络硬盘录像机需要同时回放多路IPC的数据,即多个通道的待播放的视频帧。在步骤101中,获取网络硬盘录像机各个通道待播放的视频帧,每个视频帧均包含对应的时间戳,时间戳标记着视频帧的产生时间。
102、将所述视频帧按照时间戳由先至后的顺序排入预设的播放队列;
在获取到各个通道待播放的视频帧之后,将所述视频帧按照时间戳由先至后的顺序排入预设的播放队列。该播放队列是一种实现多路帧数据控制的关键数据结构,队列中的每个节点可以排入一个视频帧。
本实施例采用的播放队列本质上属于一种优先级队列,优先级队列(priorityqueue)是0个或多个元素的集合,每个元素都有一个优先权,对优先级队列执行的操作包括查找、插入和删除。一般情况下,查找操作用来搜索优先权最大的元素,插入操作用来插入新的元素,删除操作用来删除已有元素。显然,该播放队列采用时间戳作为优先权的判定依据。
103、设置定时器,所述定时器的定时时间为所述播放队列中首个视频帧的时间戳与视频回放的基准时间之差;
当所有待播放的视频帧都按照顺序排入该播放队列后,设置一个定时器,该定时器的定时时间为所述播放队列中首个视频帧的时间戳与视频回放的基准时间之差。该基准时间表示在多通道回放时,当前播放进度的绝对时间,即由用户选择的视频回放的基准时间。当用户设置好基准时间后,时间戳处于基准时间之后的视频帧即成为待播放的视频帧,而时间戳处于基准时间之前的视频帧则不会进行播放。由此可见,所述播放队列中的所有视频帧的时间戳都处于所述基准时间之后。所述播放队列中的首个视频帧是时间戳与基准时间最接近的视频帧,也即应当最先播放的视频帧,假设该视频帧的时间戳PTS=10ms,基准时间Tv=0,则设置定时器的定时时间为PTS-Tv=10ms。
104、当定时时间到达时,将所述播放队列的首个视频帧移动至对应通道的播放器进行播放;
当步骤103中设置的定时器到达定时时间时,将所述播放队列的首个视频帧移动至对应通道的播放器进行播放。也即,若所述播放队列的首个视频帧是通道1的视频帧,则在到达定时时间后,将该视频帧移动至通道1的播放器进行播放;若所述播放队列的首个视频帧是通道2的视频帧,则在到达定时时间后,将该视频帧移动至通道2的播放器进行播放。在播放队列的首个视频帧被移动至播放器后,该播放队列的其它视频帧将按次序往前移动,比如第二个视频帧将移动到首个视频帧的位置,第三个视频帧将移动到第二个视频帧的位置,以此类推。
105、判断所述播放队列中是否仍然存在视频帧;
在将所述播放队列的首个视频帧移动至对应通道的播放器进行播放之后,判断所述播放队列中是否仍然存在视频帧,也即是否已经播放完所有的视频帧。若所述播放队列中仍然存在视频帧,则执行步骤106,否则执行步骤107。
106、将所述基准时间更新为所述基准时间和所述定时时间之和;
所述播放队列中仍然存在视频帧,即还有视频帧需要播放,此时将所述基准时间更新为所述基准时间和所述定时时间之和,也即将基准时间往后调整第一次定时器设置的定时时间。假设刚刚播放的视频帧的时间戳PTS=10ms,原基准时间Tv=0,即定时器的定时时间为PTS-Tv=10ms,则此时将基准时间更新为Tv=Tv+(PTS-Tv)=10ms。在调整完基准时间之后,返回步骤103,重新设置定时器,以执行所述播放队列中下一个视频帧的播放。显然,当重新返回步骤103后,此时所述播放队列中的首个视频帧为原来的第二个视频帧(假设时间戳为15ms),而基准时间则为更新后的10ms,因此重新设置的定时器的定时时间为15ms-10ms=5ms。通过不断重复步骤103-106,直至播放完所述播放队列中的所有视频帧。
107、操作结束。
所述播放队列中不存在视频帧,即已经播放完所有的视频帧,此时结束操作。
本发明实施例提出的多路视频码流的回放方法包括:获取网络硬盘录像机各个通道待播放的视频帧,每个视频帧均包含对应的时间戳;将所述视频帧按照时间戳由先至后的顺序排入预设的播放队列;设置定时器,所述定时器的定时时间为所述播放队列中首个视频帧的时间戳与视频回放的基准时间之差;当定时时间到达时,将所述播放队列的首个视频帧移动至对应通道的播放器进行播放;若所述播放队列中仍然存在视频帧,则将所述基准时间更新为所述基准时间和所述定时时间之和,然后返回执行设置定时器的步骤以及后续步骤。上述过程首先将NVR各个播放通道的待播放视频帧按照时间戳的先后次序排入同一个播放队列,然后通过设置定时器的方式逐个将播放队列中的视频帧移动至对应通道的播放器进行播放。采用这种方式只需创建一个线程即可控制多个通道的视频回放,与现有的多线程控制方法相比,极大地降低了系统资源的消耗。
请参阅图2,本发明实施例中一种多路视频码流的回放方法的第二个实施例包括:
201、获取网络硬盘录像机各个通道待播放的视频帧;
在本发明实施例中,网络硬盘录像机的每个通道分别具有一个播放节点和一个帧数据池,所述播放节点表示对应通道中首个待播放的视频帧,各个通道待播放的视频帧按照时间戳由先至后的顺序分别存放于对应通道的帧数据池中 (也即按照帧索引由小到大的顺序分别存放于对应通道的帧数据池中)。
202、从各个通道的帧数据池中分别提取首个视频帧至对应通道的播放节点;
假设总共有3个通道:通道1、通道2和通道3,则从通道1的帧数据池中提取首个视频帧至通道1的播放节点;从通道2的帧数据池中提取首个视频帧至通道2的播放节点;从通道3的帧数据池中提取首个视频帧至通道3的播放节点,这3个播放节点构成所述播放队列。需要说明的是,这里的首个视频帧是指用户设置的基准时间之后最近的视频帧,该视频帧不一定是该通道的第一个数据帧,即对应的帧索引不一定是1。
203、将所述播放节点按照时间戳由先至后的顺序排入预设的播放队列;
在将首个视频帧提取至对应的播放节点后,将各个所述播放节点按照时间戳由先至后的顺序排入预设的播放队列。比如,若3个播放节点分别为“通道 1,PTS=10ms,帧索引=2”、“通道2,PTS=7ms,帧索引=4”和“通道3, PTS=17,帧索引=1”,则将这3个播放节点按照“通道2,PTS=7ms,帧索引=4”、“通道1,PTS=10ms,帧索引=2”、“通道3,PTS=17,帧索引=1”的顺序排入预设的播放队列。其中,“通道1,PTS=10ms,帧索引=2”表示通道 1的播放节点,该节点中的视频帧为通道1的第2帧数据(帧索引=2),时间戳为10ms,以此类推。
204、设置定时器,所述定时器的定时时间为所述播放队列中首个视频帧的时间戳与视频回放的基准时间之差;
205、当定时时间到达时,将所述播放队列的首个视频帧移动至对应通道的播放器进行播放;
步骤204-205与步骤103-104相同,具体可参照步骤103-104的相关说明。
进一步的,当定时时间到达时,还可以包括:
将所述播放队列中时间戳与所述播放队列的首个视频帧的时间戳的差值小于第一时长的所有视频帧移动至对应通道的播放器进行播放。
所述第一时长可以根据实际需要合理设置,一般为一个较小的值,比如 1ms。假如所述播放队列为“通道1,PTS=10ms,帧索引=2”、“通道2, PTS=10.5ms,帧索引=4”和“通道3,PTS=10.7ms,帧索引=1”,而第一时长为1ms,则在将所述播放队列的首个视频帧(“通道1,PTS=10ms,帧索引=2”) 移动至通道1的播放器进行播放时,还可以同时将视频帧“通道2,PTS=10.5ms,帧索引=4”移动至通道2的播放器进行播放,以及将视频帧“通道3, PTS=10.7ms,帧索引=1”移动至通道3的播放器进行播放。通过这样设置,能够减少定时器的设置次数,从而进一步降低系统负担。
206、确定播放的视频帧所对应的目标通道;
在将所述播放队列的首个视频帧移动至对应通道的播放器进行播放后,确定播放的视频帧所对应的目标通道,也即确定刚才播放的视频帧属于哪个通道。
207、从所述目标通道的帧数据池中提取首个视频帧至所述目标通道的播放节点;
在确定目标通道后,从所述目标通道的帧数据池中提取首个视频帧至所述目标通道的播放节点。在视频帧播放后,对应的播放节点就会空出来,此时从对应通道的帧数据池中提取首个视频帧至该播放节点。比如,刚才播放的是“通道1,PTS=10ms,帧索引=2”,通道1的帧数据池中存放的视频帧依次为:“通道1,PTS=50ms,帧索引=3”、“通道1,PTS=90ms,帧索引=4”…,则将视频帧“通道1,PTS=50ms,帧索引=3”提取至通道1的播放节点。
另外,所述目标通道可能为多个,比如同时播放了通道1和通道2的视频帧,此时则从通道1的帧数据池中提取首个视频帧至播放节点1,从通道2的帧数据池中提取首个视频帧至播放节点2,以此类推。
208、将所述播放队列中的播放节点按照时间戳由先至后的顺序排列;
虽然在步骤203中已经将播放节点按照时间戳的先后顺序排列,但由于在步骤207中已经提取了新的视频帧至播放队列中,即顺序可能已经被打乱,因此需要将播放节点重新按照时间戳由先至后的顺序进行排列。
209、判断所述播放队列中是否仍然存在视频帧;
判断所述播放队列中是否仍然存在视频帧,也即是否已经播放完所有通道的帧数据池中的所有视频帧。若所述播放队列中仍然存在视频帧,则执行步骤 210,否则直接执行步骤211。
210、将所述基准时间更新为所述基准时间和所述定时时间之和;
所述播放队列中仍然存在视频帧,即还有视频帧需要播放,此时将所述基准时间更新为所述基准时间和所述定时时间之和,然后返回执行步骤204,更具体的说明请参照步骤106。
211、操作结束。
所述播放队列中不存在视频帧,即已经播放完所有的视频帧,此时结束操作。
与本发明的第一个实施例相比,本实施例由各个播放通道的播放节点构成播放队列,当播放节点中的数据帧被移动至播放器播放后,会重新从对应的帧数据池中提取下一帧视频帧至该播放节点,从而实现多路视频帧的有序播放,该控制算法实现的复杂度低,框架合理,可以在其基础上扩展各式回放的功能。
请参阅图3,本发明实施例中一种多路视频码流的回放方法的第三个实施例包括:
301、获取网络硬盘录像机各个通道待播放的视频帧;
302、将所述视频帧按照时间戳由先至后的顺序排入预设的播放队列;
步骤301-302与步骤101-102相同,具体可参照步骤101-102的相关说明。
303、判断所述播放队列中首个视频帧的时间戳与视频回放的基准时间之差是否大于第二时长;
在将所述视频帧按照时间戳由先至后的顺序排入预设的播放队列之后,判断所述播放队列中首个视频帧的时间戳与视频回放的基准时间之差是否大于第二时长。这里的第二时长是预设的一个阈值,表示定时器的最大定时时间。若所述播放队列中首个视频帧的时间戳与视频回放的基准时间之差大于第二时长,则执行步骤304-305;否则直接执行步骤306。
304、设置定时时间为所述第二时长的定时器;
305、当第二时长的定时时间到达时,将所述基准时间更新为所述基准时间和所述第二时长之和;
在步骤304-305中,设置一个定时时间为第二时长的定时器,当到达定时时间后,将所述基准时间更新为所述基准时间和所述第二时长之和,然后返回步骤303,重新判断首个视频帧的时间戳与视频回放的基准时间之差是否大于第二时长。比如,所述播放队列中首个视频帧的时间戳是250ms,视频回放的基准时间为0,所述第二时长设置为100ms,则所述播放队列中首个视频帧的时间戳与视频回放的基准时间之差250ms-0=250ms>100ms,此时设置定时时间为100ms的定时器,当100ms过后,将基准时间更新为基准时间和第二时长之和,即0+100ms=100ms。接着返回步骤303重新计算时间戳与基准时间的差,此时该差值为250ms-100ms=150ms,仍然大于100ms,因此再更新一次基准时间为100ms+100ms=200ms,然后再次返回步骤303。同样地,再计算一次时间戳与基准时间的差,此时为250ms-200ms=50ms,小于100ms,则转至执行步骤 306。
由于本方案的控制算法是单线程的算法,因此在定时器计时的时候系统将无法响应用户的操作指令。而通过上述步骤303-305,能够限制定时器的最大定时时间,从而可以避免设置一个超长定时时间的定时器,导致长时间无法响应用户操作的问题。
306、设置定时器,所述定时器的定时时间为所述播放队列中首个视频帧的时间戳与视频回放的基准时间之差;
步骤306与步骤103相同,具体可参照步骤103的相关说明。
进一步的,在设置定时器之后,还可以包括:
(1)获取视频的播放参数;
(2)根据所述播放参数调整所述定时器的定时时间。
视频的播放参数可以包括快放和慢放等操作,在获取到播放参数后,可以根据所述播放参数调整所述定时器的定时时间。比如,若接收到快放2倍的操作,则将定时时间调整为原来的一半;若接收到慢放2倍的操作,则将定时时间调整为原来的2倍。
307、当定时时间到达时,记录第一时间点,并将所述播放队列的首个视频帧移动至对应通道的播放器进行播放;
308、在将所述播放队列的首个视频帧移动至对应通道的播放器进行播放后,记录第二时间点;
步骤307-308与步骤104之间的区别在于,步骤307-308会记录两个时间点,第一个是定时时间到达的时间点,第二个是首个视频帧被移动至播放器后的时间点。需要指出的是,若应用于本发明的第二个实施例,则该第二时间点可设置为:在首个视频帧播放后,重新调整播放队列的排序后的时间点。
309、判断所述播放队列中是否仍然存在视频帧;
若所述播放队列中仍然存在视频帧,则执行步骤310-311,否则直接执行步骤312。
310、将所述第二时间点减去所述第一时间点,得到补偿时间;
311、将所述基准时间更新为所述基准时间、所述定时时间和所述补偿时间之和,然后返回执行步骤306;
所述播放队列中仍然存在视频帧,即还有视频帧需要播放,此时将所述第二时间点减去所述第一时间点,得到补偿时间,然后将所述基准时间更新为所述基准时间、所述定时时间和所述补偿时间之和,接着返回执行步骤306。假设刚刚播放的视频帧的时间戳PTS=10ms,原基准时间Tv=0,即定时器的定时时间为PTS-Tv=10ms,所述第一时间点为10ms,所述第二时间点为12ms,则补偿时间t为12ms-10ms=2ms,此时将基准时间更新为Tv=Tv+(PTS-Tv) +t=12ms。在调整完基准时间之后,返回步骤306,重新设置定时器,以执行所述播放队列中下一个视频帧的播放。显然,当重新返回步骤306后,此时所述播放队列中的首个视频帧为原来的第二个视频帧(假设时间戳为15ms),而基准时间则为更新后的12ms,因此重新设置的定时器的定时时间为 15ms-12ms=3ms。通过不断重复步骤306-311,直至播放完所述播放队列中的所有视频帧。
上述设置补偿时间的目的在于提升定时的准确性,在执行定时器到时后的操作时,如播放和调整播放队列,需要统计操作的耗时,然后在下一轮的定时器设置中进行时间补偿,否则在长时间播放时会导致时间误差的累积。尽管每次系统执行播放的时间极短,但在长时间播放下,仍有可能累积成比较可观的误差。
312、操作结束。
所述播放队列中不存在视频帧,即已经播放完所有的视频帧,此时结束操作。
与本发明的第一个实施例相比,本实施例一方面设置了定时器的最大定时时间限制,能够避免设置超长定时时间的定时器,导致长时间无法响应用户操作的问题;另一方面还设置了时间补偿的机制,能够统计上一轮操作的耗时,然后在下一轮的定时器设置中进行时间的补偿,从而有效提高定时的准确性。
应理解,上述各个实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
上面主要描述了一种多路视频码流的回放方法,下面将对一种多路视频码流的回放装置进行描述。
请参阅图4,本发明实施例中一种多路视频码流的回放装置的一个实施例包括:
视频帧获取模块401,用于获取网络硬盘录像机各个通道待播放的视频帧,每个视频帧均包含对应的时间戳;
视频帧排列模块402,用于将所述视频帧按照时间戳由先至后的顺序排入预设的播放队列;
定时器设置模块403,用于设置定时器,所述定时器的定时时间为所述播放队列中首个视频帧的时间戳与视频回放的基准时间之差;
视频帧播放模块404,用于当定时时间到达时,将所述播放队列的首个视频帧移动至对应通道的播放器进行播放;
基准时间更新模块405,用于若所述播放队列中仍然存在视频帧,则将所述基准时间更新为所述基准时间和所述定时时间之和,然后返回执行设置定时器的步骤以及后续步骤。
进一步的,所述多路视频码流的回放装置还可以包括:
第一时间点记录模块,用于当定时时间到达时,记录第一时间点;
第二时间点记录模块,用于在将所述播放队列的首个视频帧移动至对应通道的播放器进行播放后,记录第二时间点;
补偿时间计算模块,用于将所述第二时间点减去所述第一时间点,得到补偿时间;
所述基准时间更新模块具体可以用于:若所述播放队列中仍然存在视频帧,则将所述基准时间更新为所述基准时间、所述定时时间和所述补偿时间之和,然后返回执行设置定时器的步骤以及后续步骤。
本发明实施例还提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如图1至图3表示的任意一种多路视频码流的回放方法的步骤。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如图1至图3表示的任意一种多路视频码流的回放方法的步骤。
图5是本发明一实施例提供的终端设备的示意图。如图5所示,该实施例的终端设备5包括:处理器50、存储器51以及存储在所述存储器51中并可在所述处理器50上运行的计算机程序52。所述处理器50执行所述计算机程序52 时实现上述各个多路视频码流的回放方法的实施例中的步骤,例如图1所示的步骤101至107。或者,所述处理器50执行所述计算机程序52时实现上述各装置实施例中各模块/单元的功能,例如图4所示模块401至405的功能。
所述计算机程序52可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器51中,并由所述处理器50执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序52在所述终端设备5中的执行过程。
所述终端设备5可以是各种类型的手机、桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是终端设备5的示例,并不构成对终端设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备5还可以包括输入输出设备、网络接入设备、总线等。
所称处理器50可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器51可以是所述终端设备5的内部存储单元,例如终端设备5 的硬盘或内存。所述存储器51也可以是所述终端设备5的外部存储设备,例如所述终端设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器51还可以既包括所述终端设备5的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种多路视频码流的回放方法,其特征在于,包括:
获取网络硬盘录像机各个通道待播放的视频帧,每个视频帧均包含对应的时间戳;
将所述视频帧按照时间戳由先至后的顺序排入预设的播放队列;
设置定时器,所述定时器的定时时间为所述播放队列中首个视频帧的时间戳与视频回放的基准时间之差;
当定时时间到达时,将所述播放队列的首个视频帧移动至对应通道的播放器进行播放;
若所述播放队列中仍然存在视频帧,则将所述基准时间更新为所述基准时间和所述定时时间之和,然后返回执行设置定时器的步骤以及后续步骤。
2.如权利要求1所述的多路视频码流的回放方法,其特征在于,每个通道分别具有一个播放节点和一个帧数据池,所述播放节点表示对应通道中首个待播放的视频帧,各个通道待播放的视频帧按照时间戳由先至后的顺序分别存放于对应通道的帧数据池中;
所述将所述视频帧按照时间戳由先至后的顺序排入预设的播放队列包括:
从各个通道的帧数据池中分别提取首个视频帧至对应通道的播放节点;
将所述播放节点按照时间戳由先至后的顺序排入预设的播放队列;
在将所述播放队列的首个视频帧移动至对应通道的播放器进行播放之后,还包括:
确定播放的视频帧所对应的目标通道;
从所述目标通道的帧数据池中提取首个视频帧至所述目标通道的播放节点;
将所述播放队列中的播放节点按照时间戳由先至后的顺序排列。
3.如权利要求2所述的多路视频码流的回放方法,其特征在于,当定时时间到达时,还包括:
将所述播放队列中时间戳与所述播放队列的首个视频帧的时间戳的差值小于第一时长的所有视频帧移动至对应通道的播放器进行播放。
4.如权利要求1所述的多路视频码流的回放方法,其特征在于,在设置定时器之前,还包括:
判断所述播放队列中首个视频帧的时间戳与视频回放的基准时间之差是否大于第二时长;
若所述播放队列中首个视频帧的时间戳与视频回放的基准时间之差大于第二时长,则设置定时时间为所述第二时长的定时器,当第二时长的定时时间到达时,将所述基准时间更新为所述基准时间和所述第二时长之和,然后返回判断所述播放队列中首个视频帧的时间戳与视频回放的基准时间之差是否大于第二时长的步骤;
若所述播放队列中首个视频帧的时间戳与视频回放的基准时间之差小于或等于第二时长,则执行设置定时器,所述定时器的定时时间为所述播放队列中首个视频帧的时间戳与视频回放的基准时间之差的步骤。
5.如权利要求1所述的多路视频码流的回放方法,其特征在于,在设置定时器之后,还包括:
获取视频的播放参数;
根据所述播放参数调整所述定时器的定时时间。
6.如权利要求1至5中任一项所述的多路视频码流的回放方法,其特征在于,还包括:
当定时时间到达时,记录第一时间点;
在将所述播放队列的首个视频帧移动至对应通道的播放器进行播放后,记录第二时间点;
将所述第二时间点减去所述第一时间点,得到补偿时间;
所述将所述基准时间更新为所述基准时间和所述定时时间之和具体为:
将所述基准时间更新为所述基准时间、所述定时时间和所述补偿时间之和。
7.一种多路视频码流的回放装置,其特征在于,包括:
视频帧获取模块,用于获取网络硬盘录像机各个通道待播放的视频帧,每个视频帧均包含对应的时间戳;
视频帧排列模块,用于将所述视频帧按照时间戳由先至后的顺序排入预设的播放队列;
定时器设置模块,用于设置定时器,所述定时器的定时时间为所述播放队列中首个视频帧的时间戳与视频回放的基准时间之差;
视频帧播放模块,用于当定时时间到达时,将所述播放队列的首个视频帧移动至对应通道的播放器进行播放;
基准时间更新模块,用于若所述播放队列中仍然存在视频帧,则将所述基准时间更新为所述基准时间和所述定时时间之和,然后返回执行设置定时器的步骤以及后续步骤。
8.如权利要求7所述的多路视频码流的回放装置,其特征在于,还包括:
第一时间点记录模块,用于当定时时间到达时,记录第一时间点;
第二时间点记录模块,用于在将所述播放队列的首个视频帧移动至对应通道的播放器进行播放后,记录第二时间点;
补偿时间计算模块,用于将所述第二时间点减去所述第一时间点,得到补偿时间;
所述基准时间更新模块具体用于:若所述播放队列中仍然存在视频帧,则将所述基准时间更新为所述基准时间、所述定时时间和所述补偿时间之和,然后返回执行设置定时器的步骤以及后续步骤。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6中任一项所述的多路视频码流的回放方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的多路视频码流的回放方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810317565.0A CN108600803B (zh) | 2018-04-10 | 2018-04-10 | 多路视频码流的回放方法、装置、终端设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810317565.0A CN108600803B (zh) | 2018-04-10 | 2018-04-10 | 多路视频码流的回放方法、装置、终端设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108600803A true CN108600803A (zh) | 2018-09-28 |
CN108600803B CN108600803B (zh) | 2020-07-31 |
Family
ID=63621777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810317565.0A Active CN108600803B (zh) | 2018-04-10 | 2018-04-10 | 多路视频码流的回放方法、装置、终端设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108600803B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109739607A (zh) * | 2018-12-29 | 2019-05-10 | 深圳乐信软件技术有限公司 | 动态图像加载方法、装置、设备及存储介质 |
CN110581973A (zh) * | 2019-09-30 | 2019-12-17 | 普联技术有限公司 | 数据回放方法、装置、终端设备及存储介质 |
CN111432283A (zh) * | 2019-11-27 | 2020-07-17 | 杭州海康威视数字技术股份有限公司 | 一种视频回放的时间确定方法及装置 |
CN111447475A (zh) * | 2020-03-27 | 2020-07-24 | 四川长虹电器股份有限公司 | 基于数字机顶盒的多路pvr控制系统及录制、回放方法 |
CN111726458A (zh) * | 2020-06-05 | 2020-09-29 | 北方工业大学 | 在干扰消失后手机控制回放视频流完整且按时播放的方法 |
CN112153443A (zh) * | 2020-09-01 | 2020-12-29 | 青岛海信传媒网络技术有限公司 | Pts获取方法和显示设备 |
CN112423072A (zh) * | 2020-09-02 | 2021-02-26 | 上海幻电信息科技有限公司 | 直播场景下的视频推送方法及系统 |
CN112579240A (zh) * | 2020-12-22 | 2021-03-30 | 南京凯瑞得信息科技有限公司 | 一种基于文件分割的卫星轨道无卡顿演示方法 |
CN115665483A (zh) * | 2022-12-27 | 2023-01-31 | 北京蓝色星际科技股份有限公司 | 一种录像播放方法、装置和硬盘录像机 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013211793A (ja) * | 2012-03-30 | 2013-10-10 | Nikon Corp | 画像再生装置および画像再生プログラム |
CN103702013A (zh) * | 2013-11-28 | 2014-04-02 | 北京航空航天大学 | 一种用于多路实时视频的帧同步方法 |
CN104333764A (zh) * | 2013-07-22 | 2015-02-04 | 安凯(广州)微电子技术有限公司 | 一种多路视频播放方法及装置 |
CN105847709A (zh) * | 2016-03-30 | 2016-08-10 | 乐视控股(北京)有限公司 | 云导播台以及多路视频拼接方法 |
CN106851044A (zh) * | 2016-12-13 | 2017-06-13 | 深圳英飞拓科技股份有限公司 | 一种视频同步回放方法及装置 |
-
2018
- 2018-04-10 CN CN201810317565.0A patent/CN108600803B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013211793A (ja) * | 2012-03-30 | 2013-10-10 | Nikon Corp | 画像再生装置および画像再生プログラム |
CN104333764A (zh) * | 2013-07-22 | 2015-02-04 | 安凯(广州)微电子技术有限公司 | 一种多路视频播放方法及装置 |
CN103702013A (zh) * | 2013-11-28 | 2014-04-02 | 北京航空航天大学 | 一种用于多路实时视频的帧同步方法 |
CN105847709A (zh) * | 2016-03-30 | 2016-08-10 | 乐视控股(北京)有限公司 | 云导播台以及多路视频拼接方法 |
CN106851044A (zh) * | 2016-12-13 | 2017-06-13 | 深圳英飞拓科技股份有限公司 | 一种视频同步回放方法及装置 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109739607B (zh) * | 2018-12-29 | 2021-11-09 | 深圳乐信软件技术有限公司 | 动态图像加载方法、装置、设备及存储介质 |
CN109739607A (zh) * | 2018-12-29 | 2019-05-10 | 深圳乐信软件技术有限公司 | 动态图像加载方法、装置、设备及存储介质 |
CN110581973A (zh) * | 2019-09-30 | 2019-12-17 | 普联技术有限公司 | 数据回放方法、装置、终端设备及存储介质 |
CN110581973B (zh) * | 2019-09-30 | 2022-02-15 | 普联技术有限公司 | 数据回放方法、装置、终端设备及存储介质 |
CN111432283A (zh) * | 2019-11-27 | 2020-07-17 | 杭州海康威视数字技术股份有限公司 | 一种视频回放的时间确定方法及装置 |
CN111432283B (zh) * | 2019-11-27 | 2022-04-05 | 杭州海康威视数字技术股份有限公司 | 一种视频回放的时间确定方法及装置 |
CN111447475A (zh) * | 2020-03-27 | 2020-07-24 | 四川长虹电器股份有限公司 | 基于数字机顶盒的多路pvr控制系统及录制、回放方法 |
CN111726458A (zh) * | 2020-06-05 | 2020-09-29 | 北方工业大学 | 在干扰消失后手机控制回放视频流完整且按时播放的方法 |
CN112153443A (zh) * | 2020-09-01 | 2020-12-29 | 青岛海信传媒网络技术有限公司 | Pts获取方法和显示设备 |
CN112153443B (zh) * | 2020-09-01 | 2022-02-22 | 青岛海信传媒网络技术有限公司 | Pts获取方法和显示设备 |
CN112423072A (zh) * | 2020-09-02 | 2021-02-26 | 上海幻电信息科技有限公司 | 直播场景下的视频推送方法及系统 |
CN112579240A (zh) * | 2020-12-22 | 2021-03-30 | 南京凯瑞得信息科技有限公司 | 一种基于文件分割的卫星轨道无卡顿演示方法 |
CN115665483A (zh) * | 2022-12-27 | 2023-01-31 | 北京蓝色星际科技股份有限公司 | 一种录像播放方法、装置和硬盘录像机 |
CN115665483B (zh) * | 2022-12-27 | 2023-03-31 | 北京蓝色星际科技股份有限公司 | 一种录像播放方法、装置和硬盘录像机 |
Also Published As
Publication number | Publication date |
---|---|
CN108600803B (zh) | 2020-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108600803A (zh) | 多路视频码流的回放方法、装置、终端设备和存储介质 | |
CN104866366B (zh) | 应用程序清理方法及装置 | |
CN106851044B (zh) | 一种视频同步回放方法及装置 | |
CN112114975B (zh) | 处理器频率的调整方法、装置、存储介质及电子设备 | |
US20200225995A1 (en) | Application cleaning method, storage medium and electronic device | |
CN104053227A (zh) | 一种用于锚主设备选择的方法和设备 | |
CN107104992A (zh) | 一种视频云存储的存储资源分配方法和装置 | |
CN101676890B (zh) | 一种动态调整带宽分配的总线仲裁方法及仲裁器 | |
CN106130972B (zh) | 资源访问控制方法和装置 | |
CN106776036A (zh) | 一种资源分配方法及装置 | |
CN103518377A (zh) | 更新接收设备中的数据库的方法和装置 | |
CN108076117A (zh) | 一种数据下载方法及用户终端 | |
US11422831B2 (en) | Application cleaning method, storage medium and electronic device | |
CN104915431B (zh) | 一种数据存储方法及系统 | |
CN115529232A (zh) | 汇聚分流设备的管控方法、装置及存储介质 | |
CN108234293A (zh) | 表情管理方法、表情管理装置及智能终端 | |
CN112069195A (zh) | 基于数据库的消息传输方法、装置、电子设备及存储介质 | |
CN108304303A (zh) | 一种统计帧同步服务器的脚本运行性能的方法和系统 | |
CN109240899A (zh) | 信息获取方法和装置 | |
CN109274815A (zh) | 程序运行控制方法、装置、可读存储介质及移动终端 | |
CN111031233B (zh) | 一种数字图像处理帧率控制方法及装置 | |
CN110399095A (zh) | 一种存储空间的统计方法和装置 | |
CN109240642A (zh) | 一种终端设备的音量调整方法、装置及终端设备 | |
CN112997539B (zh) | 应用分组调整方法、装置、存储介质及电子设备 | |
CN108377162A (zh) | 天线控制方法、装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |