一种基于浏览器的多通道视频同步播放方法、系统及介质与流程

文档序号:26484713发布日期:2021-08-31 17:40阅读:341来源:国知局
一种基于浏览器的多通道视频同步播放方法、系统及介质与流程

本发明涉及视频播放技术领域,尤其涉及一种基于浏览器的多通道视频同步播放方法、系统及介质。



背景技术:

随着社会经济的高速发展,在商用车视频监控方面,对主动安全的需求越发突出,主动安全主要围绕及时提醒以及视频证据采集展开。证据采集涉及到多路通道视频,车载终端设备产生报警时,传输多通道视频到平台,可通过web页面同步播放各通道视频,方便查看报警时间前后发生的事件情况。

但是,一方面由于web技术html5语言中的video对象没有多通道视频通过绝对时间戳同步播放的机制,因此一旦各个通道的mp4视频的开始时间不一样时,则无法达到多通道同步播放的效果;另一方面市场上部分车载终端设备已采用h265视频编码格式,但是web技术html5语言中的video对象不支持播放h265编码格式的mp4视频。



技术实现要素:

本发明的目的在于提供一种基于浏览器的多通道视频同步播放方法、系统及介质,通过对视频流的编码格式转换,在将转换后的多通道视频流,采用在无视频阶段增加默认帧方式,实现了对在web浏览器中多通道视频进行同时播放。

本发明通过下述技术方案实现:

一种基于浏览器的多通道视频同步播放方法,同步方法步骤包括:

s1:获取多路通道的视频流,选择任意一个视频流,检测该视频流的编码格式是否为h264编码格式,若是,则输出视频流,否则,将该视频流的格式转换为h264编码格式的视频流文件进行输出,直到对所有视频流遍历完成,输出h264编码格式的第一视频流文件;

s2:在所述第一视频流文件中,读取每路通道视频流的第一个时间戳,并将每路通道读取的第一个时间戳做比较,选取最早的时间戳作为多通道同步播放开始时间st;

s3:在所述第一视频流文件中,读取每路通道视频流的最后一个时间戳,并将每路通道读取的最后一个时间戳做比较,选取最晚的时间戳作为多通道同步播放结束时间et;

s4:基于时间戳st,同时逐秒读取第一视频流文件中每路通道的视频流,若读取的过程中,只要其中一个通道有视频流,则为其他无视频的通道补充默认帧;若所有通道都没有视频流,则不补充默认帧,直到读取到时间戳为et时结束,获得第二视频流文件,所述第二视频流文件为每个通道中,以时间戳st作为开始时间,以时间戳et作为结束时间的视频流;

s5:通过开源计算机程序将所述第二视频流文件封装到mp4文件中,并在web浏览器上实现对多路通道的视频进行同步播放。

传统地对多通道视频进行播放的时候,采用的对多通道的视频按着先后顺序进行一起播放的方法,采用这种方法对多通道视频进行播放的时候,多通道视频播放的时间戳不同步,当某个通道播放到第二个文件,则无法选点播放到第一个文件,除非重新开始播放;或采用多通道视频合为一个视频进行播放,但是采用这种播放方法,无法实现单通道全屏播放以及无法对通道的音频进行切换;本发明提供了一种基于浏览器的多通道视频同步播放方法及系统,通过对视频流的编码格式转换,在将转换后的多通道视频流,采用在无视频阶段增加默认帧方式,实现了在浏览器上对多通道视频在时间戳上进行同步播放,同时保证了各个通道对视频播放的独立性。

优选地,所述第一视频流与所述第二视频流均包括帧头数据、扩展数据以及音视频数据,所述帧头数据包括帧类型、扩展数据长度以及音视频数据长度,所述扩展数据包括时间戳以及视频流的编码格式。

优选地,所述步骤s1中,视频流的编码格式包括h265编码格式与h264编码格式,且通过开源计算机程序将h265编码格式的视频流转换为h264编码格式的视频流进行输出,将输出的视频流作为第二视频流文件。

优选地,所述步骤s4的子步骤包括:

同时对多路通道的视频按照时间线进行读取,当读取到任意一个通道中存在任意一个时间戳存在视频流时,则在该时间戳相对应的无视频通道中,添加对应时间段的默认帧;当读取到所有的通道都无视频流的时候,对没有视频流的时间段不做任何处理;直到读取到时间戳为et的视频流,将在对应时间戳上的无视频通道中,添加该时间段的默认帧,添加完成之后输出第二视频流文件。

优选地,所述默认帧为在该时间段内插入的默认画面,所述默认画面为黑屏画面。

优选地,所述第二视频流包括h264视频帧以及音频帧。

本发明还公开了一种基于浏览器的多通道视频同步播放系统,同步系统包括:

