PC上での動画再生がわずかに遅れる件
デジタル屏風では音楽に光が連動する光音競演コンピュータを複数のコンピュータで同時にデモを行うために準備をしています。筆者のSIerの経験から、CPU、メモリ、ディスク(あるいはNW)の3つのいずれにもネックが無ければ、プログラムはすらすらと一定の時間で動作するという理解です。筆者は動画再生プログラムの表示する再生時間が、コンピュータ以外の時計と合致していると思い込んでいました。結果は違いました。今回の動画再生デモは以下の環境で実施しています。
OS:Windows10 Pro
CPU:Core i5(4コア)
メモリ:4GB
ディスク:SATA
動画再生AP:VLC MediaPlayer(フリーソフト)
この環境で動画再生のデモ(動画再生時間約5分)を他には何も動作させず、繰り返し実施したところたまに数秒の遅れが発生することがわかりました。再生時間300秒のうち約2%(再生時間が短ければ比率はもっと大きいかも知れません)の約5秒です。人間がふつうに見ていたのでは気がつかないだろう遅延です。CPU、メモリ、ディスクのいずれにも余裕のある状態です。測定方法は以下のようにVLCコマンドに時刻を10msまでトレースファイルに出力する方法です。
◆ディスクアクセスがネックになっていないことをUSBメモリを使って確認
ディスクアクセスが処理時間を遅延させているのでは、との仮説を検証するため、再生ファイル(500MB)およびVLCプログラムの両方をUSBメモリに格納してみました。このUSBメモリではアクセスが発生する都度付属しているLEDが点灯するのです。デモプログラム2回目以降は、USBメモリのLEDが全く点灯しませんでした。2回目以降の実行では、VLCプログラムのコードも再生ファイルも主メモリにロードされたままの状態と判定しました。すなわちディスクアクセスは全くネックになっていないのです。
◆動画再生時間遅延の原因はWindows OSの処理にあった
処理時間が遅延したときのWindowsのイベントログをチェックすると、ストレージのデフラグ処理やSecutiryCenterの処理が実行されていることがわかりました。予め意識して同時実行を避けていましたが、Windows Updateのダウンロード処理も要注意です。4コアを実装しているので、4つの処理は支障なく動いて欲しいところですが、OS側で処理が滞ってしまうように見えます。
◆動画再生時間が遅延することの影響
動画再生時間300Sのうち約2%の遅延であれば体感的にはインパクトはありません。しかし今回のデモのように複数台で動画再生のデモを行う場合には、その遅延ははっきり目に見えてしまいます。
また今回のデモビデオ作成時は、PCで音楽を流しその音楽にあわせてナイーブエンジャルさん(日野市発アイドル)にダンスを踊ってもらいました。動画の音楽はスタジオで録音されたものです。歌手は動画撮影時に流れていたPCが再生する音楽をもとにダンスを踊るので、撮影現場で流れる音楽がスタジオ録音の音楽と異なると、動画の映像と音楽がずれてしまうことになります。深刻な影響を及ぼします。対策としては、OSの処理を事前に停止したり、できるだけ処理能力の高いPCを使うことで、OSの処理が発生してもその影響を最小限に食い止めることが重要と考えます。