=Luna Video Stream Server (VSS)= ==功能==
显示6路MPEG-TS流媒体(另含一路预览视频通道),提供滚动字幕。
MPEG-TS流的视频编码部分必须为H.264,音频部分必须为AAC,每秒1~2个I帧(FFMPEG参数-g 14),其它格式的视频流文件必须经过转换(是否在服务器上直接提供转换功能待定)才能进行播放。
可设置在视频流播放指定的时间间隔时插入一段广告,广告视频流的要求同上述。
视频流和滚动字幕均通过UDP多播发送,视频流广播地址为udp://225.0.0.1:2001-2006,字幕为udp://224.0.0.1:2001-2006,另提供udp://225.0.0.1:2007以进行视频预览。 服务器接受UDP广播请求进行控制
==依赖关系== {| class="wikitable" |- ! 库 !! 版本要求 |- | GLib 2.0 || >=2.32 |- | FFMPEG (libav) || >=1.0 |} ==字幕协议==字幕数据使用XML格式,协议约定如下:
==客户端控制协议==04 #必须存在,04为即时消息(UUID) #必须存在,消息的UUID12 #非必须,字体大小#FFFFFF #非必须,字体颜色消息测试 #必须存在,消息文本0 #非必须存在,持续显示时间,0为永久,正数时为保持时间,单位为秒
控制协议使用和字幕相似的格式,并使用相同的广播地址,协议约定如下
==运行环境==03 #必须存在,03为控制消息(UUID) #必须存在,消息的UUID0 #必须存在,0为音量调节100 #必须存在,音量范围0-100-1 #必须存在,音量持续时间,-1为永久,正数时为保持时间,单位为秒03 (UUID) #必须存在,消息的UUID2 #必须存在,2为设定屏幕左侧显示的网页http://www.example.com #所需要显示的页面地址,若无此项或值为空则隐藏左侧的网页显示部分
(待定)
==客户端显示布局== 屏幕分辨率为1280x720,分为3个区域,左侧为静态网页,范围(0,0)-(320,720),右上为视频流媒体(320,0)-(1280,640),右下为滚动字幕(320,640)-(1280,720) ==当前进度== {| class="wikitable" |- ! 名称 !! 状态 |- | 视频流回放 || style='color: green' | 完成 |- | 视频流进度控制 || style='color: green' | 完成 |- | 播放列表 || style='color: green' | 完成 |- | 广告插入 || style='color: green' | 完成 |- | 滚动字幕 || style='color: green' | 完成 |- | 客户端 || style='color: green' | 完成 |- | 服务端系统整合 || style='color: green' | 完成 |- | 客户端系统整合 || style='color: green' | 完成 |} ==测试命令==socat UDP4-RECVFROM:2001,ip-add-membership=224.0.0.1:0.0.0.0,fork,reuseaddr STDIO #模拟滚动字幕客户端 socat UDP4-RECVFROM:2001,ip-add-membership=225.0.0.1:0.0.0.0,fork,reuseaddr STDIO #模拟视频流客户端 ffmpeg -re -i sample.m2ts -codec copy -f mpegts udp://225.0.0.1:2001 #发送视频流