LoginSignup
0
2

More than 3 years have passed since last update.

大量の動画ファイルを読み込みつつ、サイトを軽くする実装について

Posted at

はじめに

この記事では、videoタグを用いて、大量のmp4ファイルを読み込みつつ、
サイトの読み込み速度を改善させる方法について考察しています。
(約50秒の動画ファイルを、25個設置しています。)

実装編

videoタグのpreload属性を使用し、動画の読み込み設定を行えるようです。

特徴
auto 初期値(ファイルを事前に取得)
metadata ファイルのサイズや再生時間など、メタデータのみを取得
none 事前のファイル取得を禁止

noneを使用することで、動画ファイルの事前読み込みを禁止できます。
(→動画のファイル容量が大きくても、ページ読み込み時の遅延を防ぐことができます。)

//preload属性を設定する
<video src="hoge" preload="none"></video>


計測方法について

サイトの速度検索について、以下のサイトがメジャーのようです。

page speed insights
スクリーンショット 2021-04-20 16.37.09.png
ただ、今回はローカル環境で手軽に計測を行いたかったため、デベロッパーツールで測定を行いました。

デベロッパーツールでの計測方法について

1) デベロッパーツールより、Networkのタブに切り替える。
スクリーンショット 2021-04-15 9.50.47.png

2) 右下にFinishと表示されている項目をチェックする。
スクリーンショット 2021-04-15 9.47.11.png

この部分を確認することで、そのページの読み込み時間の計測を行うことができます。

※より正確に計測を行うためには、赤ワクの箇所よりキャッシュの削除を行って下さい。
スクリーンショット 2021-04-15 9.54.13.png

結果

約50秒の動画を、25個設置した場合のページ速度を計測しています。

1) auto(初期値)の場合
スクリーンショット 2021-04-20 16.14.03.png
動画ファイルの合計が約60MBくらいあり、読み込みが完了するまでに約7秒ほどかかりました。


2) none(事前のファイル取得を禁止)の場合
スクリーンショット 2021-04-20 16.16.55.png
事前のファイル読み込みを禁止したことで約200kbまで減り、読み込みも約0.4秒ほどにまで抑えられています。
(autoと比べたときに、約17倍も早く読み込めています。)


終わりに

1つ懸念点があるとすれば、preload="none"を設定してしまうと、サムネイルが真っ暗になってしまうようです。
スクリーンショット 2021-04-20 16.31.54.png

poster属性を設定することでサムネイルで使用する画像を指定することができるので、そちらを検討しても良いかも知れません。

//poster属性を設定する
<video src="hoge" preload="none" poster="hoge"></video>


参考サイト

videoタグリファレンス

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2