基本的な動画の埋め込み
HTML5 Videoの使用
複数のソースフォーマットを提供すると、ブラウザが対応している最適なフォーマットを選択できます。
WebMはより効率的な圧縮を提供しますが、すべてのブラウザでサポートされているわけではありません。
主要な属性
controls- 再生、一時停止、シークなどのコントロールを表示width&height- 動画のサイズを指定(CLSを防止)poster- 再生前に表示するサムネイル画像preload- 先読みの挙動を制御(none,metadata,auto)autoplay- 自動再生(ユーザーエクスペリエンスを考慮して慎重に使用)muted- 音声をミュート(autoplayと組み合わせて使用することが多い)loop- 繰り返し再生playsinline- iOSデバイスでインライン再生(全画面表示を防止)
パフォーマンス最適化
動画コーデックと圧縮
- AV1 - 最新の高効率コーデック(ブラウザサポートは限定的)
- VP9/WebM - Googleが開発したオープンソースコーデック
- H.264/MP4 - 広くサポートされた標準的なコーデック
遅延読み込み
アダプティブストリーミング
DASH(Dynamic Adaptive Streaming over HTTP)やHLS(HTTP Live Streaming)を使用して、ネットワーク環境に応じた品質の動画を提供します。アクセシビリティ
字幕と転写テキスト
キーボード操作とスクリーンリーダー対応
背景動画
背景動画を使用する場合は、必ず
mutedとautoplayを組み合わせてください。
また、コントラスト比を確保し、動画上のテキストが読みやすいようにしてください。レスポンシブ動画
基本的なレスポンシブ対応
外部プラットフォームの埋め込み
外部プラットフォームを埋め込む場合、パフォーマンスとプライバシーへの影響を考慮してください。 また、可能であれば、ユーザーのアクションに応じて動画を読み込む遅延読み込み手法を検討してください。YouTube
YouTubeのプライバシー強化モードを使用することで、ユーザーのデータを収集しないようにすることができます。また、
rel="0"を併用して設定することで、現状(2025年4月1日)では動画終了後のおすすめ動画を非表示にすることができます。Vimeo
パフォーマンスとアクセシビリティのチェックリスト
- 適切なコーデックとフォーマットを使用する
preload="none"またはpreload="metadata"を使用して不要な先読みを防止する- 必要に応じて遅延読み込みを実装する
- 字幕と代替テキストを提供する
- キーボード操作に対応する
- 自動再生は控えめに使用する(特に音声付きの場合)
widthとheight属性を設定してCLSを防止する- レスポンシブデザインに対応させる
- コントラスト比と可読性を確保する
- ユーザーのネットワーク環境に応じたアダプティブストリーミングを検討する
便利なツールとリソース
- HandBrake - オープンソースの動画変換ツール
- FFmpeg - 動画処理のコマンドラインツール
- Shaka Player - アダプティブストリーミングプレーヤー
- Video.js - カスタマイズ可能なHTML5ビデオプレーヤー
- WebVTT検証ツール - 字幕ファイルの検証
- Media Accessibility Guidelines - W3Cのメディアアクセシビリティガイドライン