APP下载

机车视频与LKJ数据联动分析软件设计研究

2021-03-20单俊强

铁道机车车辆 2021年1期
关键词:视频文件剪切机车

单俊强

(中国神华能源股份有限公司 神朔铁路分公司,陕西榆林 719316)

6A视频与LKJ运行数据联动分析软件可以很好地结合机车视频数据及其对应运行信息,使得相关工作人员可以在后期对机车视频数据,运行情况,故障数据,机车运行特殊位置时刻进行准确有效地查询和分析机车运行状况。目前机车上6A视频通道总共有16个,将16路通道视频与机车运行数据同步,能够有效实现机车视频与数据的联动性,并提供项点分析及报表展示等功能,为处理机务数据提供了有效的管理方式,准确提供机车现场情况还原的视频及机车运行数据。在众多的多媒体播放器项目中VLC(Video LAN Client)项目是一个基于流传输的开源视频项目,集成了FFmpeg(Fast Forword Mpeg)编解码库,获取简单,并有很多开源社区、论坛等提供技术支持,使得开发起来更加得心应手[1]。本软件通过利用VLC开源平台进行二次开发,将视频与机车运行数据结合,编程实现构建一个基于机车视频及运行信息的视频应用。主要运用于离线回放机车硬盘中存储的录像及相关行车数据等信息,机车信息涵盖机车监控数据部分信息,机车监控项点分析信息等数据,并且能够控制播放、暂停、停止、快速播放、减速播放、音量控制的调节、截图及截取视频等多种播放控制功能,界面简明,操作简单。

1 6A系统及LKJ介绍

机车车载安全防护系统(简称6A系统)是针对机车的制动系统、高压绝缘、防火、列车供电、视频、走行部等危及安全的重要事项、重点部件和部位,采用实时监视、检测、报警并可实现网络传输、统一固态存储和智能人机界面,整体研究设计而形成平台化的安全防护装置[2]。机车自动视频监控及记录子系统(AVDR)是6A系统的一部分,主要功能有对监控路况、司机室、机械间等处的视频图像进行记录,实现与防火系统的联动,视频图像存储和调用分析[3]。通过记录司机操作、运行路况、机械间图像等,辅助事故分析,为机车设备报警和事件的分析提供重要视频图像依据。

列车运行监控装置(LKJ)是我国自主研发的列车速度控制系统,是中国铁路列车运行控制系统体系的组成部分,具有防止列车冒进信号,运行超速和辅助司机提高操作能力等功能。LKJ数据主要为机车状态信息,机车安全信息,过站信息等,主要包括列车所在位置、运行工况、司机号、信号机、车站、公里标、速度、列车管压力、进出站及信号灯等信息。该装置在实现安全速度控制的同时,并采集记录与列车安全运行有关的各种机车运行状态信息,促进机车运行管理自动化,为相关机务应用提供了重要的数据来源,见图1。

由于6A系统在机车安全领域上的重要性以及LKJ数据记录了详细的机车运行信息,更好地分析机车视频数据及对应运行信息的需求非常强烈,需要有效地对机车视频数据及运行数据进行联动分析,使得相关工作人员可以在后期对机车运行情况,故障数据,机车运行特殊位置时刻进行准确有效地查询和分析。

2 系统需求分析

由于机车视频格式包含众多,有多种分辨率,帧率,多种通道音视频的情况,一般的播放器难以支持其复杂的情况,需要有更好的解决方案。LKJ分析人员在进行LKJ数据分析的过程中,需要同步观察LKJ事件相关联的机车视频,用于辅助分析LKJ事件。由于现场情况复杂,导致视频服务器上的程序存在各种各样的问题,如机车存在多个通道,不同通道且视频格式还并不统一,播放器播放时容易存在各种问题,故需要对这种情况进行格式统一处理。

FFmpeg作为目前领先的视频解析、解码和编码的开源程序,其在视频解析、解码和编码方面有着很大的应用,是一款用于记录、转换数字音频和视频,并能将其转化为视频流和音频流的开源工具,这款工具功能非常强大,能够完成视频转码、截图、视频剪切等功能。最重要的是FFmpeg编译成动态库或者静态库的时候都提供了有着强大功能和简易使用的接口,同时FFmpeg程序支持在Linux和Windows等很多操作系统下的编译。这两个特性就使得目前很多支持主流格式的播放器都是调用FFmpeg库进行解析和解码,如暴风影音等[4]。这里也将调用FFmpeg这个强大的视频解析和解码库实现最底层的视频格式解析,分析视频帧数据、格式等信息。

