
コラム オープンソースソフトウェア LibreOffice 3:補完計画
コロナ禍では様々なイベントがオンライン開催や中止に追い込まれていましたが、新型コロナウイルスの感染症法上の位置づけが5月8日に「5類」に引き下げられることで、世の中のイベントも少しづつですが復活の兆しが見えてきました。オープンソースソフトウェアの祭典『オープンソースカンファレンス』(OSC)もようやくオフライン開催できるようになり、OSC2023 Nagoya《2023年5月28日(日) 11:00~16:00名古屋市中小企業振興会館 3F 第2ファッション展示場》でLibreOffice日本語チームの一員としてブースのお手伝いに何年ぶりかで参加することになりました。
因みにOSC自体としては、名古屋においてのオフライン展示開催は約3年ぶりだそうです。
ということでOSCのオフライン展示再開記念として、久しぶりにコラムを更新したいと思います。
LibreOfficeについて私がいつも感じている事は、比較対象となっている商用ソフトのMicrosoft Officeと比べると、ファイルの互換性も高く、LibreOfficeにはDraw(図形描画)のような独自機能もあるので、機能面においては然程遜色は無いと思うのですが、ではLibreOfficeが痒い所に届くようなソフトかと言えば、そうとも言えず単体使用では若干微妙な点も多いという事でしょう。
そこで今回もLibreOffice単体のみで完結せず、外部アプリやデバイスを使用することで得られるメリットや、その活用法についてのアイデアを筆者の独断と偏見で提案したいと思います。
それがコラム『LibreOffice補完計画』です。
ということですが、さて本題に入る前に一つ報告があります。
前々回の補完計画のコラムにて、LibreOffice DrawのCAD化利用というネタで拡張機能のCADLOを紹介しましたが、現在のLibreOfficeの最新バージョンではCADLOが利用できないという状況が発生しています。(私は7.5.2.2を使っていますがCADLOは全く機能しません)
拡張機能のサイトを確認すると、LibreOffice ExtensionsのCADLOのページのコメント欄には、
Cadlo no longer works with LibreOffice 7.5.0.3
while Cadlo worked with LibreOffice 7.4 !!
という投稿があります。LibreOffice 7.5xではダメなようですね。そのうち修正されると思いますので気長に待ちましょう。
では今回の本題に。
VJ(ビデオ・ジョッキーの略で、主にコンサートやクラブのDJイベントなどで投影される映像の作成やスイッチングを行う)や生配信では、同一PC内もしくは別々のPCにおいて、複数のソフトウェアの間で画像や動画などの描画処理を共有することがあります。そんな時に中間の橋渡し役の処理を担当してくれる機能が、スポウト(Spout)、サイフォン(Syphon)やエヌディーアイ(NDI)と呼ばれるものです。
下の図はSpout、Syphonおよび NDIの機能をイメージ化したものです。

