複数台のPCで動画の同時再生が可能なプログラムを作成
デジタル屏風では、音楽に光が連動する光音競演コンピュータのデモのため、複数台のPC(インタネットに接続)で同時に各々の動画ファイルを再生するプログラムを作成し、約0.2秒以内の時間差で再生させました。複数台のPCで同期して動画を再生すると、音楽も映像も立体的に楽しめます。下の写真は2台のPCで同時に動画を再生したときの画像です。ほぼ同じ時刻の動画が2つのPCで再生されている様子が確認できます。
方式の概略は以下の通りです。
方式①各PCと標準時計の時間差を取得する
方式②決められた時刻に動画の再生を開始する
◆方式①各PCと標準時計の時間差を取得する
Windowsの「w32tm /monitor /computers:コンピュータ名」を使ってインタネットに接続したPCの時計と標準時刻の差異を計測します。当初は「w32tm /resync」コマンドで標準時計と同期させる考えでしたが、標準時計との時刻あわせに数時間かかりますし、PCを再起動したタイミングでまたPCの時計が約1秒ずれているのに気づき、一般利用者が自分のPCで常に標準時計に合致した時刻で動作させることは現実的ではないと考えました。「w32tm /monitor /computers:コンピュータ名」にて標準時計との差異をms単位でその都度把握することで対応したのです。
◆方式②決められた時刻に動画の再生を開始する
動画の同時再生のバッチコマンドを各PCで受け付けた後、バッチコマンドを受け付けた時刻に応じて、10秒から40秒後の時刻00秒、30秒に動画の再生を開始します。動画の再生はフリーソフトのVLC MediaPlayerをコマンドラインから起動します。PCによってVLC MediaPlayerの起動時間が異なるので、PCごとにバッチ開始後のsleep時間を微調整できるようにプログラムを作りました。またVLC MediaPlayerの初回のプログラム起動は処理時間が余分にかかるので、2回目以降で時刻が合致するように考慮しました。
このプログラムを使って光音競演コンピュータのデモを作成していく予定です。