ネットワーク制御が可能な動画デジタルサイネージを構築する場合に、C#などでがりがりWindowsネイティブコードを書いたり、レガシーなFlashで制作するのは少し荷が重いので既成品ソフトで対応できそうなモノを検証してみました。
まずWindows標準のメディアプレイヤーにもいくつかコマンドラインオプションが有るようですが、ローカル再生かつファイル指定程度しか対応していないので、そもそもリモート操作が出来ないということが分かりました。少し調べたところVLC media playerという、フリーの動画再生ソフトが豊富なコマンドラインオプションを実装していることが分かりましたのでこちらの方法をご紹介します。
(1) ソフトウェアパッケージの入手
http://www.videolan.org/vlc/
(2) VLCメディアプレーヤーのリモートコントロール設定
VLCを起動します
ツール>設定>設定の表示[すべて]>インターフェース
メインインターフェース>
拡張インターフェースモジュール
WebとTelnetにチェック
メインインターフェース>Lua
Lua HTTP
パスワード:*****(必須)
ソースディレクトリ:
ディレクトリインデックス:非チェック
Lua Telnet
ホスト :localhost→192.168.123.10 (固定かDHCPで割り当てられているアドレス)
ポート番号:4212(デフォルト)
パスワード:*****(必須)
設定を行ったらVLCを再起動します。
コマンドプロンプトのnetstatコマンドで8080と4212ポートがListenされていることを確認します。
ファイアウォールで閉じられている場合は解放する必要があります。またリモート操作で応答が無い場合などは制御側PCからもからもポートチェックをしたほうがよいでしょう。
(3) 別マシンから動作確認
リモートマシンはPCでもLinuxでも可能です。
ブラウザにて操作する場合
http://192.168.123.10:8080:/
TeratermによるTelnet接続の設定
送信時の改行:CR+LF
エコーバックする
ポート:4212
サービス:Telnet
VLMコマンドの操作方法
事前に再生PCに動画ファイルを用意する
Telnetにログイン
すぐに再生
> add c:\movie\sample.mp4
再生リストを作った後に再生
> enqueue c:\movie\sample.mp4
> play
フルスクリーンにする
> f
コマンド一覧(help)
> help
この様にtelnetプロトコルを使用して映像制御するスクリプトを組めば、簡易的なデジタルサイネージのリモート制御が可能となります。
(4) その他VLCの商用向け設定
再生ファイル名の非表示
ツール>設定>設定の表示[すべて]
ビデオ>ビデオの一般的な設定
ビデオにメディアタイトルを表示:非チェック
起動時にコントローラーを表示しない
ツール>設定>
最小表示で起動:チェック
ファイルエラー等を表示しない
ツール>設定>設定の表示[すべて]>インターフェース
対話的なインターフェース:非チェック
起動時にスタート画面を表示しないでデスクトップを表示する
タスクバー(右ボタン)>プロパティ>[タブ]ナビゲーション
スタート画面
サイン時または画面上~スタート画面ではなくデスクトップに移動する
待機中のカラーコーンを表示しない
ツール>設定>設定の表示[すべて]>インターフェース>メインインターフェース>Qt
バックグラントコーン、またはアートの表示:非チェック
自動ログイン設定
netplwizを起動する
http://pc-karuma.net/windows-8-auto-sign-in/
プログラムの自動起動(win8.1)
C:\Users\ユーザーID\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
にアプリ(VLC)のショートカットをコピーする
コメント