元々は同一PC間での共有を主目的としたSyphonという規格がMac用に先に存在していて、それをWindowsでも同様のことが出来るようにしたのがSpoutです。なのでSyphonとSpoutでは互換性はありません。
NDIは、Network Device Interfaceの略で3DCGソフトのLightWave 3Dの販売元で有名だった米国NewTek社の提唱・開発した、ネットワークを利用して画像共有を行うための仕様規格で、Syphon、Spoutよりも新しい技術です。
WindowsとMacの間で共有する場合は、NDIを使うのが一般的です。
また、ソフトウェアがSpout(Syphon)のみの対応でNDIには非対応だったとしても、Spout - NDIの相互変換を可能にするツール(例えばSpoutがリリースしている「Spout to NDI」など)が存在するのでNDIならばやり方次第で共有利用可能となります。
ということを踏まえて今回はNDIをメインとした連携について考えたいと思います。
つまりこのNDIを使ってLibreOfficeを色々活用できないだろうか? っていうのが今回のミッションです。
ではここからは実際の利用方法について解説しましょう。
当然ながらソフトウェア側でNDIに対応してないとその機能を使うことができません。現在のLibreOfficeにはその機能はありません。将来的にLibreOfficeにNDIの機能が追加されるかどうかは判りませんが、もしも追加されるような事になればアイデア次第で色々と面白いことが出来るようになるでしょう。
LibreOfficeでNDIを活用するならば何かな? って考えるとやはりプレゼンテーション(Impress)だと思います。
ネットで検索するとプレゼン画面を画面キャプチャーしてOBS(Open Broadcaster Software Studioの略でオープンソースのライブ配信ソフトウェア)やZoomなどなどの配信ソフト側で表示させるとかが出てきます。
そこで、そんなソフト無いかなって思ってたらありました。
これは純粋なLibreOffice用ではありませんが、NDI を介してPowerPointのプレゼンテーションデータ(PPT,PPTX形式)を転送できるソフトです。LibreOffice ImpressではPowerPoint形式のデータの読み書きが可能なので、このPPT NDIが問題なく活用できます。
ダウンロードページから最新版を入手します。
(https://github.com/ykhwong/ppt-ndi/releases)

現時点での最新版はバージョン1.0.6(2022年6月12日リリース)です。Winndowsインストール版、圧縮版、Mac版がアップされているので自分の環境に応じてダウンロードします。
最初に起動するとこんな感じです。
モード設定の画面になりますが、PowerPointで使うわけでは無いのでここでは右のClassic Modeを選択することになります。

先にも述べましたがこのPPT NDIで読み込めるデータ形式はPowerPointのデーター形式です。LibreOfficeのImpressのデータ形式(ODP)はそのままでは読み込むことが出来ないので、LibreOfficeでPowerPoint形式にプレゼンデータ変換をします。
Impressで作成したプレゼン用ファイルを開きます。
名前を付けて保存でファイル形式の項目でPowerPoint形式を選択し保存ボタンを押します。すると最終的なファイル形式を確認する『ファイル形式の確認』ダイアログが表示されるので、『PowerPoint2007-365形式を使用(U)』選択します。



PPT NDIをクラッシックモードで起動させます。
先ほどPowerPoint形式で保存したファイルを左上のフォルダアイコンをクリックして読み込みます。

データを読み込んだら画像出力時のレゾリューション:Resolution(解像度)設定をしましょうここを設定しないと出力先デバイスでの表示がおかしくなる場合があります。下の画面では16:9/1280x720に設定しています。

ここまで来たら同一ネットワーク上にある受信側のデバイスのNDIに対応するライブ配信ソフトウェア(OBSなど)を立ち上げましょう。
ちょっと変則的ですが、今回は受信側の外部デバイスとしてPCではなくてスマートフォンを使用してみたいと思います。
巷ではNDIカメラとして送信用にスマートフォンを活用することは結構あるようですが、NDIの受信モニタリングでスマートフォンを使う事は少ないみたいですね。
ちょっと面白いアプリを見つけたので試しに使ってみます。『Monitor for NDI HX ※』というAndroid用のNDIモニタリングアプリです。
※このアプリの名称に使われているNDI HXの『HX』はHigh Efficiency(高効率)を示し、『NDI HX』というのはH.264の圧縮方式を用いてNDIよりもより高圧縮・低帯域幅で映像を伝送できる仕様のようです。

送信側のパソコンでPPT NDIを起動します。
PowerPointデータを読み込んでレゾリューション設定した状態で、スマホ側のアプリMonitor for NDI HXを起動します。
するとNDI出力元となるPCのソフトウェア名とIPアドレスが画面に表示されます。
それが確認出来たら、その直下にあるボタンをクリックします。
下の写真のようにNDIを介してスマホ上でプレゼン画像共有表示が始まります。

PCのPPT NDI側で画像を切り替えれば勿論スマホ側でも画像が切り替わります。
ネット環境にもよりますが、低延滞が売りのNDIなのでサクサクと切り替わります。
あとPPT NDIの画面でBackground on NDIのスイッチをオフにするとプレゼン画像の背景画像だけを消した透過画像として出力する事が出来ます。
これはとても便利な機能です。例えば、画面上の任意の場所に文字列を配置したテロップ用素材としてプレゼン用データをいくつか作成しておけば、放送テロップ作成・追加用の専用ソフトウェア(テロッパー)の代替品として生放送の配信やVJで効果的に活用する事ができます。この方法だとテロッパーの導入コストも掛からないのでとても安価に済みます。
マジでLibreOffice Impress本体NDI出力の機能付けて欲しいですよね~!

という事で駆け足で説明してきましたプレゼンデータとNDIの連携ですが、アイデア次第で色々活用できるので皆さんもぜひとも試してみてください。
次回に続く!