[HTML5] FirefoxでJWPlayerの動画再生が始まらない

症状

– 再生ボタンをクリックすると動画冒頭が表示されるが先に進まない
– 画面中心にぐるぐる回るインジケータが表示されたまま
– 再生時刻は00:00のまま変化せず
– タイムスライダを僅かでもドラッグすれば再生が始まる

条件

– Firefox 43.0.4 (たぶんバージョンに依存しない)
– MP4 H.265/AAC
– JWPlayer 7.2.4
– JWPlayerのオプション
– autostart false (デフォルト)
– primary html5 (デフォルト)

原因を調べる

サーバーに依存するか?
– 複数のサーバーで試す (Nginx & Apache、ローカルでも)
– サーバーが変わっても同じ症状

動画ファイルに依存するか?
– ファイルサイズがおよそ8MBを超えると再生されない
– Firefoxの開発者ツールで調べたら
– サイズが小さい動画はJWPlayerロード時にダウンロード完了する
– 故に、再生時にはブラウザのキャッシュにある動画ファイルを再生している
– 再生開始時に動画のダウンロードを伴うケースに再生されないみたい

HTML5の代わりにFlashを使うとどうなるか?
– JWPlayerのprimaryオプションを”flash”に変更 (Flashが使える場合はFlash優先)
– すると問題は解決 (正常に再生スタートするようになった)
– Firefoxの動画プレイヤー(videoタグ)の実装に問題があるみたい

JWPlayer開発元はFirefoxをどう扱っているのか?
– JWPlayerが提供するCDNに動画をアップして再生してみる
– JWPlayerを右クリックすると「Flash Version 2.0」との表示。
– JWPlayer任せだと、FirefoxではHTML5ではなくFlashが優先的に使われるみたい

結論

– FirefoxのHTML5ビデオ再生とJWPlayerには相性の問題あり
– 故に、FirefoxでJWPlayerを使うときはFlashを使うこと

たわごと

– 以前にHTML5の動画再生中に飛んでくるイベントをダンプしたことがあった
– Google Chromeと比べてFirefoxのイベントは少なかったような記憶がある(うる覚え)
– JWPlayerで再生ボタンを押しても、Firefoxからの再生開始の通知が正しくされないのかも(あくまで予想)