基于Web的EAST实时视频点播系统①

2017-10-13 14:47夏金瑶肖炳甲王开荣罗文利
计算机系统应用 2017年3期
关键词:视频点播视频文件页面

夏金瑶, 肖炳甲, 李 丹, 王开荣, 罗文利



基于Web的EAST实时视频点播系统①

夏金瑶1,2, 肖炳甲1,2, 李 丹1, 王开荣1,2, 罗文利3

1(中国科学院等离子体物理研究所, 合肥 230031)2(中国科学技术大学, 合肥 230031)3(中国船舶重工集团公司第七〇九研究所, 武汉 430047)

基于Web的EAST(全超导托卡马克)实时视频点播系统是在原视频点播系统的基础上进行优化和改进实现的, 具有实时点播EAST实验中的等离子体放电视频、搜索视频、下载视频以及逐帧分析视频等功能. 该系统主要由视频合成应用程序和视频点播网站两个部分组成, 视频合成程序采用socket TCP通讯的方式接收炮号信息, 通过共享目录转移视频帧文件, 最后利用ffmpeg将视频帧文件合成flv视频. 视频点播采用B/S(浏览器/服务器)结构框架实现, 通过JSP从数据库读取炮号信息实现点播功能, 结合XML和JavaScript实现逐帧分析. 目前本系统已经在EAST实验中投入使用, 为EAST实验人员提供了极大的便利.

实时; 视频点播; ffmpeg; XML; JavaScript

EAST(Experimental Advanced Superconducting Tokamak), 是中科院等离子体物理研究所在成功建设中国第一个超导托卡马克HT-7的基础上, 提出的“HT-7U全超导非圆截面托卡马克装置建设”计划[1]. 在EAST托卡马克实验中, 为了记录和重视等离子体的位形以分析托卡马克启动和等离子体成形控制的效果, 刘连忠等建立了视频点播系统, 配合高速视频采集设备, 实现了等离子体放电视频的采集、发布和点播功能[2]. 但是随着高速采集相机类型的增加, 以及每年不断增长的视频数据, 原来的视频点播系统出现视频类型单一, 视频采集转换延迟, 耗费系统资源以及存储不足等问题. 因此在原视频点播系统的基础上不断的改进和优化, 建立实时的视频点播系统具有重要的现实意义. 在EAST实验中, 实时将高速摄像机的高清视频转化为可用于网络传输的视频格式, 利用Internet高速迅捷的传播优势, 科研人员通过Web浏览器可以在EAST实验过程中实时查看等离子体位形的视频, 对实验结果进行分析研究, 为EAST工程实验人员提供了极大的便利.

1 系统结构

EAST实时视频点播系统结构框架如图2所示, 主要由四部分组成, 分别是总控、视频采集服务器、视频存储服务器和视频点播服务器.

图1 系统总体框图

实验开始, 总控(中央控制系统)向视频采集服务器发送触发.

视频采集服务器接收到总控炮号触发后开始录制视频, 录制完成后对原始的视频进行分帧并保留时间文件, 然后打包压缩并以炮号命名, 压缩完成后向视频点播服务器发送炮号信息, 最后将原始视频实时传输到视频存储服务器上.

视频点播服务器监听并接收炮号, 拷贝压缩文件并解压, 将帧序列合并为flv视频, 将视频存入存储中, 并将分帧信息存入信息数据库中. 通过B/S(浏览器/服务端)机制, 供用户在网页中查看最新炮号的的信息及视频.

存储服务器用于存储所有的原始视频文件和flv视频文件.

2 系统实现

2.1视频采集

视频采集是通过专门的高速CCD设备获取视频[3], 目前CCD主要有红外相机一个, 可见光相机三个. EAST 红外诊断系统所使用的相机包括一个红外相机IR和一个可见光黑白相机HSCCD, 两个相机共享内窥镜, 均位于K窗口, 可同时监测上下偏滤器, N窗口低杂波天线以及位于M、N 窗口之间的限制器[4]. 红外相机热像仪为满足科研、无损检测领域要求的热分析而设计, 速度快, 分辨率高, 非常适合要求精确测温的应用领域[5]. 另外两个可见光彩色相机NCCDDL、NCCDGL分别位于D窗口和G窗口[6]. NCCDDL相机可观测D窗口到A窗口区域. NCCDGL窗口相机为可观测G窗口到D窗口区域.

实验开始时, 中央控制系统通过网络以TCP方式发送炮号信息给可见光相机, 通过发送脉冲信号给红外相机, 相机开始采集视频. 放电结束后, 停止采集, 生成原始视频格式, 原始视频格式需要安装专门的软件才能播放且采样率高不便于网络传输, 因此对视频进行采样分帧, 并保存帧序列时间文件, 视频帧格式及采样率如表1所示.

表1 高速相机视频帧序列

视频分帧完成后将帧序列文件和时间文件打包为以炮号命名的压缩文件, 存放到视频点播服务器可以访问的共享目录下, 并通过Socket TCP通讯方式发送消息给视频点播服务器, 消息格式为“炮号,视频类型,文件格式#”. 最后通过磁盘映射将原始格式视频传到视频存储服务器中.