视频文件可以统称为容器,在容器中将视频流、音频流以及字幕等融合在一起形成了视频文件,为了完成这些工作FFmpeg工具包含有编解码模块。该模块位于Libavcodec中,根据需要,可以将不同格式的视频流转换成为需要格式的文件,一般的工作流程为先解码然后再进行相应的编码形成对应格式的文件。几种常见的视频格式有MPEG格式、AVI格式、RMVB格式及WMV格式等。一般的播放器仅能支持主流的几种视频格式(例如:微软自带的Windows Media Player),遇到不支持的格式的视频文件需要下载对应的转换器将文件进行转码[4]。而机车上的视频为了节省存储空间及加密设置,对视频的格式进行了特殊处理,部分播放器不支持对应的格式,不能准确的将视频解码,而VLC视频播放器解决方案基本支持所有的视频格式,该播放器基于VLC设计,也同样基本支持大部分的视频格式,减少了用户的限制性,从而给客户带了方便。

本播放器的主要任务和目的是播放车载视频格式文件以及加载相应运行记录文件,达到操作功能简洁方便,一目了然,而又不影响日常分析处理的需求。系统按主要功能划分为以下5个子系统模块(见图2),每个子系统功能模块的作用描述如下:

自营项目之轮是城投的方向所在,发展之本.自营项目对保证企业的独立性、可持续性至关重要.自营板块大的企业一定是好企业.自营板块的开发,可以利用指定项目开发形成的无形资产及特殊资源,起步快;自营项目自主性大,可以实现效益最大化;自营项目更容易利用资本市场开展经营活动,让员工快速实现财富增加.就目前来看,一般的城投公司大多选择金融板块,城市商业区开发板块,房地产板块,建材矿产板块,城市土地区块开发板块,广告开发板块,城市水、电、燃气、公交等公用设施营运板块作为发展方向.只有真正把自营板块做大做强,城投才可以说是有实力,有影响力,是可持续发展的.

图2 系统功能模块图

(1)多通道视频播放。加载视频后会在列表显示相关视频信息,包括视频开始时间,视频时长等。可对播放窗口模式进行切换,1、4、6、8、9、10、13、16个播放窗口显示,满足顾客实际情况需要。

(2)机车运行视频及数据图表显示。图表可显示当前视频播放进度、机车速度、管压曲线以及相关运行信息等。可调节播放进度,跳转到相应时间点。

(3)视频播放控制。可对视频进行播放暂停、快速减速播放、截图、截取视频及全屏等操作。

(4)项点分析。分析运行记录文件,通过项点发生逻辑判断项点发生时间,视频可跳转到项点发生时间,用户得以更方便的观察机车运行情况。

(5)生成机车运行日志报表。可生成机车运行报表,包含视频图像、机车数据及编写报告等。

3 软件架构功能设计

本软件在设计上充分考虑到了模块化指导思想,界面设计和后台逻辑相分离,主要包含软件界面模块、视频解析模块、视频转码模块以及数据展示模块(见图3)。

为实现机车视频与LKJ数据的联动性,关键是需要对机车视频信息及LKJ数据帧信息的关联实现同步,本软件首先将视频信息进行解析,得到视频的开始时间及视频时长,再将LKJ数据文件解析保存到内存中,当用户播放视频的同时,将对应时间下LKJ数据帧信息取出,展示到软件界面的相应模块中,使得分析人员可以在视频时间下查看机车LKJ数据,更好地分析机车运行状况。

软件开发环境为Visual Studio 2013,采用其中已安装模板WPF模块开发,WPF是目前最为流行的Win⁃dows桌面程序设计框架,程序语言使用C#语言开发,所使用的控件、容器、组件、工具栏、菜单栏及对话框等都是在WPF框架下提供[2,5]。

3.1 主功能界面显示

图3 系统流程图

软件主界面包含视频播放窗口,播放控制工具栏,时间轴,机车监控曲线轴,文件列表,加载文件列表,文件日期统计列表,机车监控项点列表,机车数据显示列表。并支持显示隐藏图表列表功能。软件界面主要用于加载录像文件信息,获得录像文件相关信息,然后用户可双击文件列表,文件日期统计列表时间,项点名称列表的任意视频文件播放对应录像视频。

根据需求,用户可直接点击播放窗口模式切换可进行1、4、6、8、9、10、13、16个播放窗口显示,可直接观看相应模式下的视频文件,也可双击视频实现全屏模式(见图5)。

通过选择的不同模式,计算出对应模式下的视频宽高比,就能得到不同的展示形式,满足客户的体验需求[6]。

3.2 视频时长解析

由于要在图表上显示出视频时长曲线,但知道开始时间并不够,所以需要对时长进行解析,获取视频的时长。普通格式的视频文件解析视频时长非常简单,因为其本身信息就自带了时长信息,可以直接获取,但是机车视频为了节省空间,在格式上做了特殊处理,对一些冗余信息未做保存,需要对视频流进行分析才能获取视频的时长及各种信息。