格式转换模块,用于获取多路通道的视频流,选择任意一个视频流,检测该视频流的编码格式是否为h264编码格式,若是,则输出视频流,否则,将该视频流的格式转换为h264编码格式的视频流文件进行输出,直到对所有视频流遍历完成,输出h264编码格式的第一视频流文件;

第一分析模块,用于在所述第一视频流文件中,读取每路通道视频流的第一个时间戳,并将每路通道读取的第一个时间戳做比较,选取最早的时间戳作为多通道同步播放开始时间st;

第二分析模块,用于在所述第一视频流文件中,读取每路通道视频流的最后一个时间戳,并将每路通道读取的最后一个时间戳做比较,选取最晚的时间戳作为多通道同步播放开始时间et;

视频帧添加模块,用于基于时间戳st,同时逐秒读取第一视频流文件中的通道视频,若读取的过程中,只要其中一个通道有视频,则为无视频的其他通道补充默认帧;若所有通道都没有视频,则不补充默认帧,直到时间戳为et时结束,获得第二视频流文件,所述第二视频流文件为每个通道中,以时间戳st作为开始时间,以时间戳et作为结束时间的视频流;

封装播放模块,用于通过开源计算机程序将所述第二视频流文件封装到mp4文件中,并在web浏览器上实现对多路通道的视频进行同时播放。

本发明还公开一种计算机存储的介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如上所述的基于浏览器的多通道视频同步方法。

本发明与现有技术相比,具有如下的优点和有益效果:

1、采用本发明提供的一种基于浏览器的多通道视频同步播放方法、系统及介质,通过将各个通道内的时间戳进行统一调整,保证了各个通道视频的开始时间或者中间间隔时间的一致性,且实现了通过浏览器对多通道视频进行同步播放;

2、采用本发明提供的一种基于浏览器的多通道视频同步播放方法、系统及介质,将h265编码格式的视频流转换为h264编码格式的视频流,在将转换之后的视频流封装为mp4的格式,实现了在web浏览器上对h265编码格式视频流进行播放。

附图说明

此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:

图1为同步方法示意图

图2为同步系统的示意图

图3为两个通道的视频流同步示意图

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。

实施例一

本实施例公开了一种基于浏览器的多通道视频同步播放方法,如图1所示,本实施例方法是使用在商用的车视频的监控方法,但对同步方法不限制于在商用的车载视频上进行使用,其多通道视频的同步方法步骤包括:

s1:获取多路通道的视频流,选择任意一个视频流,检测该视频流的编码格式是否为h264编码格式,若是,则输出视频流,否则,将该视频流的格式转换为h264编码格式的视频流文件进行输出,直到对所有视频流遍历完成,输出h264编码格式的第一视频流文件;

获取的多路通道视频是通过在商用的车载设备产生报警的情况的时候,就需要将车载设备中,处于报警时间段内的多个通道的视频流仅传输,并对多个通道的视频流进行数据处理,在接收到传输过来的多个通道的视频流中,需要对每个通道的视频流的编码格式进行检测,当检测当视频流的编码格式为h265时,就需要将h265编码格式的视频流在开源计算机程序ffmpeg转换为h264编码格式的视频流进行输出,当检测到的视频流的编码格式为h264时,直接将视频流进行输出,即最终每个通道输出的视频流的编码格式均为h264编码格式,并将经过数据处理之后得到的h264编码格式视频流作为第一视频流文件,并在之后的步骤中进行使用。

所述第一视频流与所述第二视频流均包括帧头数据、扩展数据以及音视频数据,帧类型包括但不限于:i帧为x2dc,p帧为x3dc,音频帧为x4dc;所述帧头数据包括帧类型、扩展数据长度以及音视频数据长度,所述扩展数据包括时间戳以及视频流的编码格式,时间戳是按照年月日时分秒获得的时间戳,视频的编码格式包括h264编码格式的视频流以及h265编码格式的视频流。

s2:在所述第一视频流文件中,读取每路通道视频流的第一个时间戳,并将每路通道读取的第一个时间戳做比较,选取最早的时间戳作为多通道同步播放开始时间st;

对多个通道中,首先出现的第一个视频流文件中的时间戳进行标记,作为整个第一视频流文件中,视频流第一时间的出现时间。

s3:在所述第一视频流文件中,读取每路通道视频流的最后一个时间戳,并将每路通道读取的最后一个时间戳做比较,选取最晚的时间戳作为多通道同步播放结束时间et;

对多个通道中,将最后出现的第一个视频流文件中的时间戳进行标记,作为整个第一视频流文件中,视频流最后的结束时间。

s4:基于时间戳st,同时逐秒读取第一视频流文件中每路通道的视频流,若读取的过程中,只要其中一个通道有视频流,则为其他无视频的通道补充默认帧;若所有通道都没有视频流,则不补充默认帧,直到读取到时间戳为et时结束,获得第二视频流文件,所述第二视频流文件为每个通道中,以时间戳st作为开始时间,以时间戳et作为结束时间的视频流;