2.2视频合成

视频点播服务器时刻监听视频采集服务器是否发送最新炮号信息, 接收到炮号信息后开始合成点播所需的flv视频文件. flv视频合成程序的流程图如图2所示. 视频合成程序主要由两个线程组成, 线程1用于监听视频采集服务器是否有新炮号发送, 线程2用于视频帧序列文件的转移与视频的合成. 两个线程共享炮号队列.

线程1通过socket通讯方式监听是否有新炮号, 将新的炮号信息加入炮号队列队尾中, 然后继续监听炮号.

线程2循环检查炮号队列, 如果炮号队列不为空, 则开始视频帧序列的转移与flv视频的合成. 具体步骤如下.

(1) 退出炮号队列的队首元素(炮号信息字符串), 将炮号信息字符串进行分割, 如“10000,NCCDDL,zip#”, 其中“10000”为最新炮号, “NCCDDL”标志为 D窗口可见光相机, zip为压缩文件格式, “#”为结束标志.

(2) 根据炮号和视频类型到对应的共享目录下拷贝“10000.zip”文件到本地, 并用7za.exe对文件进行解压缩到本地目录. 解压的文件包括视频帧序列文件和时间文件, 如果时间文件缺失, 或文件大小为0, 则结束当前视频合成. 否则用ffmpeg工具将视频帧序列文件合成为flv视频, ffmpeg是一套可以用来记录、转换数字音频视频, 并能将其转化为流的开源计算机程序[7]. 炮号为10000的视频合成命令行如下所示:

ffmpeg.exe -r 120 -i 10000_%3d.jpg -qscale 1 -y 10000.flv

其中, -r表示帧频率, 根据时间文件相邻时刻点计算得到帧频率如NCCDDL帧频率计算为120HZ, -i表示输入帧序列文件, 文件命名方式为炮号名_序列号.jpg, -qscale为压缩率, 这里不进行压缩, -y为覆盖方式输出合成视频文件10000.flv.

(3) 撰写帧信息文件shot.xml用于视频点播网站的逐帧分析. 文件格式如下,包括视频帧的序列号, 时刻点以及帧图片文件名等信息.

(4) 将炮号信息写入到SQL Server数据库中, 用于视频网站的点播, 主要包括炮号名, 生成时间, 视频文件名和视频的总帧数.

视频合成程序用C++可视化编程实现, 程序启动后弹出对话框如图3所示. 左边为炮号队列状态, 右边为炮号转移与视频合成的状态, 每个过程都有状态显示. 跑号队列中“65158,NCCDGL,zip,65160#”表示增加连续炮号65158~65160. 关闭对话框就保留状态记录到历史文件中, 便于后期查遗补漏.

图3 视频合成程序运行效果图

2.3 视频点播与存储

视频点播网站主要由标题、导航和内容三层布局组成. 导航主要包括首页、视频、逐帧分析、用户手册和联系我们五个部分. 其中主要部分为视频点播和逐帧分析页面.

视频点播页面如图4所示, 包括 6 个视频目录, 分别是 Black-White、Color、NCCDDL、NCCDG、IR、HSCCD. 图4为可见光彩色视频点播页面. 该页面是JSP实现的动态页面, 可以读取数据库实时更新炮号, 也可以输入炮号搜索视频、播放视频或下载视频.

图 4 视频播放页面

在导航栏中点击“FRAME ANALYSIS”, 进入视频分析页面. 与视频点播一样包括6 个视频目录, 分别是 Black-White、Color、NCCDDL、NCCDDR、IR、HSCCD. 如图5所示为可见光彩色视频分析页面. 输入“shotNo”后点击“Analysis”, 后台JavaScript可以解析指定炮号的XML文件, 通过“pre”, “next”和“Show”按钮可以查看指定时刻的图像. 通过设置“speed” 和“Slide”可以按指定的速度播放视频.

图 5 视频分析页面

随着每年EAST实验的进行, 视频的类型和数量不断的增加, 如表2所示, 2014年开始, 实验视频数据为T量级. 视频点播服务器的存储空间有限, 将EAST实验视频存放到专门的存储服务器上, 并对存储进行定时备份是至关重要的.

表2 flv视频统计

3 优化前后对比

3.1 实时性

实时视频点播系统耗费的通讯方式为socket通讯, 视频采集完后立即发送消息给视频点播服务器, 然后采用双线程模式分别处理炮号信息和合成视频, 速度快没有延迟. 原系统通过不断遍历共享目录查找最新文件判断是否有新的炮号文件生成, 若有新炮号则开始拷贝视频文件并分帧视频, 单进程实现, 耗费系统时间和资源. 表3为模拟65154~65158到来时, 原系统与新系统耗费的时间对比, 从表3可以得知实时视频点播系统转换不同长度的视频所耗费的时间均优于原系统.

表3 新系统与原系统时间对比

3.2 容错性

原系统通过命令行的方式显示程序运行状态步骤, 不便于翻阅, 且不保存历史记录. 实时系统在程序运行中通过可视化方式记录每个新炮号到达时视频合成的过程, 如图3右侧所示, 当关闭应用程序后, 历史记录将保存为历史文件, 便于检查是否有炮号遗漏、是否出错以及错误原因.