为了更好地获取视频时长信息,采用了FFmpeg获取视频信息的方法,利用FFmpeg解析视频,可以很方便的获得视频信息。图6是FFmpeg解析流程图,首先会读入视频流,判断视频的格式,确定后对视频进行解码,获取其帧信息,包括分辨率、帧率、码率、总帧数、时长和编码格式等。

3.3 图表信息显示

点击视频播放进度条可对播放视频按照时间轴进行定位,跳转到相应时间点位置播放视频。通过获取跳转时间点的时间,判断该时间点处于整个视频的位置,直接改变视频的Pozition属性就能实现跳转。图表上显示机车速度、管压和视频等信息。并可对图表进行放大缩小等操作。

图4 主界面图

图5 多画面模块图

图6 FFmpeg解析流程图

时间轴定位图如图7所示。

图7 时间轴定位图

3.4 视频剪切

当视频开始播放时,点击菜单栏“操作”→“视频裁剪”或者按钮。进入视频剪切界面,选择裁剪时间和通道号开始裁剪。可选择剪切全部通道视频或单个通道视频,并对视频时长进行选择。

能实现剪切视频文件的工具多种多样,但往往都需要进行视频重编码(TransCoding),这就不可避免的带来了视频质量上的损耗,转换时间长,不能非常精准有效地进行剪切操作。

在视频编码时,视频帧一般分为I帧,B帧和P帧。所有视频开始的第一帧都是I帧,之后才是B帧,P帧,I帧只占少数,主要起的作用是作为后续帧的参考帧。而一般的工具在视频剪切时都会在有I帧的时间点剪切,因为I帧是起始帧,作为后面帧的参考帧,这样就不可避免的会对时间有所偏差。而借助FFmpeg可以在不进行视频重编码的情况下完成此类任务,并且可以对剪切时间点的那帧解码,使其成为I帧,这样就能有更加精确地剪切效果。通过指令“FFmpeg -i input.mp4 -ss**START_TIME** -t **STOP_TIME** -acodec copy-vcodec copy output.mp4”可以高效快速的获得所需要剪切的视频。

3.5 项点逻辑分析

机车项点信息是机车运行重要数据,包括开车事件,停车事件,监控动作,侧线运行,人为紧急,进入调车,过分相点,特殊区域,红黄信号,总风低压,监控解锁,继乘交接,黄灯信号,减压制动等。

每个事件都有其对应的逻辑,例如开车事件的逻辑为:LKJ装置开车状态下,机车由静止状态开始运行,速度大于0,当速度达到3 km/h,装置记录该时点前后若干秒,作为开车事件。需要在程序中解析记录文件信息,通过事件发生逻辑,判断事件的发生时间点,获取项点后将其记录,最终显示到列表中。用户可查看发生的项点信息,并点击项点后视频跳转到项点发生的时间播放,解析流程见图8。

图8 项点事件解析流程

软件能够有效地分析相应时间段下LKJ数据中对应的项点信息,并在视频区域及数据显示区域有效地展示项点时间点的信息,为用户更好的分析机车信息。

4 结束语

经过多次测试及现场工作人员使用,该视频播放器能够较好的实现6A多路视频的控制播放与机车LKJ数据的联动显示,有助于工作人员处理好相应数据分析,生成分析报告,能够同时对多路多媒体进行有效地控制,并实现显示文件的时间长度,播放的时间位置,并能够拥有一定的稳定性、兼容性和实用性。功能相对完善,基本上支持市面上绝大多数格式的多媒体,为机车数据分析,安全性能的提高又提供了一层保障。

基于机车视频与运行数据联动分析的视频解决方案已日渐成熟,能够基本满足使用单位需要,使得数据分析人员能够更好的分析机车相关数据。但随着需求的日渐提高,未来对视频文件的分析也有更高的需求。基于视频图像内容分析的需求应当是未来铁路机车行业视频分析中的重点,例如:可以进行公里标牌识别,司机动作识别,特殊动作识别,列车车号识别,弓网设备等。相信图像及视频识别技术将会在未来的轨道交通领域中大放异彩。

猜你喜欢

视频文件剪切机车
剪切变稀
考虑剪切面积修正的土的剪应力−剪切位移及强度分析1)
连退飞剪剪切定位控制研究与改进
随心定制视频文件的缩略图
TC4钛合金扩散焊接头剪切疲劳性能研究
“周恩来号”机车连续40年投入春运
DF8BI内燃机车整车称重调簧工艺适用条件研究
快速检索,抓取电影中的精彩篇章
机车英雄
在塞纳河畔遇见的“他”邂逅机车收藏家Hector