[Oculus]3D動画をストリーミング再生する方法 – 10 –

前回はUnityを使用した動画のストリーミング再生方法をご紹介いたしました。
今回は、前回に問題点として挙がった項目の内、アップロード処理の改善についてご紹介いたします。
原因の一つとしてアップロードした画像保存の処理と動画変換の処理が同じPHP内で行っているのを別々にすることから始めます。

アップロード処理の中で動画変換まで実施すると
動画を変換し終わるまで、通信が接続したままとなります。
Apacheには、同時に接続できる回線数に上限が設けられており
動画変換処理に時間がかかると、それが終わるまで、回線の1つが埋まった状態になります。
次々と動画の変換処理を実行してしまうと、すべての回線が埋まってしまい、
本来行いたいアップロード処理が遅延する可能性があります。
このため、アップロードの処理と、動画の変換処理を別々にしようと思いました。

アップロードして画像を保存する処理は変更せず、
動画変換するスクリプトを新規ファイルにて作成します。
処理自体はあまり変わりませんが、どのフォルダ下の画像を変換するかの処理を追加しなくてはなりません。
出来上がったファイルはシェルスクリプトで実行する流れとなります。
※Windowsだとバッチファイルを使用します。

動画変換するスクリプトはスケジュールを登録します。
OS標準で搭載しているスケジューラを使用します。
インターネットで検索すると使用方法は説明されているので省略します。
今回はWindowsのスケジューラを使用しています。

実際に動画が出来上がるまでを測定しました。
10秒の動画を作成するために4fpsで動画変換を行ったところ
約7.5秒かかっていることがわかりました。
動画変換処理をApacheに乗せていた場合、遅延が発生するのもうなずけると思います。
最初の目標として10fpsを目指していますが、動画処理を別々にしたからといって遅延が回避することはできませんがApacheへの負担は少なくなると考えられると思います。
次回は通信まわりを見直します。

最後までご覧いただきありがとうございました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*