表題の通り、Electra Playerで動画を再生しようとすると、高い頻度で再生されないことがあります。
どのように対応すれば再生されるようになるでしょうか?
エディタではこの問題は起こらず、スタンドアローン再生、Windowsで起こることを確認しています。ミュートにするとこの問題は起こりません。
ログを見てみますと、音声データ情報はしっかりと読み込んでいるらしく、実際に再生しようとすると情報が失われるか、取得に失敗するように見えました。
CommonUIのUCommonVideoPlayerをしようして動画を再生しています。
再生方法は以下の通りになります。
- UCommonVideoPlayerを含めているUserWidgetを生成
- 生成したUserWidgetをAdd To Player Screenでウィジェットを表示
- ミュートを解除(UCommonVideoPlayer::SetIsMuted(false))
- ループしない(UCommonVideoPlayer::SetLooping(false))
- 動画アセットを開くと同時に自動再生(UMediaPlayer::PlayOnOpen = true)
- 動画アセットを設定(UCommonVideoPlayer::SetVideo(動画アセット))
動画のメディア情報は以下の通りになります。
※VLCメディアプレイヤーから取得
映像
- コーデック: H264 - MPEG-4 AVC (part 10) (avc1)
- 言語: English
- タイプ: ビデオ
- ビデオ解像度: 3840x2160
- バッファーの広がり: 3840x2160
- フレームレート: 60
音声
- コーデック: MPEG AAC Audio (mp4a)
- 言語: English
- タイプ: オーディオ
- チャンネル: ステレオ
- サンプリングレート: 48000 Hz
- ビット/サンプル: 32
お世話になっております。
社内外の情報を洗ってみたのですが、いただいた情報にあてはまる前例がなく、現時点では解決法の提案が難しい状況です。
以下の点について確認させていただいてもよろしいでしょうか?
・「高頻度で音声が再生されない」とありますが、同じ条件下でも音声再生がかかる場合が(低頻度ながら)ある、という理解でよろしいでしょうか。もしくは(たとえばオープニング動画など)特定の場面の特定の動画では再現率100%で絶対に音声が出ない、そのようなケースが多い、というニュアンスでしょうか?
・ログを拝見するとElectra Playerの実態が2つ作成されており、どちらも「BootLogo.mp4」を読みにいっていますが、Statsのログ出力では「SampleMovie.mp4」について述べています
・動画は2つ再生されていますか?
・SetVideo() で設定している動画はどちらでしょうか?
・ 仮に後者の場合、SetVideo() を行わないことで、デフォルトの BootLogo.mp4 が音声付きで再生されたりしますでしょうか?
・Electra Player の作成と再生までのあいだに1秒ほどの遅延を持たせてテストを行うことは可能でしょうか?
・メディアフレームワークの技術リファレンスで提示されている以下のログレベル調整を行って再度ログを取っていただくことは可能でしょうか
[Core.Log]
LogMedia=VeryVerbose
LogMediaAssets=VeryVerbose
LogAndroidMedia=VeryVerbose
LogAvfMedia=VeryVerbose
LogMfMedia=VeryVerbose
LogPS4Media=VeryVerbose
LogWmfMedia=VeryVerbose
質問ばかりで申し訳ございません。
以上、よろしくお願いいたします。
・「高頻度で音声が再生されない」とありますが~
今のところ起動直後のみ起こってしまうことを確認しています。
高頻度で再生されず、その時によって回数は違いますが、おおよそ10回に8回は再生されませんでした。
添付したログが出ると音声も映像も再生されません。
・ログを拝見するとElectra Playerの実態が2つ作成されており、どちらも「BootLogo.mp4」を~
申し訳ございません、こちらは「BootLogo.mp4」のみ再生しております。
機密事項の文字を編集していたときに「SampleMovie.mp4」と書き換えてしまいました。
ですので、SetVideo()も「BootLogo.mp4」1つのみ実行しております。
・ 仮に後者の場合、SetVideo() を行わないことで、デフォルトの BootLogo.mp4 が~
エディタのプレビュー再生(アセットをダブルクリックで開いて)、Windowsで再生プレイヤーを使用すると、映像も音声もしっかりと再生されます。
・Electra Player の作成と再生までのあいだに1秒ほどの遅延を持たせてテストを行うことは可能でしょうか?
承知いたしました。こちらテストしまして、後日、結果をお送りいたします。
ちなみに先日、Delayノードで0.2秒を待って試しましたが、結果は同じでした。
・メディアフレームワークの技術リファレンスで提示されている以下のログレベル調整を行って再度ログを取っていただくことは可能でしょうか
承知いたしました。こちらログを取って後日お送りいたします。
お待たせいたしました、いただいていた残りの質問について、下記にてお送りいたします。
・Electra Player の作成と再生までのあいだに1秒ほどの遅延を持たせてテストを行うことは可能でしょうか?
こちらDelayノードを使用して1秒後に再生して、結果は10回中10回とも音声及び映像が正しく再生されました。
・メディアフレームワークの技術リファレンスで提示されている以下のログレベル調整を行って再度ログを取っていただくことは可能でしょうか
こちら送付いたします添付ファイルをご確認ください。
よろしくお願いいたします。
検証と検証結果のご共有誠にありがとうございます。
いただいた内容をもとに、開発チームに照会を行っておりますので、少々お待ちください。
また、一点、2つ前の投稿に関してですが、気づいた点があり、確認をさせてください。
> 添付したログが出ると音声も映像も再生されません。
とありますが、当方では、表題より、「映像を再生されるが音声が再生されない」症状が起きているのだと解釈しておりましたが、実際には「ログから音声で何か問題があることがわかり、表向きの症状としては映像も音声も両方出ない」というのが正しい理解となりますでしょうか?
以上、よろしくお願いいたします。
ご確認ありがとうございます。よろしくお願いいたします。
・「ログから音声で何か問題があることがわかり、表向きの症状としては映像も音声も両方出ない」
こちらの理解であっています。
検証を進めていただいてるところで大変恐縮ですが、つい先ほどこちらの問題について解決いたしました。
原因としては、やはり音声データにあり、FFmpegという動画に関するツールをしようして正しい音声データに変換することで、安定して再生されるようになりました。
変換方法といたしまして、コマンドライン上にて、
$ ffmpeg -i BootLogo.mp4 \
-map 0:v:0 -map 0:a:0 \
-c:v copy \
-c:a aac -b:a 192k -ar 48000 -ac 2 \
-movflags +faststart \
output_audiofixed.mp4
と実行し、出力されたものを使用しています。
この対応で問題無さそうか、もう少し様子を見ようと思っております。
よろしくお願いいたします。
お世話になっております。
変換によって安定して再生できるようになったと伺い、安心いたしました。
解決方法の共有、誠にありがとうございます。
不調だった時期の動作を技術的に説明できず申し訳ありませんが、Electra Player が単一の多重化 MP4 ファイルを正常に再生するための条件の一つに、faststart フラグが付与されていることがあります。ひょっとすると、問題が発生していた時期の MP4 ファイルは faststart フォーマットで構成されておらず、サウンドデータをオーディオ側へ渡す処理が遅れて出だしに失敗していた可能性があります。
当方の立場では、必ずしも前のMP4ファイルに問題があったと言い切れるほどの材料が揃っていないのですが、今回のように音声トラックを faststart + 適正な AAC フォーマットで変換していただく方法は、Electra Player の動作条件に適していると申し上げることはできます。
様子を見られる中で、同様の事象が再発した場合はお知らせください。
以上、よろしくお願いいたします。