Live Multi Studioを野球中継で使ってみた

LMS2

Live Multi Studio(LMS)とは

以前紹介したTBSとWOWOWが開発したLive Multi Studio(LMS)を実際に番組制作で使用してみました。LMSは映像を伝送する“LMS video”、音声を伝送する“LMS audio”、制御を伝送する“LMS control”を使って映像・音声・制御信号をそれぞれ伝送することができます。今回はLMS videoをリターン、LMS controlをタリーとして活用しました。

リターン・タリーの必要性

少し番組制作の専門用語になるのでリターン・タリーについて説明させてください。
その前に番組制作においてカメラマンが撮影した映像がどのようにオンエアされているのか簡単に説明します。
番組制作では複数のカメラを使用しており、撮影した映像やVTR素材など、様々な映像がスイッチャー(以降SW)に集まり、どのカメラの映像を使うか切り替えています。
収録番組では収録後編集していますが、生放送ではSWで選択した映像がそのまま放送されています。

リターンとは

カメラマンが他のカメラマンが何を撮影しているか把握するための映像です。
番組制作では複数のカメラで同時に撮影しているので、「他のカメラマンと同じものを撮影していないか」「他に撮るべきものは何か」をカメラマンはリターンを参考にして瞬時に判断します。
リターンはSWからケーブルを通してカメラに送られ、カメラのモニタで見ることができます。ほとんどの場合はSWで選択されている映像をリターンとして送ることが多いです。

タリーとは

SWで自分のカメラが選択されているかどうかの印です。自分のカメラの映像がSWで選択されている場合は赤く点灯します。タリーもリターンと同様でSWからケーブルを通してカメラに送られ、カメラのモニタで見ることができます。

番組活用

番組制作ではワイヤレスカメラ(以降WLカメラ)という、ケーブルでSWと接続されていないカメラを使用することがあります。このWLカメラはカメラで撮影した映像を無線で送信し、受信機が受信した映像をSWに取り込んでいます。よってWLカメラにはリターンとタリーを送ることができません。
今回はLMSとTouchDesigner、iPadを使って、WLカメラマン向けのリターン・タリーを実装しました。実際に2/16(日)にMBSで放送したプロ野球中継“MBSベースボールパーク”で使用しました。

システム構成

システム構成は下図の通りです。今回はSWは“MBS本社”、WLカメラは沖縄の“バイトするならエントリー宜野座スタジアム”で運用しました。
SWからのリターンの映像とタリー信号をPCへ入力し、リターンをLMS video、タリーをLMS controlとして送信しました。
沖縄側ではLMS videoとLMS controlをiPadで受信することで、リターンとタリーを確認することができます。詳しくは前回の記事

リターン・タリーを実装するための本社側、沖縄側の設備は以下の通りです。

  • <本社側>
    • SW
    • LMS+TouchDesigner用PC
    • DIO1616BX
    • BlackmagicDesign UltraStudioo
  • <沖縄側>
    • LMS受信用iPad

「DIO1616BX」と「BlackmagicDesign UltraStudio」はSWからのリターンとタリーをPCへ入力するための変換器として使用しました。

タリー信号の取り込み

「DIO1616BX」は接点信号をPCへ入出力できる機器です。今回はSWからの接点信号をPCへ入力として使用します。
TouchDesignerで実装するにあたり、以下のようなChop Execute DATとTable DATを用意します。これ使えば接点信号をTable DATへ格納できます。
今回はLMS controlを使ってタリー信号を伝送したいので、取り込んだTable DATの値をCHOPへ変換し、最終的にはLMS control out CHOPへ入力することで伝送しています。

※DATとはスクリプトやデータベースを扱うことができるオペレーターで、CHOPは波形や数値を扱うことができるオペレーターです。

[Chop Execute DAT]

import ctypes
import ctypes.wintypes
import cdio
#==========================================
# 変数の宣言
#==========================================
Id = ctypes.c_short()				# 戻り値
Ret = ctypes.c_long()				# デバイスId
DeviceName = ctypes.c_char()			# デバイス名
PortNo = ctypes.c_short()				# ポート番号
Data = ctypes.c_ubyte()				# 値
PortNo = 0
#==========================================

DeviceName = "DIO000"				# デバイス名を格納
Ret.value = cdio.DioInit(DeviceName.encode(), ctypes.byref(Id)) 

def is_bit(number, bit_position):
	mask = 1 << (bit_position - 1)
	return (number & mask) != 0
	
def whileOn(channel, sampleIndex, val, prev):
	Ret.value = cdio.DioInpByte(Id, PortNo, ctypes.byref(Data))	# 1ポート入力
	print(f'DioInpByte port : data = 0x{Data.value:08b}')		# データの表示(16進数)
	for x in range(8):
		if is_bit(Data.value, x+1):
			op('table DAT名')[x,0] = 1
		else:
			op('table DAT名')[x,0] = 0

	return

使用感

リターンはカメラマンが自分が撮影する映像を判断するためのガイドの映像なので、少しくらい映像が破綻していても問題なく、それよりもリアルタイム性を求められるので、今回はLMS video out TOPの”delay parameter=0”としました。
携帯キャリアの回線を使用しましたが、遅延もほとんどなくカメラマンがオペレーションするには全く問題なかったです。

まとめ

今回はLMSとTouchDesignerを使用してWLカメラ用のリターンとタリーを実装しました。
LMSはTouchDesigner用のプラグインが提供されていて、TouchDesigner上でLMSをつかえるので、今回はそれほどコーディングせず簡単に実装できました。

LMSは放送局の技術者が作製したLMSだからこそ、痒い所に手が届く使いやすい仕様になっているなと痛感しました。
今後も番組制作で役に立つような開発を進めていきたいと思います。

Next Post Previous Post