Q. Box連携でシナリオを表示したとき、動画の再生が頻繁に停止したり、シーク操作に時間がかかったりします。
A. ネットワーク環境の通信帯域量が十分でないか、動画ファイルのフォーマットがストリーミング再生に適していない可能性があります。
ネットワーク環境を見直してみる、または、後述の手順を参考に動画のフォーマットを変換してみてください。
- 原因
AssistsのBox連携ではBox上の動画を再生するとき、ストリーミング再生の仕組みを利用します。
これは「動画ファイルをすべてダウンロードしてから再生する」のではなく、「必要な部分を順次取得しながら再生する」仕組みになります。
これにより、即時性の高い再生とデータを保持しないセキュアな通信を実現しています。
ストリーミング再生では順次ダウンロードを行いながら動画の再生を行うため、ダウンロードが間に合わないと動画が途中で停止したり、シーク操作で即時再生が行えない問題が発生します。
この問題はネットワーク環境の通信帯域量が十分でないか、動画ファイルのフォーマットがストリーミング再生に適していない場合に発生します。
- 「Box連携向けの動画変換」を利用して動画フォーマットを最適化する
BoxおよびAssistsには、アップロードされた動画ファイルを、自動でストリーミング再生に適したフォーマットに変換する機能は搭載されておりません。
再生の停止が頻発する動画について、Assists Editorの「Box連携向けの動画変換」機能を利用してフォーマットの変換を試してみてください。
※ 本機能は β 0.1.11 以降のAssists Editorで利用可能です。
本手順を実施することで、動画のビットレート、キーフレーム、faststartなどの設定が最適化されます。
※ 動画によって映像の品質が低下する場合があります。また最新のAV1コーデックを利用するため、Windows環境では既存のプレイヤーで動画が再生できなくなることがあります。
Assists Editorでシナリオを開き、「一括編集」から「Box連携向けに動画変換」をクリックします。
「シナリオ内の全動画ファイルをストリーミング再生向けに変換する」をクリックすると、シナリオ内の全ての動画がストリーミング再生に適したフォーマットに変換されます。
本変換によって変換した動画は変換前の状態に戻すことができないため、ご注意ください。
以下の通り、変換が成功すればすべての動画がストリーミング再生に適したフォーマットに変換されています。
改めてシナリオファイルを書き出し、Boxにアップロードしてください。
本機能ではFFmpegを外部コマンドとして用いて、以下のコマンドを実行して変換処理を行います。
ffmpeg -i (変換対象の動画ファイル名) -vf fps=30 -c:v libsvtav1 -preset 8 -crf 30 -pix_fmt yuv420p -movflags +faststart -c:a copy (変換後の動画ファイル名)全ての動画ファイルについて、以下の設定で動画フォーマットを変換します。
- fps:30
- コーデック:AV1
- faststart:ファイル先頭に設定
- キーフレーム:libsvtav1準拠で設定
- FFmpegがインストールされていない場合
本機能はPC内のFFmpegを外部コマンドとして呼び出して変換処理を実行します。
PCにFFmpegがインストールされていない場合、「FFmpegがインストールされていません」のメッセージが表示されます。次の手順でFFmpegのインストールを実施してください。
Assists Editorフォルダ直下にある thirdparty_install.bat を右クリックして「管理者として実行」を選択してください。
本バッチファイルを実行すると、PowerShellで以下のコマンドを実行します。
winget install --id=Gyan.FFmpeg -e本コマンドはWindows の公式パッケージマネージャー「winget」を使って、Gyan.devが提供するFFmpegのビルドをインストールします。インストール完了後、Asssist Editorで「Box連携向けの動画変換」機能が利用可能になります。
- 手動で動画フォーマットを最適化する
FFmpegを手動で実行する事でもフォーマットの変換を行うことができます。
手動で変換を行う場合、H.264のコーデックが利用可能となります。H.264を利用して動画を変換すると、Windows環境でも再生可能なフォーマットで動画を最適化することができます。
- FFmpegのインストール(手動)
動画の最適化にFFmpegを利用します。
FFmpegとは、動画・音声の変換/解析/編集をコマンドラインで行えるツール群です。
動画の変換、編集、メタデータ解析などを行うことができます。
Windowsのメインメニューから「PowerShell」を検索して起動します。
PowerShellで以下のコマンドを実行します。
winget install --id=Gyan.FFmpeg -e本コマンドはWindows の公式パッケージマネージャー「winget」を使って、Gyan.devが提供するFFmpegのビルドをインストールします。
インストール完了後、PowerShellでffmpegコマンドが利用可能になります。
【入力例】
- 動画フォーマットの変換(手動)
フォーマットの変換を行いたい動画ファイルがあるフォルダ上で Shift + 右クリック でメニューを開き、「PowerShellウィンドウをここで開く」を実行します。
PowerShellで以下のコマンドを実行します。
ffmpeg -i (変換対象の動画ファイル名) -vf fps=30 -c:v libx264 -preset medium -crf 23 -movflags +faststart -c:a copy (変換後の動画ファイル名)本コマンドは以下の設定で動画フォーマットを変換します。
- fps:30
- コーデック:H.264
- faststart:ファイル先頭に設定
- キーフレーム:libx264準拠で設定
【入力例】
コマンドの実行が完了すると、指定した変換後の動画ファイル名で動画ファイルが出力されます。
変換した動画ファイルをBox上の動画ファイルと差し替え、正常に再生されるかご確認ください。
- 【参考】ストリーミング再生に影響するフォーマットの要素
快適な動画再生を行うために必要な通信帯域量は動画ファイルのフォーマットによって変わります。
通信帯域量に影響を与える要素は、以下のようなものが存在します。
- ビットレート:1秒あたりの再生に必要なデータ量を表します。映像と音声を合わせたものが総ビットレートになります。
- 解像度:動画の縦横のピクセル数を表します。解像度が上がるほどビットレートが上がります。
- fps:1秒当たりの動画のコマ数を表します。fpsが上がるほどビットレートが上がります。
- キーフレーム:再生の起点となるフレームです。ストリーミング再生はキーフレーム単位で動画を取得するため、キーフレーム間隔が長い動画は必要な帯域量が大きくなります。
- コーデック:動画の圧縮方式です。ストリーミング再生では圧縮性の高さよりもデコードが軽いコーデック方式であることが重要になります。
- faststart:mp4が持つインデックス情報です。データ後方にfaststartが記述されている場合、再生までに必要なデータ量が多くなり必要な帯域量が大きくなります。
- 音質:音声を含む動画では音質が上がるとビットレートが上がります。