发明内容
本发明的目的是克服现有技术中的不足之处,提供一种用于城轨列车的视频点播方法和系统,通过实现基于H264视频压缩使用RTSP协议进行传输的轨道交通车地视频传输系统,并结合乘客异动信息检测,解决了视频流传输带宽不够的问题。本文实现的轨道交通车地视频传输系统的传输效率、构建成本明显优于传统轨道交通列车视频监控系统。
本发明实施例提供一种用于城轨列车的视频点播方法,包括:
将视频传感器数据存储在视频信息池,并生成视频信息的预览,所述视频信息池为Redis数据库;
通过H.264图像压缩标准对视频信息进行压缩;
使用实时流传输协议RTSP对压缩后的视频流进行传输。
本发明实施例还提供一种用于城轨列车的视频点播系统,包括:
存储单元,用于将视频传感器数据存储在视频信息池,并生成视频信息的预览,所述视频信息池为Redis数据库;
压缩单元,用于通过H.264图像压缩标准对视频信息进行压缩;
传输单元,用于使用实时流传输协议RTSP对压缩后的视频流进行传输。
实施例一
在介绍具体实施流程之前,需要先介绍本实施例的组网环境。
城轨列车视频传输网如图1所示。根据城轨列车车厢的对称结构,给出了车的物理结构。其中摄像头通过车载网络中的通用串行总线连接到前端图像处理机,前端图像处理机通过车载网络的以太网与诊断服务主机相连。诊断服务主机是车载服务器的集合,是为列车安全信息监测处理服务的服务器集群,包括了乘客异动等服务器。它通过列车安全检测网连接车辆车载无线通信主机与实时信道单元,实时信道单元通过WiMAX实时将数据发送至地面,从而实现列车视频等数据的在途传输。
从物理架构可以看出,假设摄像头采用分布式结构进行管理和传输,每个摄像头采集的图像的长宽分别为Hi,Wi,原始采集到的位图数据所占用带宽为其中n表示监控摄像头数量。当n=6,摄像头采集分辨率为D1(704*576)时,使用带宽为58.39M,而目前车载网使用百兆速度的以太网,如果不使用前段图像处理机进行处理会导致视频信息占用带宽太高不能保证列车网的性能冗余,甚至会导致packet排队时间过长而导致的包丢失。设计车地视频传输使用带宽不能高于2M,所以需要使用视频信息预览的方式解决带宽不足的问题。
本发明实施例中,视频信息预览使用集中的方式进行视频采集。如图2所示,将视频传感器数据存储在视频信息池,并同时生成视频信息的预览,该预览视频数据流经过视频信息压缩可以通过车地无线网络实时传输至地面监视器,解码后进行播放,实现人工的视频监测。视频信息池为乘客异动信息检测与视频回放提供支持,同时将数据提供给视频服务器创建视频点播服务。运维人员从视频预览或乘客异动信息检测系统中获取异常时,可以根据需要对某一个监视器点播,获得更清晰的图像以及进一步的信息以指导运维决策。
图3是本发明实施例的实施流程图,该流程包括:
S101.将视频传感器数据存储在视频信息池,并生成视频信息的预览,所述视频信息池为Redis数据库;
为了保证在前端图像处理机能够提供原始数据给诊断服务主机进行乘客异动信息检测,视频点播服务与视频数据的备份可以同时进行,则需要在车载服务器中建立视频信息池。备份的数据将同时提供给乘客异动检测服务,视频信息预览处理服务与视频数据压缩服务使用。视频信息池是一种支持高速读取且能够存储大容量数据的数据库,能够支持队列存储的数据结构,处理并发执行请求,数据能够持久化。
本系统使用目前性能较高的Redis数据库实现了视频信息池,使用List数据类型作为视频池中的元素。Redis数据库中的List数据类型是一种按照插入顺序排序的双向链表,链表中存储了视频信息。
假设要实现对K路摄像头进行数据采集,视频信息池需要建立处理队列(Processing queue)、存储队列(Storage queue)和实时数据队列(Real-timedata queue)。处理队列在数据进行分级处理时进行缓存,保障了视频数据的有序传输,异常出现时数据也不会丢失。处理队列存储了原始的位图数据。存储队列用来对视频位图数据进行持久化,存储队列的名称包含车号、车厢号、时间、摄像头编号信息。每个存储队列能够存储的元素个数限制为n,当数据量大于n时,新建一个存储队列。实时数据队列存储了压缩后的视频,为视频点播服务提供数据。
此外,考虑到列车乘客异动以及安防危险出现偶发性,如果对数据进行全时处理以及传输将增加车载设备的负载。使用视频信息预处理可以减少车载设备以及网络负载,视频信息预处理包括车载网络预览以及之后的视频信息压缩。
视频信息预览算法如下:
Step1:根据乘客异动信息检测,得出异常可能高的i路摄像头的编号,如果剩余的块设置为上一次切换后未显示过的摄像头进行显示;
Step2:根据乘客异动信息检测从视频信息池中取出乘客异动信息异常可能性高的i路视频信息队列;
Step3:将i路摄像头数据通过改变位图大小将长宽压缩其中W和H表示位图的长和宽;
Step4:将视频数据组合为位图矩阵;
Step5:每间隔n(ms)转到第(1)步进行一次切换。
该算法将多路摄像头的数据进行轮询处理,以达到优化传输速率的作用。
S102.通过H.264图像压缩标准对视频信息进行压缩;
系统的结构设计支持视频信息压缩。因列车运行时振动较大,无法很容易地针对摄像头进行背景提取,本系统使用的是目前最新的图像压缩标准H.264/AVC(高级视频编码),它是一种面向块的基于运动补偿的编解码器标准。在城轨列车上,监控摄像头一般按照固定位置进行安装,这种基于运动补偿的压缩编码标准对于这种应用环境可以保证较高的压缩比以及视频质量。
通过使用位图分辨率的截取,再通过H.264/AVC编码层(Video CodingLayer)进行数据的压缩,视频的连续帧数据被压缩为网络提取层(NetAbstraction Layer)中的传输单元NALU后进行传输。
实际工程中使用x264编码器进行编码。其中参数初始化中需要设定x264_param,它是一个关键的参数,包括长宽,压缩方式,帧率,硬件配置等数据,根据这些信息可以生成序列参数集Sequence Parameter Set和图像参数集Picture Parameter Set,这些信息将被组合起来传递给解码器。随后通过x264_param_t中的长宽信息和图片参数计算所需的内存大小,从而开辟存储图像数据使用到的内存。工程中采集到的位图数据的色彩空间为RGB,为了使用x264编码器还需要将原始位图转化为欧洲标准的YUV420P色彩空间,进而将YUV420P数据转化为H264编码器识别的数据。最后对数据进行缩放压缩后将图像数据经过H.264编码转化为H.264传输单元。
S103.使用实时流传输协议RTSP对压缩后的视频流进行传输。
支持城轨无线传输的视频点播服务是城轨列车数字视频数据传输系统中与运维人员交互的唯一接口。视频信息经过压缩后,需要使用适当的网络协议对它进行传输,根据视频传输策略设计,在视频传输时,需要对视频的播放进行控制。RTSP(Real Time Streaming Protocol)实时流传输协议是是TCP/IP协议体系中的一个应用层协议,它在体系结构上位于RTP和RTCP之上,它使用TCP或RTP完成数据传输,且提供了基本视频传输控制的方法,很方便进行扩充。工程中点播服务使用了RTSP协议。点播服务的结构分为三层进行实现,分别为传输层(TransportLayer),媒体流层(MediaStreamLayer)和媒体会话层(MediaSession Layer)。传输层定义了连接的方式,主要负责控制以太网连接的建立和空闲连接的释放。考虑到信息的复制会增大网络压力,在传输层上使用组播方式传输。传输流控制层的主要功能有3个:(1)生成SDP:SessionDescription Protocol(会话描述协议);(2)对压缩后的数据进行传输;(3)控制视频信息预处理和视频数据压缩。
传输会话层的主要功能是响应客户端的请求和回应消息。RTSP协议中已经为我们提供了一些基本方法,其中包括OPTIONS,PLAY,SETUP和TEARDOWN四个必选方法。在原始视频和预览视频处理之间切换的时候,如果使用已规定的基本方法,则需要进行PAUSE、TEARDOWN,然后SETUP,最后PLAY的操作来进行,具有较大的延迟和资源的浪费。因此我们在传输会话层中定义了SWITCH方法。运营客户端发送SWITCH操作请求时,流控制层可以在不重新建立连接的情况下,实时切换画面。
SWITCH方法携带参数对视频切换进行控制,控制方向从客户端到服务端。命令使用json方式存储为键值—数组的格式。例如:切换到车号a,车厢b,视频1,视频2的命令参数为{"Switch":[{"TrainNo":"a"},{"Carriage":"b"},{"Video":[1,2]}]}。
实施例二
图4是的系统组成图,如图4所示,该系统包括:
存储单元201,用于将视频传感器数据存储在视频信息池,并生成视频信息的预览,所述视频信息池为Redis数据库;
压缩单元202,用于通过H.264图像压缩标准对视频信息进行压缩;
传输单元203,用于使用实时流传输协议RTSP对压缩后的视频流进行传输。
所述系统还包括控制单元,用于在传输会话层中定义SWITCH方法,通过携带参数对视频切换进行控制,控制方向从客户端到服务端,以使运营客户端发送SWITCH操作请求时,流控制层可以在不重新建立连接的情况下,实时切换画面。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的单元或流程并不一定是实施本发明所必须的。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(RandomAccess Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。