一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种实现视频流切换的方法、装置和系统与流程

2022-03-05 10:00:23 来源:中国专利 TAG:

一种实现视频流切换的方法、装置和系统
1.本技术是向中国知识产权局提交的申请日为2018年8月22日、申请号为201810962907.4、发明名称为“一种实现视频流切换的方法、装置和系统”的申请的分案申请。
技术领域
2.本发明实施例涉及多媒体通信技术领域,尤其涉及一种实现视频流切换的方法、装置和系统。


背景技术:

3.在多媒体通信技术领域,如电视(television,tv)制播领域,存在对不同视频源设备发送的视频流进行切换的场景。如,在对足球比赛进行直播时,可以在传输设备(如路由器)上对接收的通过对拍摄球场的不同位置所得到的视频流进行切换,以实现在视频终端上对球场不同角度的视频画面进行切换显示。
4.在传统的tv制播领域,通常是以串行数字接口(serial digital interface,sdi)格式传输视频流。由于用于传输sdi信号的同轴电缆最大长度通常受到限制,且比较昂贵,因此在tv制播领域,已经开始通过因特网协议(internet protocol,ip)网络传输视频流,如将sdi信号承载在ip报文中传输。
5.在实现对通过ip网络传输的视频流进行切换的现有技术中,传输设备在确定需要切换视频流时即停止发送要切出的视频流的数据报文并开始发送要切入的视频流的数据报文。
6.根据该现有技术实现视频流的切换,往往导致视频画面出现损伤。


技术实现要素:

