微博

QQ

基于VBScript实现Viz在线包装的互动操作

2015-11-02 苏州广播电视总台 黄敏杰 传播与制作


  【摘要】 在Viz trio中,VB脚本可以被添加到任意模板,这样可以在脚本中执行自定义功能,包括外部数据源的导入,用户的指导等等;本文基于VBScript语言,在Viz4K引擎上实现了Viz trio自动执行读取串联单并调取内容和图片的操作,提高了制作效率和可靠性。

  【关键词】 VBscript  Viz在线包装  串联单

一、引言

  1.1 开发设计背景

  苏州广播电视总台社会经济频道演播室于2015年5月1日改版后正式播出,演播室舞美、系统重新设计改造,改版后的演播室加入了4K大屏的渲染包装和虚拟脚架的应用,灯光系统由原先的低色温灯组改成高色温,舞美灯带可以根据不同节目的需求调节不同的亮度和颜色,并且接入灯光操作台。改造后的演播室使得电视节目的呈现变得更加丰富的同时,对电视节目的制作也有了更高的要求。

  1.2 目的和意义

  我台新闻节目制作使用的是大洋的非编文稿系统,在数据接口上没有开放完全,因此Viz在线包装无法实时读取非编文稿中串联单的内容,这样导致每次字幕操作人员都要从文稿系统中导出串联单,再根据串联单中的内容手动输入到在线包装输出,费时费力;前期在节目量没有上去的情况下,操作人员需要提前至少半个小时到演播室完成串联单内容的输入和确认,后期随着大屏包装的加入,内容越来越丰富,制作难道也越来越大。

  VBScript脚本设计的目的在与优化与文稿系统的对接,简化操作流程,提高播出的安全性和可靠性。

二、演播室配置及设计思路

  2.1 Viz在线播控系统

  2.1.1 Viz在线字幕包装系统

  在线播控系统由三台Viz字幕在线包装组成,系统框图入图1所示。演播室改造之初有两台在包装负责直播和录播节目的视频包装,后期又加入一套在线包装,并且每台在线包装加入两路视频信号输入,满足信号开窗和各类节目播出的需求;三台在线包装设计配置完全一样,互为主备,在改版后的演播室,有《非常帮助》和《社会传真》两档连续播出的直播栏目,三台在线包装在其中起着至关重要的作用。

基于VBScript实现Viz在线包装的互动操作

图1

  2.1.2 Viz在线大屏包装系统

  Viz在线大屏包装系统框图如图1所示,4K大屏包装带有两路视频信号的输入作为开窗信号选择,4K输出思路信号中有两路信号到融合器输出到LED大屏,另外两路信号进入矩阵,方便系统内各信号的的调度选取;4K大屏包装的备份采用独立的形式,其输出和一路垫播视频源进入融合器进入二选一输出,当4K 大屏包装有问题可以立即切换到垫播画面在LED大屏播出。

  2.2 Viz Trio播控软件

  2.2.1 Viz Trio简介

  Viz Trio属于Vizrt图文播控系统,不仅仅包括字幕机的所有功能,还包括其他丰富的播控功能。它结合Viz Scequencer Engine的控制程序,通过Viz Engine进行渲染输出。所有已播放的图文内容以页(page)的形式存在,每个页都是唯一的编号,用户可以直接播控每个页的播放。另外,Viz Trio支持所见即所得功能。对于普通字幕机来讲,该产品为操作员提供了优秀的图形化界面和可操作性。

  2.2.2 Viz Trio与VBScript应用

  Viz Trio中自带脚本模板“Viz Template Wizard”,简称VTW模板,使用VTW为播控单创建标准的模板非常的便捷,它可以对全部的Viz Trio播出单执行默认的命令,并且能够设置和获得属性;于此同时,Trio还自带宏语言,我们可以理解成,在Trio播控中所有的播控行为的发生,都是通过播控机给渲染机发送宏语言完成的。用Viz Trio宏语言可以将许多平时在图形用户界面才能完成的操作编写成脚本,理论上利用宏语言可以完成一切图形化界面的操作,并且Viz的宏语言是对外开放的,方便后期的开发和定制。

  Viz Trio的命令可以通过窗口的形式显示,如图2所示,Viz Trio用户界面和脚本基本使用相同的宏命令。当执行不同的用户界面操作时,使用命令窗口可以查看正在发送的命令。冒号后就是实际的命令,在框图底部文本区域输入命令,点击“Execute”就可以执行命令,Viz命令的参考详见Viz Trio操作手册。

