リンクをクリップボードにコピー
コピー完了
Adobe Captivateにて、ソフトウェアシミュレーションとしてPC上の画面を録画し、録画後の生成された各スライドに外部音声(wav,352kbps)を読み込んでコンテンツを作成しています。作成したコンテンツをHTML5としてパブリッシュしました。
生成されたHTMLファイルをWindows Server2012上に置き、HTMLファイルの中にある、index.htmlにクライアントがアクセスして視聴します。
動画内では、ソフトウェアシミュレーションとして録画した際のマウスのクリック音やキーボード打鍵音を再生するように設定していますが、IE11で視聴したところ、それらが再生されていないことに気付きました。
また、スライドに切り替わる直前に、音声が一部途切れる箇所がいくつかありました。ここでいう音声は、動画作成時に読み込んでいた外部音声(wav,352kbps)のことです。
はじめ何秒かは音声が再生されますが、やはりスライド1つにつき最後まで音声が再生される前に、途中で音声が再生されなくなります。
スライド内で音声が途切れる箇所はページをリロードしても毎回同じです。
なお、これらの事象はサーバ(Windows Server2012)にアクセスしたユーザがIE11で視聴した際に起きているものです。
サーバ上のindex.htmlにChromeやFirefoxでアクセスし、動画を再生した場合には上記の事象は起こらず、正常に動画が再生されます。
また、サーバではなくローカルでIE11上でindex.htmlにアクセスし、動画を再生した場合には上記の事象は起こらず、正常に動画が再生されます。
まとめると、
IE Chrome Firefox
サーバ × ○ ○
ローカル ○ ○ ○
という形になります。
※インターネット一時ファイルを消去しても改善されませんでした。
※動画内の音声はHTMLファイル内のar/*.mp3から呼び出しているようですが、音声が途切れる部分の.mp3ファイル再生したところ、特に異常はありませんでした。
今回の不具合はWindows ServerとIE間による、OSの特性によるものなのでしょうか。
または、Captivateの音声設定になにか工夫が必要なのでしょうか。
同じような問題した方や、詳しい方がいらっしゃいましたら解決方法をご教示ください。
よろしくお願いいたします。
とりあえず、自己解決したので記載します。
プロキシを通すと正常に再生できることが分かりました。
実際にプロキシを通して通信を行った場合のパケットと、通さない場合のパケットを見比べました。
プロキシを通さない場合、音声が途中で途切れる際に、HTTPステータスコードが「206」となっていることが分かりました。
このステータスコードについて調査したところ、一部をキャッシュして残りをリクエストするという部分的な通信を行っていることが分かりました。
従って、サーバ側のApacheの設定ファイル(httpd.conf)にて、この「206」の通信をしないような記述をしたところ、
プロキシを通さない場合でも正常に動画が再生されるようになりました。
具体的には以下の記述を一行追加しています。
RequestHeader unset Range
この設定を行ったことで、ChromeやFirefox上の再生でも異常は起きなかったので、とりあえずはこの設定で行こうと思います。
過去にも、海外のCaptivateのフォーラムで似たような投稿がありましたが、こちらは未だ解決していないようです。
...リンクをクリップボードにコピー
コピー完了
とりあえず、自己解決したので記載します。
プロキシを通すと正常に再生できることが分かりました。
実際にプロキシを通して通信を行った場合のパケットと、通さない場合のパケットを見比べました。
プロキシを通さない場合、音声が途中で途切れる際に、HTTPステータスコードが「206」となっていることが分かりました。
このステータスコードについて調査したところ、一部をキャッシュして残りをリクエストするという部分的な通信を行っていることが分かりました。
従って、サーバ側のApacheの設定ファイル(httpd.conf)にて、この「206」の通信をしないような記述をしたところ、
プロキシを通さない場合でも正常に動画が再生されるようになりました。
具体的には以下の記述を一行追加しています。
RequestHeader unset Range
この設定を行ったことで、ChromeやFirefox上の再生でも異常は起きなかったので、とりあえずはこの設定で行こうと思います。
過去にも、海外のCaptivateのフォーラムで似たような投稿がありましたが、こちらは未だ解決していないようです。
Mp3 Error on playback "error code = 2 n/w state = 1"
HTML5で出力した際、ブラウザ上で正常に再生が行えなかった場合は基本的にサーバや、ブラウザの設定次第で改善できる傾向にあると思います。
以上、こちらの投稿はクローズとして扱います。