7.本发明实施例提供一种实现视频流切换的方法、装置和系统,用于解决现有技术中存在的视频流切换导致的视频画面出现损伤的问题。
8.第一方面,提供了一种实现视频流切换的方法,该方法包括:传输设备接收第一视频流和第二视频流,通过目标出端口发送该第一视频流,在接收到用于指示将通过该目标出端口发送的该第一视频流切换为该第二视频流的切换指令后,根据该切换指令确定该第一视频流的第一基准帧尾报文的切换参考信息(如序列号)和该第二视频流的第二基准帧尾报文的切换参考信息,根据该第一基准帧尾报文的切换参考信息确定该第一视频流的第一切换报文的切换参考信息,并根据该第二基准帧尾报文的切换参考信息确定该第二视频流的第二切换报文的切换参考信息,进而根据该第一切换报文的切换参考信息和该第二切换报文的切换参考信息将通过该目标出端口发送的该第一视频流切换为该第二视频流。该第一基准帧尾报文、第二基准帧尾报文、第一切换报文和第二切换报文的切换参考信息可以均为序列号或均为时间戳,也可以均包括序列号和时间戳。
9.根据第一方面的实现方式,根据切出流(即第一视频流)和切入流(即第二视频流)
的帧尾报文的切换参考信息确定切出流和切入流的切换报文的切换参考信息(如序列号),并根据切换报文的切换参考信息进行视频流的切换。由于在视频流切换时考虑了切换前后发送的数据报文所处的位置,因此,可以有效减轻切换操作对传输的视频画面的损伤。
10.在第一方面的第一种实现方式中,该第一基准帧尾报文和该第二基准帧尾报文具体可以分别为确定该第一基准帧尾报文的切换参考信息和该第二基准帧尾报文的切换参考信息之前接收的该第一视频流的倒数第x个帧尾报文和该第二视频流的倒数第x个帧尾报文,其中x为自然数,可以为1。
11.根据该实现方式确定的第一基准帧尾报文和第二基准帧尾报文的时间戳比较接近,因此可以更加准确地确定出时间戳比较一致的第一切换报文和第二切换报文,从而进一步减轻切换操作对传输的视频画面的损伤。
12.基于第一方面的第一种实现方式,在第一方面的第二种实现方式中,x取值为1,所述第一切换报文中的视频数据所属视频帧为所述第一基准帧尾报文中的视频数据所属视频帧在顺序上的下一视频帧或在顺序上的下一视频帧的后续视频帧;所述第二切换报文中的视频数据所属视频帧为所述第二基准帧尾报文中的视频数据所属视频帧在顺序上的下一视频帧或在顺序上的下一视频帧的后续视频帧。具体可以根据所述第一基准帧尾报文的序列号和封装所述第一视频流的单个视频帧的报文个数计算所述第一切换报文的序列号、并根据所述第二基准帧尾报文的序列号和封装所述第二视频流的单个视频帧的报文个数计算所述第二切换报文的序列号,确定的所述第一切换报文的序列号与所述第一基准帧尾报文的序列号的差值可以大于或等于封装所述第一视频流的单个视频帧的报文个数,确定的所述第二切换报文的序列号与所述第二基准帧尾报文的序列号的差值可以大于或等于封装所述第二视频流的单个视频帧的报文个数。具体还可以根据所述第一基准帧尾报文的时间戳和所述第一视频流的单个视频帧的时长计算所述第一切换报文的时间戳、并根据所述第二基准帧尾报文的时间戳和所述第二视频流的单个视频帧的时长计算所述第二切换报文的时间戳,确定的所述第一切换报文的时间戳与所述第一基准帧尾报文的时间戳的差值可以大于或等于所述第一视频流的单个视频帧的时长,确定的所述第二切换报文的时间戳与所述第二基准帧尾报文的时间戳的差值可以大于或等于所述第二视频流的单个视频帧的时长。
13.根据该实现方式实现在基准帧尾报文后至少一帧的位置处进行视频流切换,可以有效避免对当前正在传输的视频画面的损伤。
14.基于第一方面或第一方面的第一种或第二种实现方式,在第一方面的第三种实现方式中,可以根据该第一基准帧尾报文的切换参考信息、以及该第一视频流和该第二视频流之间的同步关系确定该第一切换报文的切换参考信息,并根据该第二基准帧尾报文的切换参考信息、以及该同步关系确定该第二切换报文的切换参考信息。
15.根据该实现方式,由于在计算第一切换报文和第二切换报文的切换参考信息时考虑了视频流之间的同步关系,可以更加精准地实现视频流的切换,从而进一步减轻切换操作对传输的视频画面的损伤。
16.基于第一方面的第三种实现方式,在第一方面的第四种实现方式中,可以根据该第一基准帧尾报文的切换参考信息、以及该同步关系确定该第一视频流的第一对齐帧尾报文的切换参考信息,并根据该第一对齐帧尾报文的切换参考信息确定该第一切换报文的切
换参考信息,还可以根据该第二基准帧尾报文的切换参考信息、以及该同步关系确定该第二视频流的第二对齐帧尾报文的切换参考信息,并根据该第二对齐帧尾报文的切换参考信息确定该第二切换报文的切换参考信息,该第一对齐帧尾报文和该第二对齐帧尾报文为在时间上对应的帧尾报文。
17.根据该实现方式,在考虑同步关系的情况下确定的第一对齐帧尾报文和第二对齐帧尾报文为在时间上对应的帧尾报文,因此,根据第一对齐帧尾报文和第二对齐帧尾报文分别确定出的第一切换报文和第二切换报文在时间上也是对应的,因此可以进一步减轻切换操作对传输的视频画面的损伤。
18.基于第一方面的第四种实现方式,在第一方面的第五种实现方式中,可以直接将第一对齐帧尾报文的切换参考信息作为第一切换报文的切换参考信息并将第二对齐帧尾报文的切换参考信息作为第二切换报文的切换参考信息,即直接将第一对齐帧尾报文作为第一切换报文并将第二对齐帧尾报文作为第二切换报文。
19.根据该实现方式,可以实现在视频帧的边界进行视频流的切换,可以有效避免切换操作对传输的视频画面的损伤。
20.基于第一方面的第四种实现方式,在第一方面的第六种实现方式中,可以将用于封装该第一对齐帧尾报文中的视频数据所属视频帧的下一视频帧的消隐区数据的数据报文的切换参考信息确定为该第一切换报文的切换参考信息,并将用于封装该第二对齐帧尾报文中的视频数据所属视频帧的下一视频帧的消隐区数据的数据报文的切换参考信息确定为该第二切换报文的切换参考信息。
21.根据该实现方式,可以实现在封装视频帧的消隐区的数据报文处进行视频流的切换,由于消隐区数据并非有效的视频数据,对人眼是不可见的,因此,可以避免对有效的视频数据产生损伤。
22.以切换参考信息包括序列号为例,在具体实现时,在确定该同步关系为该第一视频流早于该第二视频流时,可以将该第一基准帧尾报文的序列号与m*m1的和确定为该第一对齐帧尾报文的序列号,并将该第二基准帧尾报文的序列号与(m 1)*m2的和确定为该第二对齐帧尾报文的序列号。在确定该同步关系为该第一视频流晚于该第二视频流时,将该第一基准帧尾报文的序列号与(n 1)*m1的和确定为该第一对齐帧尾报文的序列号,将该第二基准帧尾报文的序列号与n*m2的和确定为该第二对齐帧尾报文的序列号。或,在确定该同步关系为该第一视频流和该第二视频流同步时,可以将该第一基准帧尾报文的序列号与k*m1的和确定为该第一对齐帧尾报文的序列号,将该第二基准帧尾报文的序列号与k*m2的和确定为该第二对齐帧尾报文的序列号。其中,m1为封装该第一视频流的一个视频帧所需的数据报文的数量,m2为封装该第二视频流的一个视频帧所需的数据报文的数量,m、n和k均为自然数。
23.基于第一方面的第三种至第六种中的任意一种实现方式,在第一方面的第七种实现方式中,该传输设备具体可以根据该第一基准帧尾报文的时间戳和该第二基准帧尾报文的时间戳确定该第一视频流和该第二视频流的同步关系。
24.根据该实现方式,由于是根据该第一基准帧尾报文和第二基准帧尾报文确定该同步关系,因此该同步关系可以反映出该传输设备接收到该第一基准帧尾报文和第二基准帧尾报文时的同步状况,所以,根据第一基准帧尾报文的切换参考信息、第二基准帧尾报文的
切换参考信息、以及该同步关系的组合确定的第一切换报文的切换参考信息和第二切换报文的切换参考信息更加符合视频流的真实同步状况,从而可以进一步减轻切换操作对传输的视频画面的损伤。
25.考虑到设备同步本身就有精度偏差,同一个时刻从不同视频源设备发出的数据报文,其时间戳可能会有偏差。另外,ip网络以报文为单位,报文转发的抖动也会引入一些同步偏差。因此,可以认为,如果两个视频流的基准帧尾报文的时间戳偏差小于预设的时差阈值即可认为这两个视频流同步。
26.相应地,传输设备具体可以在确定t1-t2》δt1时,确定该第一视频流早于该第二视频流;在确定t2-t1》δt1时,确定该第一视频流晚于该第二视频流;在确定|t1-t2|《δt2时,确定该第一视频流与该第二视频流同步。t1为该第一基准帧尾报文的时间戳;t2为该第二基准帧尾报文的时间戳;δt1为预设的第一时差阈值,δt2为预设的第二时差阈值,δt1和δt2均为大于0且小于t的值,δt2可以和δt1相同也可以小于δt1。可以按照如下条件预设δt1和δt2:t/2《δt1《t,如δt1可以为3*t/4,0《δt2《t/2,如δt2可以为t/4,t为单个视频帧的时长。
27.根据该实现方式,确定出的同步关系排除了设备同步本身的精度偏差、报文转发的抖动等的影响,更能反映出视频流之间的真实同步状况,确定的第一切换报文的切换参考信息和第二切换报文的切换参考信息也更加符合视频流的真实同步状况,从而可以进一步减轻切换操作对传输的视频画面的损伤。
28.第二方面,提供了一种传输设备,该传输设备包括处理单元和通信单元。
29.该通信单元,用于接收第一视频流和第二视频流,通过该传输设备的目标出端口发送该第一视频流,并接收切换指令,该切换指令用于指示将通过该目标出端口发送的该第一视频流切换为该第二视频流。该处理单元,用于根据该切换指令确定该第一视频流的第一基准帧尾报文的切换参考信息(如序列号)和该第二视频流的第二基准帧尾报文的切换参考信息,根据该第一基准帧尾报文的切换参考信息确定该第一视频流的第一切换报文的切换参考信息,并根据该第二基准帧尾报文的切换参考信息确定该第二视频流的第二切换报文的切换参考信息。该通信单元,还用于根据该第一切换报文的切换参考信息和该第二切换报文的切换参考信息将通过该目标出端口发送的该第一视频流切换为该第二视频流。该第一基准帧尾报文、第二基准帧尾报文、第一切换报文和第二切换报文的切换参考信息可以均为序列号或均为时间戳,也可以均包括序列号和时间戳。
30.根据第二方面的实现方式,根据切出流(即第一视频流)和切入流(即第二视频流)的帧尾报文的切换参考信息确定切出流和切入流的切换报文的切换参考信息(如序列号),并根据切换报文的切换参考信息进行视频流的切换。由于在视频流切换时考虑了切换前后发送的数据报文所处的位置,因此,可以有效减轻切换操作对传输的视频画面的损伤。
31.在第二方面的第一种实现方式中,该第一基准帧尾报文和该第二基准帧尾报文具体可以分别为确定该第一基准帧尾报文的切换参考信息和该第二基准帧尾报文的切换参考信息之前接收的该第一视频流的倒数第x个帧尾报文和该第二视频流的倒数第x个帧尾报文,其中x为自然数,可以为1。
32.根据该实现方式确定的第一基准帧尾报文和第二基准帧尾报文的时间戳比较接近,因此可以更加准确地确定出时间戳比较一致的第一切换报文和第二切换报文,从而进
一步减轻切换操作对传输的视频画面的损伤。
33.基于第二方面的第一种实现方式,在第二方面的第二种实现方式中,x取值为1,所述第一切换报文中的视频数据所属视频帧为所述第一基准帧尾报文中的视频数据所属视频帧在顺序上的下一视频帧或在顺序上的下一视频帧的后续视频帧;所述第二切换报文中的视频数据所属视频帧为所述第二基准帧尾报文中的视频数据所属视频帧在顺序上的下一视频帧或在顺序上的下一视频帧的后续视频帧。
34.根据该实现方式实现在基准帧尾报文后至少一帧的位置处进行视频流切换,可以有效避免对当前正在传输的视频画面的损伤。
35.基于第二方面或第二方面的第一种或第二种实现方式,在第二方面的第三种实现方式中,该处理单元具体可以根据该第一基准帧尾报文的切换参考信息、以及该第一视频流和该第二视频流之间的同步关系确定该第一切换报文的切换参考信息,并根据该第二基准帧尾报文的切换参考信息、以及该同步关系确定该第二切换报文的切换参考信息。
36.根据该实现方式,由于在计算第一切换报文和第二切换报文的切换参考信息时考虑了视频流之间的同步关系,可以更加精准地实现视频流的切换,从而进一步减轻切换操作对传输的视频画面的损伤。
37.基于第二方面的第三种实现方式,在第二方面的第四种实现方式中,该处理单元可以根据该第一基准帧尾报文的切换参考信息、以及该同步关系确定该第一视频流的第一对齐帧尾报文的切换参考信息,并根据该第一对齐帧尾报文的切换参考信息确定该第一切换报文的切换参考信息,还可以根据该第二基准帧尾报文的切换参考信息、以及该同步关系确定该第二视频流的第二对齐帧尾报文的切换参考信息,并根据该第二对齐帧尾报文的切换参考信息确定该第二切换报文的切换参考信息,该第一对齐帧尾报文和该第二对齐帧尾报文为在时间上对应的帧尾报文。
38.根据该实现方式,在考虑同步关系的情况下确定的第一对齐帧尾报文和第二对齐帧尾报文为在时间上对应的帧尾报文,因此,根据第一对齐帧尾报文和第二对齐帧尾报文分别确定出的第一切换报文和第二切换报文在时间上也是对应的,因此可以进一步减轻切换操作对传输的视频画面的损伤。
39.基于第二方面的第四种实现方式,在第二方面的第五种实现方式中,该处理单元可以直接将第一对齐帧尾报文的切换参考信息作为第一切换报文的切换参考信息并将第二对齐帧尾报文的切换参考信息作为第二切换报文的切换参考信息,即直接将第一对齐帧尾报文作为第一切换报文并将第二对齐帧尾报文作为第二切换报文。
40.根据该实现方式,可以实现在视频帧的边界进行视频流的切换,可以有效避免切换操作对传输的视频画面的损伤。
41.基于第二方面的第四种实现方式,在第二方面的第六种实现方式中,该处理单元可以将用于封装该第一对齐帧尾报文中的视频数据所属视频帧的下一视频帧的消隐区数据的数据报文的切换参考信息确定为该第一切换报文的切换参考信息,并将用于封装该第二对齐帧尾报文中的视频数据所属视频帧的下一视频帧的消隐区数据的数据报文的切换参考信息确定为该第二切换报文的切换参考信息。
42.根据该实现方式,可以实现在封装视频帧的消隐区的数据报文处进行视频流的切换,由于消隐区数据并非有效的视频数据,对人眼是不可见的,因此,可以避免对有效的视
频数据产生损伤。
43.基于第二方面的第三种至第六种中的任意一种实现方式,在第二方面的第七种实现方式中,该传输设备具体可以根据该第一基准帧尾报文的时间戳和该第二基准帧尾报文的时间戳确定该第一视频流和该第二视频流的同步关系。
44.根据该实现方式,由于是根据该第一基准帧尾报文和第二基准帧尾报文确定该同步关系,因此该同步关系可以反映出该传输设备接收到该第一基准帧尾报文和第二基准帧尾报文时的同步状况,所以,根据第一基准帧尾报文的切换参考信息、第二基准帧尾报文的切换参考信息、以及该同步关系的组合确定的第一切换报文的切换参考信息和第二切换报文的切换参考信息更加符合视频流的真实同步状况,从而可以进一步减轻切换操作对传输的视频画面的损伤。
45.考虑到设备同步本身就有精度偏差,同一个时刻从不同视频源设备发出的数据报文,其时间戳可能会有偏差。另外,ip网络以报文为单位,报文转发的抖动也会引入一些同步偏差。因此,可以认为,如果两个视频流的基准帧尾报文的时间戳偏差小于预设的时差阈值即可认为这两个视频流同步。
46.相应地,该处理单元具体可以在确定t1-t2》δt1时,确定该第一视频流早于该第二视频流;在确定t2-t1》δt1时,确定该第一视频流晚于该第二视频流;在确定|t1-t2|《δt2时,确定该第一视频流与该第二视频流同步。t1为该第一基准帧尾报文的时间戳;t2为该第二基准帧尾报文的时间戳;δt1为预设的第一时差阈值,δt2为预设的第二时差阈值,δt1和δt2均为大于0且小于t的值,δt2可以和δt1相同也可以小于δt1。可以按照如下条件预设δt1和δt2:t/2《δt1《t,如δt1可以为3*t/4,0《δt2《t/2,如δt2可以为t/4,t为单个视频帧的时长。
47.根据该实现方式,确定出的同步关系排除了设备同步本身的精度偏差、报文转发的抖动等的影响,更能反映出视频流之间的真实同步状况,确定的第一切换报文的切换参考信息和第二切换报文的切换参考信息也更加符合视频流的真实同步状况,从而可以进一步减轻切换操作对传输的视频画面的损伤。
48.第三方面,提供了一种实现视频流切换的系统,该系统包括:控制器和第二方面或第二方面的任意一种实现方式所述的传输设备,其中,该控制器,用于向该传输设备发送切换指令。
49.第四方面,提供了提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行第一方面或第一方面的任意一种实现方式所述的方法。
50.第五方面,提供了提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行第一方面或第一方面的任意一种实现方式所述的方法。
附图说明
51.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。
52.图1为本发明实施例提供的多媒体通信系统100的组网结构示意图;
53.图2为本发明实施例提供的方法100的流程示意图;
54.图3a-3c和图4a-4c为本发明实施例提供的切换示意图;
55.图5是本发明实施例2提供的传输设备200的结构示意图;
56.图6是本发明实施例3提供的传输设备1000的结构示意图;
具体实施方式
57.下面结合附图,对本发明的实施例进行描述。
58.图1为本发明实施例提供的一种多媒体通信系统100的组网结构示意图,多媒体通信系统100包括视频源设备110和传输设备120。其中,视频源设备110通过传输设备120向视频终端发送视频流。传输设备120可以接收来自多个视频源设备110的视频流,并向视频终端仅转发其中一路视频流,还可以对转发的视频流进行切换。传输设备120具体可以为交换机、路由器等,视频源设备可以为ip摄像机、对视频数据进行ip封装传输的设备等。多媒体通信系统100具体可以是tv制播系统,如电视台制播网络的总控系统、演播室系统、播出系统等对承载在ip网络上的视频流有净切换需求的系统。
59.如图1所示,多媒体通信系统100还可以包括控制器(controller)130,控制器130用于向传输设备120发送用于指示传输设备120进行视频流切换的切换指令,相应地,传输设备120收到该切换指令后进行视频流切换。
60.在本发明实施例中,视频的每个视频帧封装在多个数据报文中传输,后续将封装每个视频帧的多个数据报文中的最后一个数据报文称为帧尾报文。本发明实施例中的数据报文携带序列号和/时间戳、以及用于判断该数据报文是否为帧尾报文的信息,具体可以是实时传输协议(real-time transport protocol,rtp)报文、基于私有协议的报文等。根据动画和电视工程师协会(the society of motion picture and television engineers,smpte)2022和smpte 2110标准,采用rtp承载制播网的音视频数据。如,标准smpte 2022-6(transport of high bit rate media signals over ip networks(hbrmt))通过rtp封装sdi格式的视频数据并通过基于ip的网络传输。
61.本发明实施例中的视频帧指的是未压缩视频帧,可以是yuv视频帧或rgb视频帧,同一视频流的单个视频帧的报文个数(即封装该视频流的一个视频帧所需的数据报文的数量)一般是相同的,通常可以多达数千个,可以是预先设置的,也可以是根据接收的该视频流的两个相邻的帧尾报文的序列号的差值计算得出的。同一个视频流的单个视频帧的时长通常是相同的,可以是预先设置的,也可以是根据接收的该视频流的两个相邻的帧尾报文的时间戳的差值计算得出的。
62.本发明实施例中的切换报文指的是处于切换位置的数据报文,所述切换报文的切换参考信息为所述切换报文中的用于视频流切换的信息,可以包括所述切换报文的序列号(后续可以简称为切换序列号)和所述切换报文的时间戳(后续可以简称为切换时间戳)中的至少一个。进行视频流切换时,根据要切出的视频流(后续简称为切出流)的切换报文的切换参考信息和要切入的视频流(后续简称为切入流)的切换参考信息进行切换,如,对于切出流,不再转发序列号大于切出流的切换序列号的数据报文,对于切入流,开始转发序列号大于切入流的切换序列号的数据报文。
63.下面结合图2、图3a-3c和图4a-4c介绍本发明实施例一提供的方法100。图2是本发明实施例1提供的方法流程示意图,本发明实施例1的方法可以应用于图1所示的多媒体通
信系统100,由传输设备执行。
64.如图2所示,方法100包括如下步骤:
65.s110:传输设备(如图1所示的传输设备120)接收第一视频流和第二视频流并通过该传输设备的目标出端口发送所述第一视频流。
66.具体地,该传输设备通过该目标出端口转发接收的第一视频流的数据报文并不通过所述目标出端口转发接收的第二视频流的数据报文。
67.该传输设备可能接收多个与该目标出端口对应的视频流,通过该目标出端口发送该多个视频流中的一个视频流,并在该多个视频流中对通过该目标出端口发送的视频流进行切换。第一视频流为执行步骤s110时正在通过该目标出端口发送的一个视频流,第二视频流为该多个视频流中的其它视频流中的一个视频流。
68.s120:所述传输设备接收用于指示将通过所述目标出端口发送的所述第一视频流切换为所述第二视频流的切换指令。
69.具体可以是从控制器(如图1所示的控制器130)接收该切换指令。
70.该切换指令可以包括该目标出端口的端口号、该第一视频流的标识(如第一视频流的组播地址)和该第二视频流的标识(如第二视频流的组播地址),以指示该传输设备将通过该目标出端口发送的该第一视频流切换为第二视频流,既指示该传输设备停止通过该目标出端口转发该第一视频流并开始通过该目标出端口转发该第二视频流。
71.s130:所述传输设备根据所述切换指令确定所述第一视频流的基准帧尾报文(后续称为第一基准帧尾报文)的切换参考信息和所述第二视频流的基准帧尾报文(后续称为第二基准帧尾报文)的切换参考信息。
72.所述第一基准帧尾报文的切换参考信息和所述第二基准帧尾报文的切换参考信息可以均为序列号、均为时间戳、或均包括序列号和时间戳。
73.具体可以将执行步骤s130之前接收的所述第一视频流的倒数第x个帧尾报文和所述第二视频流的倒数第x个帧尾报文分别确定为所述第一基准帧尾报文和所述第二基准帧尾报文,其中x为自然数。x取值可以为1,x为1时,第一视频流和第二视频流中任一视频流的基准帧尾报文又可以称为执行步骤s130时该视频流的最新帧尾报文。
74.在具体实现时,可以根据所述传输设备接收到所述切换指令的时间确定所述第一基准帧尾报文的切换参考信息和所述第二基准帧尾报文的切换参考信息。如下为两种示例实施方式。
75.实施方式m:收到切换指令后立即执行步骤s130,即步骤s120和步骤s130的执行时间非常接近,则可以将接收到所述切换指令之前接收的所述第一视频流的倒数第x个帧尾报文的切换参考信息和接收的所述第二视频流的倒数第x个帧尾报文的切换参考信息分别确定为所述第一基准帧尾报文的切换参考信息和所述第二基准帧尾报文的切换参考信息,即所述第一基准帧尾报文和所述第二基准帧尾报文分别为接收到所述切换指令之前接收的所述第一视频流的倒数第x个帧尾报文和接收的所述第二视频流的倒数第x个帧尾报文。x为1时的第一基准帧尾报文和所述第二基准帧尾报文如图3a-3c所示。其中,如图3a所示,将帧尾报文101和帧尾报文201分别确定为所述第一基准帧尾报文和所述第二基准帧尾报文,序列号分别为20和10。如图3b所示,将帧尾报文103和帧尾报文203分别确定为所述第一基准帧尾报文和所述第二基准帧尾报文,序列号分别为10和20。如图3c所示,将帧尾报文
105和帧尾报文205分别确定为所述第一基准帧尾报文和所述第二基准帧尾报文,序列号分别为10和10。
76.实施方式n:收到切换指令后再在分别接收到第一视频流的至少一个帧尾报文和第二视频流的至少一个帧尾报文后执行步骤s130。可以是在分别接收到第一视频流的至少一个帧尾报文和第二视频流的至少一个帧尾报文时执行步骤s130,将此时接收的第一视频流的最后一个帧尾报文的切换参考信息和第二视频流的最后一个帧尾报文的切换参考信息分别确定为所述第一基准帧尾报文的切换参考信息和所述第二基准帧尾报文的切换参考信息。如图4a所示,将帧尾报文107和帧尾报文207分别确定为所述第一基准帧尾报文和所述第二基准帧尾报文,序列号分别为30和20。如图4b所示,将帧尾报文109和帧尾报文209分别确定为所述第一基准帧尾报文和所述第二基准帧尾报文,序列号分别为20和30。如图4c所示,将帧尾报文111和帧尾报文211分别确定为所述第一基准帧尾报文和所述第二基准帧尾报文,序列号分别为20和20。如果在接收到切换指令后对于第一视频流和第二视频流均根据相邻帧尾报文的序列号计算单个视频帧的报文个数,则还可以是在分别接收到第一视频流的至少两个帧尾报文和第二视频流的至少两个帧尾报文时执行步骤s130,将此时接收的第一视频流的最后一个帧尾报文的切换参考信息和第二视频流的最后一个帧尾报文的切换参考信息分别确定为所述第一基准帧尾报文的切换参考信息和所述第二基准帧尾报文的切换参考信息。
77.s140:根据所述第一基准帧尾报文的切换参考信息确定所述第一视频流的切换报文(后续称为第一切换报文)的切换参考信息,并根据所述第二基准帧尾报文的切换参考信息确定所述第二视频流的切换报文(后续称为第二切换报文)的切换参考信息。
78.所述第一基准帧尾报文的切换参考信息、所述第二基准帧尾报文的切换参考信息、所述第一切换报文的切换参考信息和所述第二切换报文的切换参考信息可以均为序列号、均为时间戳、或均包括序列号和时间戳。
79.为便于表述,后续还可将第一切换报文的序列号称为第一切换序列号、将第二切换报文的序列号称为第二切换序列号、将第一切换报文的时间戳称为第一切换时间戳、将第二切换报文的序列号称为第二切换时间戳。
80.所述第一切换报文中的视频数据所属视频帧为所述第一基准帧尾报文中的视频数据所属视频帧在顺序上的下一视频帧或在顺序上的下一视频帧的后续视频帧;所述第二切换报文中的视频数据所属视频帧为所述第二基准帧尾报文中的视频数据所属视频帧在顺序上的下一视频帧或在顺序上的下一视频帧的后续视频帧。当x取值为1时,根据该实现方式实现在基准帧尾报文后至少一帧的位置处进行视频流切换,可以有效避免对当前正在传输的视频画面的损伤。
81.具体可以根据所述第一基准帧尾报文的序列号和封装所述第一视频流的单个视频帧的报文个数计算所述第一切换序列号、并根据所述第二基准帧尾报文的序列号和封装所述第二视频流的单个视频帧的报文个数计算所述第二切换序列号,确定的所述第一切换序列号与所述第一基准帧尾报文的序列号的差值可以大于或等于封装所述第一视频流的单个视频帧的报文个数,确定的所述第二切换序列号与所述第二基准帧尾报文的序列号的差值可以大于或等于封装所述第二视频流的单个视频帧的报文个数。
82.具体还可以根据所述第一基准帧尾报文的时间戳和所述第一视频流的单个视频
帧的时长计算所述第一切换时间戳、并根据所述第二基准帧尾报文的时间戳和所述第二视频流的单个视频帧的时长计算所述第二切换时间戳,确定的所述第一切换时间戳与所述第一基准帧尾报文的时间戳的差值可以大于或等于所述第一视频流的单个视频帧的时长,确定的所述第二切换时间戳与所述第二基准帧尾报文的时间戳的差值可以大于或等于所述第二视频流的单个视频帧的时长。
83.在具体实现时,所述传输设备可以先根据该第一基准帧尾报文的切换参考信息确定该第一视频流的对齐帧尾报文(后续称为第一对齐帧尾报文)的切换参考信息,再根据该第一对齐帧尾报文的切换参考信息确定该第一切换报文的切换参考信息,如,将所述第一对齐帧尾报文的切换参考信息作为所述第一切换报文的切换参考信息,又如,将用于封装所述第一对齐帧尾报文中的视频数据所属视频帧的下一视频帧的消隐区数据的数据报文的切换参考信息确定为所述第一切换报文的切换参考信息,该第一对齐帧尾报文为该第一基准帧尾报文的后续帧尾报文。并且可以先根据该第二视频流的第二基准帧尾报文的切换参考信息确定该第二视频流的对齐帧尾报文(后续称为第二对齐帧尾报文)的切换参考信息,再根据该第二对齐帧尾报文的切换参考信息确定该第二切换报文的切换参考信息,如,将所述第二对齐帧尾报文的切换参考信息作为所述第二切换报文的切换参考信息,又如,将用于封装所述第二对齐帧尾报文中的视频数据所属视频帧的下一视频帧的消隐区数据的数据报文的切换参考信息确定为所述第二切换报文的切换参考信息,该第二对齐帧尾报文为该第二基准帧尾报文的后续帧尾报文。该第一对齐帧尾报文和该第二对齐帧尾报文为在时间上对应的帧尾报文,即对于第一对齐帧尾报文,第二对齐帧尾报文是第二视频的所有帧尾报文中与第一对齐帧尾报文的时间戳最接近的帧尾报文。可以理解的是,对于第一对齐帧尾报文对应的视频帧,第二对齐帧尾报文对应的视频帧为第二视频的所有视频帧中与其时间上最接近的视频帧。所述第一基准帧尾报文的切换参考信息、所述第二基准帧尾报文的切换参考信息、第一对齐帧尾报文的切换参考信息、第二对齐帧尾报文的切换参考信息、所述第一切换报文的切换参考信息和所述第二切换报文的切换参考信息可以均为序列号、均为时间戳、或均包括序列号和时间戳。
84.具体可以通过如下实施方式a和实施方式b中的一种或其组合确定第一视频流和第二视频流中的任一视频流的对齐帧尾报文的切换参考信息并确定所述视频流的切换报文的切换参考信息。其中,实施方式a用于确定所述切换报文的序列号,实施方式b用于确定所述切换报文的时间戳。
85.实施方式a:
86.在实施方式a中,该传输设备可以先根据该第一基准帧尾报文的序列号和该第一视频流的单个视频帧的报文个数计算该第一对齐帧尾报文的序列号,再根据该第一对齐帧尾报文的序列号确定该第一切换报文的序列号。并且可以先根据该第二视频流的第二基准帧尾报文的序列号和该第二视频流的单个视频帧的报文个数计算该第二对齐帧尾报文的序列号,再根据该第二对齐帧尾报文的序列号确定该第二切换报文序列号。
87.如图3a所示,收到切换指令之前记录了第一基准帧尾报文101的序列号20和第二基准帧尾报文201的序列号10,收到切换指令后立即确定对齐帧尾报文的序列号,其中确定的第一对齐帧尾报文的序列号为帧尾报文102的序列号30,即第一对齐帧尾报文为帧尾报文102,确定的第二对齐帧尾报文的序列号为帧尾报文202的序列号30,即第二对齐帧尾报
文为帧尾报文202。帧尾报文102和帧尾报文202为在时间上对应的帧尾报文。假定第一视频流和第二视频流的帧率一样且起始帧号一样,帧尾报文102和帧尾报文202均为帧号为n 2的视频帧的帧尾报文。
88.具体可以通过实施方式a的如下两种实施方式(实施方式a1和实施方式a2)中的一种确定第一视频流和第二视频流中的任一视频流的对齐帧尾报文的序列号。
89.实施方式a1:考虑到不同视频流之间可能会不同步的问题,在实施方式a1中,传输设备先确定所述第一视频流和所述第二视频流的同步关系,进而对于第一视频流和第二视频流中的任一视频流,根据该视频流的基准帧尾报文的序列号、以及该同步关系,计算该视频流的对齐帧尾报文的序列号。所述第一视频流和所述第二视频流的同步关系,具体可以是所述第一视频流早于所述第二视频流、所述第一视频流晚于所述第二视频流或所述第一视频流与所述第二视频流同步。具有互相切换的需求的视频流之间的失步通常不会超过一帧。
90.确定第一视频流与第二视频流的同步关系之后,具体通过如下方式确定第一视频流的第一对齐帧尾报文的序列号和第二视频流的第二对齐帧尾报文的序列号。为便于表述,在本发明实施例中,将第一基准帧尾报文的序列号表示为s11,将第一对齐帧尾报文的序列号表示为s12,将第二基准帧尾报文的序列号表示为s21,将第二对齐帧尾报文的序列号表示为s22,将所述第一视频流的单个视频帧的报文个数表示为m1,将所述第二视频流的单个视频帧的报文个数表示为m2,m1与m2可以相同,也可以不同,通常是相同的。在如下方式的示例中,假定m1和m2均为10。
91.在确定的所述第一视频流和所述第二视频流的同步关系为所述第一视频流早于所述第二视频流时,根据公式s12=s11 m*m1确定所述第一对齐帧尾报文的序列号s12,并根据公式s22=s21 (m 1)*m2确定所述第二对齐帧尾报文的序列号s22,m为自然数,可以取1。
92.假定m为1且采用实施方式m。如图3a所示,所述第一基准帧尾报文为帧尾报文101,序列号为20,第一对齐帧尾报文102的序列号为20 10=30,所述第二基准帧尾报文为帧尾报文201,序列号为10,第二对齐帧尾报文202的序列号为10 2*10=30。
93.假定m为1且采用实施方式n。如图4a所示,所述第一基准帧尾报文为帧尾报文107,序列号为30,第一对齐帧尾报文108的序列号为30 10=40,所述第二基准帧尾报文为帧尾报文207,序列号为20,第二对齐帧尾报文208的序列号为20 2*10=40。
94.在确定的所述第一视频流和所述第二视频流的同步关系为所述第一视频流晚于所述第二视频流时,根据公式s12=s11 (n 1)*m1确定所述第一对齐帧尾报文的序列号s12,并根据公式s22=s21 n*m2确定所述第二对齐帧尾报文的序列号s22,n为自然数,可以取1。
95.假定n为1且采用实施方式m。如图3b所示,所述第一基准帧尾报文为帧尾报文103,序列号为10,第一对齐帧尾报文104的序列号为10 2*10=30,所述第二基准帧尾报文为帧尾报文203,序列号为20,第二对齐帧尾报文204的序列号为20 10=30。
96.假定n为1且采用实施方式n。如图4b所示,所述第一基准帧尾报文为帧尾报文109,序列号为20,第一对齐帧尾报文110的序列号为20 2*10=40,所述第二基准帧尾报文为帧尾报文209,序列号为30,第二对齐帧尾报文210的序列号为30 10=40。
97.在确定的所述第一视频流和所述第二视频流的同步关系为所述第一视频流和所述第二视频流同步时,根据公式s12=s11 k*m1确定所述第一对齐帧尾报文的序列号s12,并根据公式s22=s21 k*m2确定所述第二对齐帧尾报文的序列号s22,k为自然数,可以取1。
98.假定k为1且采用实施方式m。如图3c所示,所述第一基准帧尾报文为帧尾报文105,序列号为10,第一对齐帧尾报文106的序列号为10 10=20,所述第二基准帧尾报文为帧尾报文205,序列号为10,第二对齐帧尾报文206的序列号为10 10=20。
99.假定k为1且采用实施方式n。如图4c所示,所述第一基准帧尾报文为帧尾报文111,序列号为20,第一对齐帧尾报文112的序列号为20 10=30,所述第二基准帧尾报文为帧尾报文211,序列号为20,第二对齐帧尾报文212的序列号为20 10=30。
100.通过实施方式a1确定的第一对齐帧尾报文的序列号和第二对齐帧尾报文的序列号所对应的帧尾报文(即第一对齐帧尾报文和第二对齐帧尾报文)的时间戳基本是一致的,据此确定的切换报文的时间戳基本上也是一致的,因此,可以保证切换时切出流和切入流在时间维度上正好衔接,不会发生多帧或少帧的问题。
101.实施方式a2:在实施方式a2中不考虑不同视频流之间的同步关系,而是假定视频流之间是同步的,可以直接根据公式s12=s11 k*m1确定所述第一对齐帧尾报文的序列号s12,并根据公式s22=s21 k*m2确定所述第二对齐帧尾报文的序列号s22。
102.在确定第一对齐帧尾报文的序列号和第二对齐帧尾报文的序列号之后,可以通过如下两种实施方式(实施方式x1和实施方式x2)中的一种分别根据第一对齐帧尾报文的序列号和第二对齐帧尾报文的序列号确定第一切换序列号和第二切换序列号。
103.实施方式x1:实施方式x1用于实现在帧边界处切换视频流。在实施方式x1中,将所述第一视频流的第一对齐帧尾报文的序列号作为所述第一切换序列号,并将所述第二视频流的第二对齐帧尾报文的序列号作为所述第二切换序列号。
104.如图3a所示,将第一对齐帧尾报文102的序列号30作为第一切换序列号,即将第一对齐帧尾报文102作为第一视频流的切换报文,将第二对齐帧尾报文202的序列号30作为第二切换序列号,即将第二对齐帧尾报文202作为第二视频流的切换报文。
105.实施方式x2:实施方式x2用于实现在视频帧的消隐区切换视频流。
106.在视频领域,在将光信号转换为电信号的扫描过程中,扫描总是从图像的左上角开始,水平向右行进,同时扫描点也以较慢的速率向下移动。当扫描点到达图像右侧边缘时,扫描点快速返回左侧,重新开始在第1行的起点下面进行第2行扫描,行与行之间的返回过程称为水平消隐。一幅完整的图像扫描信号,由水平消隐间隔分开的行信号序列构成,称为一帧。扫描点扫描完一帧后,要从图像的右下角返回到图像的左上角,开始新一帧的扫描,这一时间间隔,叫做垂直消隐,也称场消隐。水平消隐、垂直消隐在sdi信号中不承载可视内容,统称消隐区。为了指导在sdi格式的视频流之间进行切换,smpte rp-168规定了切换行或切换区。在切换行或切换区切换两路sdi信号,不会对有效的视频数据产生损伤。因为smpte2022-6是将sdi信号承载在ip报文中,所以对采用smpte 2022-6封装的视频流进行净切换时,应该在消隐区切换。
107.综上,如果所述第一视频流和所述第二视频流均为采用smpte 2022-6编码的视频流,可以在封装消隐区的数据报文处进行视频流切换。
108.对于第一视频流,具体可以将用于封装所述第一对齐帧尾报文的序列号所对应的
视频帧的下一视频帧的消隐区数据的数据报文的序列号确定为所述第一切换序列号。如,将所述第一视频流的第一对齐帧尾报文的序列号和δm1的和确定为所述第一切换序列号,将所述第一视频流的第一对齐帧尾报文的序列号和δm1的和确定为所述第一切换序列号,或其中,ol1为所述第一视频流的单个视频帧中每一行像素所占的字节数,sl1为所述第一视频流的切换行号。
109.对于第二视频流,将用于封装所述第二对齐帧尾报文的序列号所对应的视频帧的下一视频帧的消隐区数据的数据报文的序列号确定为所述第二切换序列号。如,将所述第二视频流的第二对齐帧尾报文的序列号和δm2的和确定为所述第二切换序列号,二视频流的第二对齐帧尾报文的序列号和δm2的和确定为所述第二切换序列号,其中,ol2为所述第二视频流的单个视频帧中每一行像素所占的字节数,sl2为所述第二视频流的切换行号。
110.切换行号可以取决于sdi视频标准,目前smpte rp-168规定了大部分视频格式的切换行号。第一视频流的切换行号sl1和第二视频流的切换行号sl2通常是相同的。
111.对于所述第一视频流和所述第二视频流中的任一视频流,如果采用4:2:2采样方式,所述视频流的单个视频帧中每一行像素所占的字节数ol=pl*bs*2/8,其中,pl为所述视频流的视频帧的每一行的总像素数(包括行消隐像素的数量和视频有效像素的数量),bs为像素位深。可以理解的是,如果第一视频流和第二视频流的像素位深和采样方式是相同的,通常ol1和ol2是相同的。
112.实施方式b:
113.在实施方式b中,该传输设备可以先根据该第一基准帧尾报文的时间戳和该第一视频流的单个视频帧的时长计算该第一对齐帧尾报文的时间戳,再根据该第一对齐帧尾报文的时间戳确定该第一切换报文的时间戳。并且可以先根据该第二视频流的第二基准帧尾报文的时间戳和该第二视频流的单个视频帧的时长计算该第二对齐帧尾报文的时间戳,再根据该第二对齐帧尾报文的时间戳确定该第二切换报文时间戳。
114.具体可以通过实施方式b的如下两种实施方式(实施方式b1和实施方式b2)中的一种确定第一视频流和第二视频流中的任一视频流的对齐帧尾报文的时间戳。
115.实施方式b1:考虑到不同视频流之间可能会不同步的问题,在实施方式b1中,传输设备先确定所述第一视频流和所述第二视频流的同步关系,进而对于第一视频流和第二视频流中的任一视频流,根据该视频流的基准帧尾报文的时间戳、以及该同步关系,计算该视频流的对齐帧尾报文的时间戳。所述第一视频流和所述第二视频流的同步关系,具体可以是所述第一视频流早于所述第二视频流、所述第一视频流晚于所述第二视频流或所述第一视频流与所述第二视频流同步。具有互相切换的需求的视频流之间的失步通常不会超过一帧。
116.确定第一视频流与第二视频流的同步关系之后,具体通过如下方式确定第一视频流的第一对齐帧尾报文的时间戳和第二视频流的第二对齐帧尾报文的时间戳。为便于表述,在本发明实施例中,将第一基准帧尾报文的时间戳表示为t11,将第一对齐帧尾报文的时间戳表示为t12,将第二基准帧尾报文的时间戳表示为t21,将第二对齐帧尾报文的时间戳表示为t22,将所述第一视频流的单个视频帧的时长表示为t1,将所述第二视频流的单个视频帧的时长表示为t2,t1与t2可以相同,也可以不同,通常是相同的。
117.在确定的所述第一视频流和所述第二视频流的同步关系为所述第一视频流早于所述第二视频流时,根据公式t12=t11 m*t1确定所述第一对齐帧尾报文的时间戳t12,并
根据公式t22=t21 (m 1)*t2确定所述第二对齐帧尾报文的时间戳t22,m为自然数,可以取1。
118.在确定的所述第一视频流和所述第二视频流的同步关系为所述第一视频流晚于所述第二视频流时,根据公式t12=t11 (n 1)*t1确定所述第一对齐帧尾报文的时间戳t12,并根据公式t22=t21 n*t2确定所述第二对齐帧尾报文的时间戳t22,n为自然数,可以取1。
119.在确定的所述第一视频流和所述第二视频流的同步关系为所述第一视频流和所述第二视频流同步时,根据公式t12=t11 k*t1确定所述第一对齐帧尾报文的时间戳t12,并根据公式t22=t21 k*t2确定所述第二对齐帧尾报文的时间戳t22,k为自然数,可以取1。
120.通过实施方式b1确定的第一对齐帧尾报文的时间戳和第二对齐帧尾报文的时间戳基本是一致的,据此确定的切换报文的时间戳基本上也是一致的,因此,可以保证切换时切出流和切入流在时间维度上正好衔接,不会发生多帧或少帧的问题。
121.实施方式b2:在实施方式b2中不考虑不同视频流之间的同步关系,而是假定视频流之间是同步的,可以直接根据公式t12=t11 k*t1确定所述第一对齐帧尾报文的时间戳t12,并根据公式t22=t21 k*t2确定所述第二对齐帧尾报文的时间戳t22。
122.在确定第一对齐帧尾报文的切换参考信息和第二对齐帧尾报文的时间戳之后,可以通过如下两种实施方式(实施方式y1和实施方式y2)中的一种分别根据第一对齐帧尾报文的时间戳和第二对齐帧尾报文的时间戳确定第一切换时间戳和第二切换时间戳。
123.实施方式y1:实施方式y1用于实现在帧边界处切换视频流。在实施方式y1中,将所述第一视频流的第一对齐帧尾报文的时间戳作为所述第一切换时间戳,并将所述第二视频流的第二对齐帧尾报文的时间戳作为所述第二切换时间戳。
124.实施方式y2:实施方式y2用于实现在视频帧的消隐区切换视频流。
125.对于第一视频流,具体可以将用于封装所述第一对齐帧尾报文的时间戳所对应的视频帧的下一视频帧的消隐区数据的数据报文的时间戳确定为所述第一切换时间戳。如,将所述第一视频流的第一对齐帧尾报文的时间戳和δt1的和确定为所述第一切换时间戳,δt1为属于区间[tx,ty]的值,如δt1为tx或(tx ty)/2,其中,tx=t1*sl1/l1,ty=t1*(sl1 1)/l1,其中,sl1为所述第一视频流的切换行号,l1为所述第一视频流的一个视频帧的像素的总行数。
[0126]
对于第二视频流,将用于封装所述第二对齐帧尾报文的时间戳所对应的视频帧的下一视频帧的消隐区数据的数据报文的时间戳确定为所述第二切换时间戳。如,将所述第二视频流的第二对齐帧尾报文的时间戳和δt2的和确定为所述第二切换时间戳,δt2为属于区间[tm,tn]的值,如δt2为tm或(tm tn)/2,其中,tm=t2*sl2/l2,ty=t2*(sl2 1)/l2,其中,sl2为所述第二视频流的切换行号,l2为所述第二视频流的一个视频帧的像素的总行数。需要说明的是,根据相同的方法计算δt1和δt2,如,利用公式δt1=t1*sl1/l1计算δt1(即δt1为tx)并利用公式δt2=t2*sl2/l2计算δt2(即δt2为tm)。
[0127]
切换行号可以取决于sdi视频标准,目前smpte rp-168规定了大部分视频格式的切换行号。第一视频流的切换行号sl1和第二视频流的切换行号sl2通常是相同的。第一视频流的l2和第二视频流的l2通常也是相同的。
[0128]
在本发明实施例1中,该传输设备具体可以根据所述第一视频流的基准帧尾报文
的时间戳、以及所述第二视频流的基准帧尾报文的时间戳确定所述第一视频流和所述第二视频流的同步关系。
[0129]
考虑到设备同步本身就有精度偏差,同一个时刻从不同视频源设备发出的数据报文,其时间戳可能会有偏差。另外,ip网络以报文为单位,报文转发的抖动也会引入一些同步偏差。因此,可以认为,如果两个基准帧尾报文的时间戳偏差小于预设的时差阈值即可认为这两个视频流同步。用于判断同步与否的时差阈值可以根据网络中视频源设备的时钟同步精度决定。
[0130]
传输设备具体可以在确定t1-t2》δt1时,确定所述第一视频流早于所述第二视频流;在确定t2-t1》δt1时,确定所述第一视频流晚于所述第二视频流;在确定|t1-t2|《δt2时,确定所述第一视频流与所述第二视频流同步。t1为所述第一基准帧尾报文的时间戳;t2为所述第二基准帧尾报文的时间戳;δt1为预设的第一时差阈值,δt2为预设的第二时差阈值,δt1和δt2均为大于0且小于t的值,δt2可以和δt1相同也可以小于δt1。可以按照如下条件预设δt1和δt2:t/2《δt1《t,如δt1可以为3*t/4,0《δt2《t/2,如δt2可以为t/4,t为单个视频帧的时长。在本发明实施例中,t可以是预先设置的或根据预先设置的视频信息(如帧率)计算得到的。另外,由于具有互相切换的需求的视频流的单个视频帧的时长通常是一样的,因此,t也可以是根据接收的第一视频流和第二视频流中的任一视频流的数据报文计算得到的,如,根据该视频流的两个相邻的帧尾报文的时间戳的差值计算得出。
[0131]
s150:所述传输设备根据所述第一切换报文的切换参考信息和所述第二切换报文的切换参考信息将通过所述目标出端口发送的所述第一视频流切换为所述第二视频流。
[0132]
在一种实现方式中,所述第一切换报文的切换参考信息和所述第二切换报文的切换参考信息均为序列号,该传输设备具体可以不通过所述目标出端口发送接收的所述第一视频流的序列号大于所述第一切换序列号的数据报文,并通过所述目标出端口发送接收的所述第二视频流的序列号大于所述第二切换序列号的数据报文。
[0133]
由于第一切换序列号和第二切换序列号为计算得出的尚未接收到的数据报文的序列号,在计算出第一切换序列号和第二切换序列号时,通常还会接收到第一视频流的序列号小于或等于第一切换序列号的数据报文和第二视频流的序列号小于或等于第二切换序列号的数据报文。该传输设备在步骤s150中可以根据接收的第一视频流的数据报文的序列号确定是否要通过该目标出端口发送该数据报文,如果小于或等于该第一切换序列号,则照常通过该目标出端口发送该数据报文,否则不通过该目标出端口发送该数据报文。相应地,该传输设备可以根据接收的第二视频流的数据报文的序列号确定是否要通过该目标出端口发送该数据报文,如果小于或等于该第二切换序列号,则照常不通过该目标出端口发送该数据报文,否则通过该目标出端口发送该数据报文。
[0134]
在另一种实现方式中,所述第一切换报文的切换参考信息和所述第二切换报文的切换参考信息均为时间戳,该传输设备具体可以不通过所述目标出端口发送接收的所述第一视频流的时间戳大于所述第一切换时间戳的数据报文,并通过所述目标出端口发送接收的所述第二视频流的时间戳大于所述第二切换时间戳的数据报文。另外,该传输设备还可以通过所述目标出端口发送接收的所述第一视频流的时间戳小于或等于所述第一切换时间戳的数据报文,并不通过所述目标出端口发送接收的所述第二视频流的时间戳小于或等于所述第二切换时间戳的数据报文
count)字段,表示该视频流中累积的视频帧数。
[0141]
对于一个出端口,可能需要在多条输入视频流间反复切换。所以,当前的切出流很可能是之前的切入流。
[0142]
该传输设备可以在通过该目标出端口发送该多个视频流中的任一视频流时,均将该视频流的数据报文中的第一字段的值,修改为预设的值,如,将该视频流的数据报文中的组播地址修改为预设的组播地址(如239.0.2.1)。
[0143]
如s110中所述,该传输设备可能接收多个与该目标出端口对应的视频流,通过该目标出端口发送该多个视频流中的一个视频流,并在该多个视频流中对通过该目标出端口发送的视频流进行切换。如,该多个视频流包括流1、流2和流3,该传输设备首先转发的是流2,后续依次切换到流1和流3。该传输设备还可以在第一次通过该目标出端口转发该多个视频流中的一个视频流(如流2)时,记录该视频流的第一字段的值,并在后续切换到其它视频流时,将其它视频流的数据报文中的第一字段的值修改为记录的该视频流的第一字段的值。如,在切换到流1时将流1的数据报文中的第一字段的值修改为流2的第一字段的值,并在切换到流3时将流3的数据报文中的第一字段的值也修改为流2的第一字段的值。
[0144]
为了提升切换前后的视频流的连续性,所述传输设备在切换后发送所述第二视频流的数据报文时,还可以修改所述第二视频流的数据报文中的第二字段的值以使得切换后通过该目标出端口发出的第二视频流的数据报文中的第二字段的值和切换前通过该目标出端口发出的第一视频流的数据报文中的第二字段的值连续。所述第二字段的值可以为序列号、帧号和时间戳等中的一个或多个。
[0145]
为了保证第二字段的值(如序列号)连续,具体可以将要发送的第二视频流的数据报文中的第二字段的值增加δv,其中,δv=v1-v2,v1为所述第一视频流的序列号等于所述第一切换序列号的数据报文在被通过该目标出端口发出时所携带的第二字段的值,v2为所述第二视频流的序列号等于所述第二切换序列号的数据报文在被接收时所携带的第二字段的值。
[0146]
在执行步骤s130之前,传输设备还可以执行步骤s115以记录第一视频流和第二视频流的最新帧尾报文的目标信息,记录的目标信息包括最新帧尾报文的序列号和时间戳中的至少一个。相应地,在步骤s130中可以根据在步骤s115中记录的最新帧尾报文的目标信息确定基准帧尾报文,如,对于第一视频流和第二视频流中的任一视频流,将执行步骤s130之前最后一次通过步骤s115记录的该视频流的最新帧尾报文的目标信息(如序列号)作为该视频流的基准帧尾报文的切换参考信息(如序列号)。
[0147]
该传输设备可以在步骤s120之前开始执行步骤s115。如s110中所述,该传输设备可能接收多个与该目标出端口对应的视频流,通过该目标出端口发送该多个视频流中的一个视频流,并在该多个视频流中对通过该目标出端口发送的视频流进行切换。则在该传输设备开始通过该目标出端口转发该多个视频流中的视频流时开始记录该多个视频流中的每个视频流的最新帧尾报文的目标信息。当后续要对其中两个视频流进行切换时,可以利用已经记录的这两个视频流的最新帧尾报文的目标信息执行步骤s130-s140以确定切换参考信息。当实现上述实施方式m时,可以在步骤s120之前开始执行步骤s115。
[0148]
该传输设备也可以在步骤s120之后开始执行步骤s115。即,在接收到切换指令后开始记录要进行切换的两个视频流中的每个视频流的最新帧尾报文的目标信息,并进而根
据记录的这两个视频流的最新帧尾报文的目标信息执行步骤s130-s140以确定切换报文的切换参考信息。当实现上述实施方式n时,可以在步骤s120之后开始执行步骤s115。
[0149]
如果在步骤s120之前开始执行步骤s115,对于该多个视频流中的任一视频流,该传输设备可以在接收到该视频流中在顺序上的第一个帧尾报文时,将该帧尾报文的目标信息记录为该视频流的最新帧尾报文的目标信息,并根据后续接收的该视频流的数据报文更新该视频流的最新帧尾报文的目标信息。进而,在接收到切换指令后立即执行步骤s130-s140以根据接收到切换指令前记录的最新帧尾报文的目标信息(如序列号)计算切换报文的切换参考信息(如序列号)。如图3a所示,根据收到切换指令前记录的第一视频流的最新帧尾报文101的序列号20计算第一切换序列号,根据第二视频流的最新帧尾报文201的序列号10计算第二切换序列号。
[0150]
如果在步骤s120之后开始执行步骤s115,对于所述第一视频流和所述第二视频流中的任一视频流,该传输设备可以在接收到该视频流中在顺序上的第一个帧尾报文时,将该帧尾报文的目标信息记录为该视频流的最新帧尾报文的目标信息。如果在收到其中一路视频流的另一帧尾报文时还没有收到另一视频流的第一个帧尾报文,则可以对该视频流的最新帧尾报文的目标信息进行更新,直至收到另一视频流的第一个帧尾报文并相应记录另一个视频流的最新帧尾报文的目标信息。另外,如果对于第一视频流和第二视频流均根据相邻帧尾报文的序列号计算单个视频帧的报文个数,则在计算切换序列号之前对于每个视频流都至少接收两个帧尾报文,每次接收到帧尾报文时均将该帧尾报文的目标信息记录为所属视频流的最新帧尾报文的目标信息。此外,可以将接收的两个相邻帧尾报文的序列号的差值作为所属视频流的单个视频帧的报文个数,还可以将接收的两个相邻帧尾报文的时间戳的差值作为所属视频流的单个视频帧的时长。
[0151]
如图4a所示,根据收到切换指令后记录的第一视频流的最新帧尾报文107的序列号30计算第一切换序列号,根据第二视频流的最新帧尾报文207的序列号20计算第二切换序列号。
[0152]
传输设备具体可以通过如下方式对任一视频流的最新帧尾报文的目标信息进行更新。
[0153]
所述传输设备可以在每次接收到该视频流的帧尾报文时,将该视频流的最新帧尾报文的序列号更新为该帧尾报文的序列号,并将该视频流的最新帧尾报文的时间戳更新为该帧尾报文的时间戳。
[0154]
所述传输设备也可以在更新时考虑可能发生的帧间报文乱序和帧尾报文丢失问题。如果存在帧间报文乱序,即后一帧的非帧尾报文先于前一帧的帧尾报文到达或先于前一帧的帧尾报文被传输设备处理,或存在帧尾报文丢失,该视频流的最新帧尾报文的序列号也可以是根据序列号大于未被收到的帧尾报文的非帧尾报文估算的该帧尾报文的序列号。相应地,该传输设备可以采用如下方式进行更新。
[0155]
在确定接收的该视频流的数据报文不是帧尾报文且所述数据报文的序列号大于该视频流的最新帧尾报文的序列号与该视频流的单个视频帧的报文个数m的和时,将记录的该视频流的最新帧尾报文的序列号增加m。如果该目标信息还包括时间戳,相应地,将记录的该视频流的最新帧尾报文的时间戳增加单个视频帧的时长t。在确定接收的该视频流的数据报文为帧尾报文时,可以直接执行更新操作,即将该视频流的最新帧尾报文的序列
号更新为该数据报文的序列号,并将该视频流的最新帧尾报文的时间戳更新为该数据报文的时间戳,也可以进一步判断该数据报文的时间戳是否大于记录的该视频流的最新帧尾报文的时间戳,并仅在大于时执行该更新操作。
[0156]
下面以一种具体实施方式对步骤s115的具体实现进行详细描述。
[0157]
传输设备建立视频流切换表。如果在步骤s120之前执行步骤s115,该切换表可以包括该多个视频流中的每个视频流的记录,如果在步骤s120之后执行步骤s115,该切换表可以仅包括要切换的两个视频流(即第一视频流和第二视频流)的记录,如表1所示。
[0158]
该切换表可以包括字段ft_ts和ft_sn,每个视频流对应的ft_ts的值和ft_sn的值分别为该视频流的最新帧尾报文的时间戳和序列号。
[0159]
该视频流切换表还可以包括字段flow、outport、state、frametime和framepackets中的任意一个或任意组合。flow的值用于标识对应的视频流。每个视频流对应的outport的值用于记录该视频流对应的出端口的端口号,即表示该视频流从该传输设备的哪个端口转发出去,本发明实施例对对应同一个出端口的视频流进行切换。每个视频流对应的state的值用于记录该视频流的当前状态,其中,sw_forwarding表明该视频流为传输设备在转发的视频流,sw_discard表明该视频流为该传输设备不通过对应的出端口转发的视频流。每个视频流对应的frametime的值用于记录该视频流的单个视频帧的时长,如果采用rtp进行视频流传输,frametime的单位与rtp头中的ts字段的单位相同。每个视频流对应的framepackets的值用于记录该视频流的单个视频帧的报文个数。
[0160]
该视频流切换表还可以包括sw_sn,每个视频流对应的sw_sn的值用于记录该视频流的切换序列号。
[0161]
outportflowstateframetimeframepacketsft_tsft_sn61sw_forwardingt1m1ts1sn162sw_discardt2m2ts2sn2
[0162]
表1
[0163]
后续将所述视频流切换表中的任一视频流称为视频流a。
[0164]
对于视频流a,在接收到视频流a的任一数据报文(后续称为报文a)时,首先判断报文a是否为帧尾报文。
[0165]
以rtp报文为例,根据rfc 3550制定的rtp报文头格式,rtp报文头中的m(marker,边界)字段的值用于表示该rtp报文是否为帧尾报文。如果m的值为1,表示该rtp报文为帧尾报文,如果为0,表示该rtp报文不是帧尾报文。
[0166]
rtp报文头中的序列号(sequence number,sn)字段的值表示该rtp报文在一条rtp流中的序列号,同一条rtp流的各rtp报文的序列号单调递增1。rtp报文头还包括时间戳(timestamp,ts)。多媒体通信系统(如tv制播系统)中的各视频源设备会保持时钟同步,同一时刻发出的rtp报文,该字段的值非常接近,因此,可以利用该字段的值来判断不同视频流中的视频帧是否是同一时刻的视频帧,用于在切换时对齐不同的视频流,达到切换在时间维度上的衔接。
[0167]
如果确定报文a为帧尾报文,且是视频流a在顺序上的的第一个帧尾报文,将报文a的ts字段的值和sn字段的值分别记录到第一切换表中视频流a对应的ft_ts字段和ft_sn字段中。
[0168]
如果确定报文a为帧尾报文,且不是视频流a在顺序上的的第一个帧尾报文,将报文a的ts字段的值和第一切换表中视频流a对应的ft_ts字段的值进行比较。如果报文a的ts字段的值大于第一切换表中视频流a对应的ft_ts字段的值,则报文a为最新帧尾报文,因此,将第一切换表中视频流a对应的ft_ts字段和ft_sn字段的值分别更新为报文a的ts字段和sn字段的值。如果小于,则不更新。
[0169]
如果确定报文a不是帧尾报文,则判断是否发生了帧间乱序。报文在网络中传输时有可能发生乱序,报文所经过的传输设备的处理器对接收的报文进行多线程并发处理时也可能导致报文在处理上出现乱序。因此,一帧的非帧尾报文可能先于前一帧的帧尾报文到达传输设备或先于前一帧的帧尾报文被处理。如果一帧的报文先于前一帧的帧尾报文到达或先于前一帧的帧尾报文被处理,则表明发生了帧间报文乱序。
[0170]
如果报文a不是帧尾报文,且报文a的序列号大于视频流a的最新帧尾报文的序列号与m的和,即报文a先于前一帧的帧尾报文到达了,则前一帧的帧尾报文可能发生了乱序或丢包,此时可以将ft_ts字段的值与t的和作为估计的该帧尾报文的时间戳,并将ft_sn字段的值和m的和作为估计的该帧尾报文的序列号,并利用估计的时间戳和序列号更新第一切换表视频流a对应的ft_ts字段和ft_sn字段的值,即将ft_ts字段的值增加t,并将ft_sn字段的值增加m。
[0171]
根据本发明实施例1,本发明实施例2提出了一种传输设备200,如图5所示,传输设备200包括:处理单元210和通信单元220。
[0172]
通信单元220,用于接收第一视频流和第二视频流,通过所述传输设备的目标出端口发送所述第一视频流,并接收切换指令,所述切换指令用于指示将通过所述目标出端口发送的所述第一视频流切换为所述第二视频流。
[0173]
处理单元210,用于根据所述切换指令确定所述第一视频流的第一基准帧尾报文的切换参考信息和所述第二视频流的第二基准帧尾报文的切换参考信息,根据所述第一基准帧尾报文的切换参考信息确定所述第一视频流的第一切换报文的切换参考信息,并根据所述第二基准帧尾报文的切换参考信息确定所述第二视频流的第二切换报文的切换参考信息。
[0174]
通信单元220,还用于根据所述第一切换报文的切换参考信息和所述第二切换报文的切换参考信息将通过所述目标出端口发送的所述第一视频流切换为所述第二视频流。
[0175]
本发明实施例2中描述的功能单元可以用来实施上述实施例1所述的方法中传输设备执行的操作。具体地,所述通信单元220用于与其它设备通信,如接收控制信令、接收数据报文、转发数据报文、在转发数据报文时修改数据报文中的信息等;所述处理单元210用于确定切入流和切出流的切换序列号等。
[0176]
处理单元210可以包括多个处理子单元,分别对应一个需要切换视频流的出端口(如上述目标出端口)。通信单元220可以包括多个发送子单元,分别对应一个需要切换视频流的出端口。每个出端口的处理子单元确定该出端口的切入流和切出流的切换报文的切换参考信息(如序列号),每个出端口对应的发送子单元通过该出端口转发需要通过该出端口转发的视频流的数据报文、并直接丢弃不需要通过该出端口转发的视频流的数据报文。
[0177]
根据本发明实施例2提供的传输设备200,由于在视频流切换时考虑了切换前后发送的数据报文所处的位置,因此,可以有效减轻切换操作对传输的视频画面的损伤。
[0178]
根据本发明实施例1,本发明实施例3提供了一种传输设备1000。如图6所示,传输设备1000包括处理器1010和端口1020。
[0179]
处理器1010,用于实施本发明实施例1提供的方法100中的传输设备执行的操作,其中,在与其它设备通信时通过端口1020与其它设备通信。处理器1010具体可以是中央处理器(central processing unit,cpu),或者是特定集成电路(application specific integrated circuit,asic),或者是被配置成实施本发明实施例的一个或多个集成电路。
[0180]
如图6所示,传输设备1000还可以包括存储器1030。处理器1010和存储器1030之间可以通过总线完成相互间的通信。存储器1030,用于存放计算机操作指令,具体可以是高速随机存取存储器(random access memory,ram),也可以是非易失性存储器(non-volatile memory)。处理器1010具体可以执行存储器1030中存放的计算机操作指令,通过执行所述计算机操作指令使得传输设备1000执行上述实施例1所述的方法中传输设备所执行的操作。在具体实现时,存储器1030可以包括处理模块1031和通信模块1032,分别存储用于实现图5所示的处理单元210和通信单元220的功能。相应地,处理器1010具体通过执行处理模块1031中的指令实现处理单元210的功能并通过执行通信模块1032中的指令实现通信单元220的功能。
[0181]
根据本发明实施例3提供的传输设备1000,由于在视频流切换时考虑了切换前后发送的数据报文所处的位置,因此,可以有效减轻切换操作对传输的视频画面的损伤。
[0182]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献