基于时间戳st到时间戳et之间的时间段,在任何一个时间段内,只要任意一个通道存在视频流,就需要将其他没有视频流的通道,在对应的时间段内,添加相对应的时间戳,且使得在这个时间戳的时间段内,所有通道都存在相同时间段的视频流,若在某一个时间段内,任何通道都没有视频流出现,则对该时间段内的任何通道不做处理,直到将从时间戳st到时间戳et之间所有的时间段内的视频流检测完毕,并对相应通道相应时间段增加默认帧,获得第二视频流文件进行输出。

步骤s4的子步骤包括:

同时对多路通道的视频按照时间线进行读取,当读取到任意一个通道中存在任意一个时间戳存在视频流时,则在该时间戳相对应的无视频通道中,添加对应时间段的默认帧;当读取到所有的通道都无视频流的时候,对没有视频流的时间段不做任何处理;直到读取到时间戳为et的视频流,将在对应时间戳上的无视频通道中,添加该时间段的默认帧,添加完成之后输出第二视频流文件。

当存在的通道为两个通道的时候,如图3所示,其两个通道视频的同步过程为:

a.通道2的开始时间比通道1的开始时间早,故通道2的开始时间作为多通道同步播放的开始时间st;

b.通道1的结束时间比通道2的结束时间晚,故通道1的结束时间作为多通道同步播放的结束时间et;

c.创建第1通道视频的临时文件f1-1,创建第1通道视频的临时文件f2-1;

d.读取第1通道的文件f1,查找第st帧数据,发现第1通道第st帧不存在,故在文件f1-1末尾存入默认帧,默认帧只有时间戳;

e.读取第2通道的文件f2,查找第st帧数据,发现2通道第st帧存在,故拷贝第2通道的第st帧完整数据,并存入文件f2-1末尾;

f.如果发现文件f1和f2都不存在st+x帧,则f1-1和f2-1不存入默认帧;

g.重复第d步到第f步,直到f1-1和f2-1存入第et帧;

h.删除文件f1和f2,重命名文件f1-1为f1,重命名文件f2-1为f2,并将最后获得的视频流文件作为第二视频流文件进行输出。

所述默认帧为在该时间段内插入的默认画面,所述默认画面为黑屏画面。

s5:通过开源计算机程序将所述第二视频流文件封装到mp4文件中,并在web浏览器上实现对多路通道的视频进行同步播放。

第二视频流文件中,包括视频帧和音频帧,需要将两个不同类别的帧分别封装到mp4文件中进行保存,且因为封装之后的视频与音频的时间戳是同步的,可以在web浏览器上进行同时播放。

综上,采用本实施例提供的一种基于浏览器的多通道视频同步播放方法,保证了各个通道视频的开始时间或者中间间隔时间的一致性,且实现了通过浏览器对多通道视频进行同步播放,在将转换之后的视频流封装为mp4的格式,实现了在web浏览器上对h265编码格式视频流进行播放,且可以对多通道视频的通道进行随意切换播放。

实施例二

本实施例公开了一种基于浏览器的多通道视频同步播放系统,本实施例是实现实施例一中公开的一种基于浏览器多通道视频的同步方法,如图2所示,统包括:

格式转换模块,用于获取多路通道的视频流,选择任意一个视频流,检测该视频流的编码格式是否为h264编码格式,若是,则输出视频流,否则,将该视频流的格式转换为h264编码格式的视频流文件进行输出,直到对所有视频流遍历完成,输出h264编码格式的第一视频流文件;

第一分析模块,用于在所述第一视频流文件中,读取每路通道视频流的第一个时间戳,并将每路通道读取的第一个时间戳做比较,选取最早的时间戳作为多通道同步播放开始时间st;

第二分析模块,用于在所述第一视频流文件中,读取每路通道视频流的最后一个时间戳,并将每路通道读取的最后一个时间戳做比较,选取最晚的时间戳作为多通道同步播放开始时间et;

视频帧添加模块,用于基于时间戳st,同时逐秒读取第一视频流文件中的通道视频,若读取的过程中,只要其中一个通道有视频,则为无视频的其他通道补充默认帧;若所有通道都没有视频,则不补充默认帧,直到时间戳为et时结束,获得第二视频流文件,所述第二视频流文件为每个通道中,以时间戳st作为开始时间,以时间戳et作为结束时间的视频流;

封装播放模块,用于通过开源计算机程序将所述第二视频流文件封装到mp4文件中,并在web浏览器上实现对多路通道的视频进行同时播放。

实施例三

本实施例公开了一种计算机存储的介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现实施例一中的基于浏览器的多通道视频同步方法。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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