当共享目录断开连接后, 原系统进程无法检测是否有新文件生成, 程序出错并停止运行. 实时系统程序出现转移炮号文件失败的提示, 并继续接收炮号信息, 共享目录恢复后程序仍然正常运行.

当新炮号视频文件在实时转换中失败时, 原系统程序需要通过将共享目录中尚未转换的视频文件移出共享目录再移入的方式, 模拟炮号文件的生成, 进而实现转换. 实时系统只需要给视频转换程序模拟发送如“65158,NCCDGL,zip,65160#”炮号信息, 程序自动转换炮号文件65158~65160, 如图3所示.

3.3 扩展性

原系统将视频分为彩色和黑白两类, 实时视频点播网站中对视频进行了进一步分类, 增加了多个相机的目录, 并描述了不同相机拍摄的范围, 便于新用户使用. 不同的相机视频显示分辨率不同, 实时系统将原系统固定分辨率改为自适应分辨率, 方便在不改变程序的情况下增加新的相机视频.

3.4 可靠性

原系统所有的视频及帧序列文件均存储在视频点播服务器上且没有备份. 视频点播服务器硬盘总容量有限, 随着视频种类和数量的增加及其他的应用对空间的占用, 剩余的空间逐渐减小. 若系统硬盘出现故障, EAST实验视频数据将不可恢复. 新系统将所有的视频文件放在专门的存储上, 并定期进行冗余备份, 即减轻视频点播服务器的负担, 又保证了数据的可恢复性.

4 结语

本文主要介绍了基于Web的EAST实时视频点播系统的设计与实现过程. 该系统具有视频合成速度快、画面清晰、交互性好等特点, EAST实验人员可以在实验过程中实时直观的查看等离子体放电视频和逐帧分析视频. 与原视频点播系统的对比, 实时视频点播系统在实时性、容错性、扩展性和可靠性四个方面都体现了一定的优化和改进. 目前本系统已经在新一轮的实验中投入使用, 基本满足实验人员的需求. 下一步将增强视频点播网站搜索的功能, 能够按实验的年份、视频类别等条件搜索; 增加不同类别视频同步显示的功能, 便于实验人员同时查看不同方位的等离子体放电视频.

1 党宁宁,肖炳甲.虚拟EAST系统的设计与实现.计算机应用,2010,30(增1):245–247.

2 刘连忠,肖炳甲,陈利军,舒双宝.EAST视频点播系统的设计与实现.微计算机信息,2009,25(12-3):9–11.

3 陈利军,肖炳甲,刘连忠.EAST实验视频采集系统的设计与实现.微计算机信息,2009,25(21):265–267.

4 Yang ZD, et al. Study of heat load on EAST divertor plates by an infrared camera. Journal of Fusion Energy, 2015, 34(4): 704–710.

5 王晓琼,舒双宝,甘开福,龚先祖.EAST红外CCD诊断系统的图像采集与处理.计算机技术与发展,2015,25(8):180– 183.

6 Yang JH, et al. Development of high-speed and wide-angle visible observation diagnostics on experimental advanced superconducting Tokamak using catadioptric optics. Review of Scientific Instruments, 2013, 84(8).

7 https://ffmpeg.org/.

EAST Real-Time VOD System Based on Web

XIA Jin-Yao1,2, XIAO Bing-Jia1,2, LI Dan1, WANG Kai-Rong1,2, LUO Wen-Li3

1(Institute of Plasma Physics, Chinese Academy of Sciences, Hefei 230031, China)2(University of Science and Technology of China, Hefei 230031, China)3(709th Research Institute, China Shipbuilding Industry Corporation, Wuhan 430047, China)

EAST (Experimental Advanced Superconducting Tokamak) real-time VOD (Video on Demand) system based on Web can display the plasma discharge videos, search videos, download videos and analyze videos frame by frame, which is improved and optimized based on the old VOD system. The system mainly includes two parts: the application of video synthesis and the VOD web station. The video synthesis application accepts shot information by using socket TCP communication firstly, then moves video frames through sharing directory, finally synthetizes videos with the tool of ffmpeg. The VOD system is implemented through B/S (Browser/Server) framework. It uses JSP to realize VOD function by reading shot information from database, and analyzes videos frame by frame by combining XML and JavaScript. The system has been already used in the EAST experiment, which is of great benefit to EAST experimenter.

real-time; VOD; ffmpeg; XML; JavaScript

国家磁约束核聚变能发展研究专项(2014GB103000)

2016-07-01;

2016-08-08

[10.15888/j.cnki.csa.005666]

猜你喜欢
视频点播视频文件页面
刷新生活的页面
随心定制视频文件的缩略图
答案
今年订阅视频点播收入将超票房收入
让Word同时拥有横向页和纵向页
全球观众已疲于选择新的流媒体平台
快速检索,抓取电影中的精彩篇章
基于Web的流媒体视频点播系统在校园网络中的运用
视频文件,看过来