基于VBScript实现Viz在线包装的互动操作

图2

  2.3 VBScript脚本设计思路

  2.3.1 VBScript简介

  VBScript是Visual Basic Script的简称,即 Visual Basic脚本语言,有时也被缩写为VBS。它是一种微软环境下的轻量级的解释型语言,它使用COM组件、WMI、WSH、ADSI访问系统中的元素,对系统进行管理。同时它又是asp动态网页默认的编程语言,配合asp内建对象和ADO对象,用户很快就能掌握访问数据库的asp动态网页开发技术。

  在Viz Trio中插入VBS脚本,大大增强了页面的动态性和交互性。

  2.3.2 节目的需求和脚本的设计思路

  在系统设计之初,节目部门对于演播室内改版后节目的播出,讨论的最多的是关于大屏包装的和字幕在线包装的事实播出;包括开窗信号的选择,视频串联单和在线包装播出单的一致性,大屏图片和视频的调取,都是迫在眉睫,不得的解决的问题。

  每个栏目,包括直播和非直播类节目,播出方式都不尽相同,因此在VBS脚本的设计上,要充分考虑各个节目的需求,做到每个节目的专门化定制。例如,像《谈天说地》这类非直播、口播类录制节目,需要大量实时准确的天气数据和素材图片,程序设计时就抱保证数据的可靠性和实时性,因此可以制定相应的Excel表格来规范数据的输入和存储的路径,并且数据随到随导,不影响后面节目的播出;而对于《社会传真》这类直播节目,时间长,图片多,各类数据过来类型多样,程序设计就要充分考虑到直播的安全性和便捷性,以最有效最精简的方式来完成图片和数据的导入。

三、设计中遇到的问题及解决办法

  3.1数据的读取和替换

  在Viz Trio中,几乎所有脚本功能都是包含在TrioCmd(“macro_command”)中的macro_commands(宏命令)。例如,当在Viz Template Wizard模板中执行类似TrioCmd(“page:read 1000”)的命令时,被标为1000的页将被执行。宏命令可以在Viz Trio技术手册中查询得到。

  以《谈天说地》节目为例,《谈天说地》栏目是社会经济频道下一档重要的子栏目,主要以播报实时天气以及一些节气和卫生相关知识为主,节目整体丰富多样,需要用到虚拟前景包装和大屏包装。如图3所示,大屏包装除了要精确播放近几天的实时气温数据,还要插入内容丰富的图片供主持人口播用;考虑到实时性、准确性,栏目每天获取的气象数据和图片都比较晚,与节目制作时间相冲突,并且每次操作人员还得手动替换图片和数据,费时费力,容易出错。

基于VBScript实现Viz在线包装的互动操作

图3

  VBS程序设计具体实现方法如下:

  1、将播出模板以固定页(page)的方式存入播出表单(show),规定好背景图片存放路径和存放格式,如图4所示。

基于VBScript实现Viz在线包装的互动操作

图4

  2、制定一张Excel表格(参考附录1.谈天说地天气表.xlsx),将模板中每页的数据填入表格中,包括需要替换的图片名和路径。如图5所示。

基于VBScript实现Viz在线包装的互动操作

