videoタグを使用した動画がAndroidで再生されない沼にハマった話
皆さんこんにちは。
タイトル通り、videoタグで読み込んだ動画(今回はmp4形式の動画でした)がAndroidでまっっったく再生できずに時間を溶かしに溶かしたときのお話です。
結論としては、エンコードすることでAndroidで無事再生できるようになりました💡
エンコードにたどり着くまでに色々と試したこともあるので、今回はそのときのお話をします😊
動画が再生されない状況
お客様からご提供いただいたmp4形式の動画ファイルをサーバーにアップロードし、いつも通りHTML内にvideoタグを使用して表示させていました。
各PCブラウザ、iPhone、iPadで正常に表示されています。よしよし。
ところがAndroid…以下の画像のような感じでまったく再生できません😵
手あたり次第に解決策っぽいのを試してみる
幸運なことに今までこういった現象に遭わなかったのでどうしたものかと以下の方法を試していきました。
今回は全部うまくいきませんでしたが、もしかしたらどなたかの手助けになるかもしれないので記していきます…📝
- まずはおまじない
videoタグに以下の記述を追加します。Android端末によってはこの記述がないと再生されないみたいです。 - Basic認証を外してみる
ちなみにBasic認証がかかっていても、.htaccessに記述を追加することで再生できるようになるみたいです。 - sourceタグからtype属性を外してみる
type属性があるとタップしても反応しないとかなんとか🤔 - 動画のコーデックを確認してみる
H.264/AVC形式のmp4にするといいらしく、この圧縮のデータ方式が違うと見られないようです。 - mp4boxでmp4ファイルを変換してみる
mp4のボックス構造が再生できない順序になっていることがあるらしく、これをmp4boxというツールを使用して適切な順序に変換します。 - 絶対に関係ないけどCSSを変えてみる
分かってはいましたが全然関係ないようでした。
いよいよどうしよう…
こちらのページを見ている方はお分かりかと思うのですが、「videoタグ Android 再生できない」とかで調べるとたいていBasic認証が原因って出てくるんですよね。
で上記のように色々試してダメだったので、もう動画をYouTubeにアップロードしてiframeタグ読み込みにしようかなと思っていたところ…!
先輩が「エンコードしてみたら再生されましたよ!」と。
エンコード!!どうやらスマートフォンで表示するのに適した解像度に設定して、書き出しし直さないといけない動画ファイルだったようです。
さらに、この書き出した動画ファイルを元の動画サイズの設定にするとまた再生されなくなったので、サイズの比率は維持したまま小さくしたところ、無事再生可能となりました…!
エンコードの手順は以下のような流れでおこないました👇
- 「Adobe Media Encoder」にエンコードする動画ファイルをアップロード
- プリセットを「Mobile Device 1080p HD」に設定
- ビデオ>基本ビデオ設定で好きなサイズに設定
今回は608×1080に設定しました。
元の動画ファイルのサイズが1080×1920だったので、1080÷1920×1080=607.5という計算で「608」にしました。※比率が固定になっていたらロックを外してください。
- エンコード開始して動画を書き出す
また動画再生にハマる
上記が解決したあとまたすぐ別件で、
動画がChromeでだけ再生ではなくてダウンロードされてしまうということがありました。どうして…。
これもまた別の先輩が解決してくださいました😢
.htaccessに以下の記述を追記することでブラウザ上での再生が可能になりました!
※使用するサーバで記述をしても問題ないかは確認した方がよさそうです。
さいごに
こうして書いてみると思ったより簡単な検証だったかなあとは思うのですが、そのときは調べつつ試しつつ、しかも制作期限は迫りつつなのでとても必死です。
困ったときに助けてくださる先輩がいてくれてよかった…😭
思わぬところでハマるのがコーディングの大変なところでもあり面白いところでもあるのですが、あまりにもハマると途方に暮れますよね。
もっと検索力を上げてスパッと解決できるようにしていきたいです💪
エーアンドエーとホームページを制作しませんか?
エーアンドエーは「高い制作品質」と「柔軟なお客様対応力」が強みの愛知県名古屋市のホームページ制作・Web制作会社です。デジタル技術とアナログな心でお客様の課題を解決し、名古屋・東海地域を支える企業様から選ばれてきました。ホームページのことでお困りの方、信頼と実績のあるホームページ制作会社をお求めの方は、ぜひエーアンドエーまでご相談ください。