图5

  3、VBS通过

  “Set objWorkbook=objExcel.Workbooks.Open("H:\E-tantianshuodi\谈天说地天气表.xlsx")”命令打开表格,并通过“objExcel.Cells()”读取表格内数据,在通过“TrioCmd()”调取宏命令存入模板页中。

  具体程序请参考附录2.谈天说地.VBS

  3.2图片的导入和命名

  以《社会传真》节目为例,《社会传真》是社会经济频道一档主打的直播栏目,每天的直播接在另一档直播结束后,时间从18:30到19:40,期间需要用到大量的大屏开窗和点评,每天大屏包装输出的图片在25张左右,输出图片模板如图6所示,包括图片路径、图片配字以及图片大小参数等。由于栏目播出素材多,时间紧急,每天播出的图片到达演播室的时间都要将近直播开始,甚至在直播以后才到;操作人员需要在兼顾播出的同时,替换图片并输入图片名和串联单后,经常导致效率低下,出错率提高。

基于VBScript实现Viz在线包装的互动操作

图6

  针对此类情况,VBS程序设计具体实现方法如下:

  1、在播出表单中存放图片播出模板,并固定页数为“page 9999”。

  2、规定好需要导入图片的路径,并且图片命名方式以“串联单号+图片文字”的形式,对图片格式没做规定。

  3、遍历整个存放图片的文件夹,通过“instr()”、“left()”、“mid()”等函数,将图片内容三部分-图片名、图片序号、图片内容分别存入“arry1()”、“arry2()”、“arry3()”三个数组。部分程序如下:

  Set fso = CreateObject("Scripting.FileSystemObject")

  Set fo=fso.GetFolder("H:\A-chuanzhen\直播用图片")

  Set fl=fo.Files

  for Each f in fl

  dim temp3,le,temp4

  le=instr(f.name,"")

  temp3=left(f.name,(le-1))

  temp4=replace(f.name,"","")

  arry2(i)=temp3

  arry3(i)=mid(temp4,le,(len(temp4)-le-3))

  arry1(i)=f.name '获取整个文件名

  4、利用“for循环”,从串联单号1~50升序查找,看文件夹下的图片有没有序号对应,如果和序号和串联单号对应就将“page 9999”通过调用“SendTrio(readpage,saveaspage,file_Path,title)”函数另存为播出的图片,并在附属栏里标上图片串联单号,如图7所示,另存页数从20001页开始,并依次增长,指导图片导入结束。

  具体程序请参考附录3.社会传真.VBS

 

图7

  3.3 后期遇到的问题以及优化

  VB脚本的定制和优化是一个漫长复杂的过程,前期后期都要和节目组人员沟通到位,并且还要满足他们不断变化的需求。在脚本后期的优化中,笔者加入了一些比较实用和纠错的功能,如对于图片命名不规范的报错,对多加空格字符的去除和对图片以及数据名字命名不规范的修复修复等优化操作,进一步提升了稳定性和操作便捷性。

四、对于VBScript的应用探讨和设想

  Viz为用户提供了很多命令话的接口,可以通过这些接口读取TXT、XML、EXCEL和图片等信息,甚至是数据库中的信息,这样我们就可以通过读取外部数据库的信息,来实现一控多的在线播出方式,升至可以实现通过一台控制机发送命令,就能完成整个演播室的包装播出。现在一些非编文稿系统对于其数据接口做的不够开放和统一,因此Viz对于其外部数据的读取还存在一定障碍,不过这层障碍也会越来越小,随着广电事业的蓬勃发展,各种个性化的需求会越来越多,相信以后数据接口方便的优化也会做的越来越好,一控多、自动化的播出方式也不再是遥不可及的事情。

参考文献

  【1】Vizrt,VizTrio_2.11_UsersGuide 2009.11。5

  【2】Adrian Kingsley-Hughes,Kathie Kingsley-Hughes,VBScript程序员参考手册

  【3】百度百科,VBScript,http://baike.baidu.com/link?url=wtpxbRfoUuLpM53q2q9FNtxGAqfpG-ux65kDi91a1XV9c5AaqSKakfc5pNtAnucNZucqg8Tum73Bxfs3AtzE-_

Viz trio VBScript Viz 在线包装

视听科技视频号 广告
发表评论