基本的な適応ビットレート(ABR)の確認には、Mux サンプルから開始することをおすすめします。代替音声トラックや字幕宣言のテストには Apple サンプルを、より多彩な解像度バリアントのテストには Unified Streaming サンプルを使用してください。ボタンをクリックすると、該当のリンクが入力された状態でプレーヤーが起動します。ストリーミングデータはお使いのブラウザと配信元サーバーの間でのみ直接送受信されます。
これらのサンプルはすべて公開参照ストリームであり、稼働監視を保証する商用本番サービスではありません。外部プロバイダーの都合により、予告なくサンプルの移動、仕様変更、レート制限、公開停止が行われる場合があります。検証日は本ページが最後に有効なマスタープレイリストの取得に成功した時点を示しており、将来にわたるすべてのリクエスト、各画質、セグメント、字幕、またはデバイスでの動作を永久に保証するものではありません。
具体的な検証内容
各トップレベル URL に対して HTTPS リクエストを実行し、HTTP ステータスコードとレスポンスの Content-Type を記録しました。また、サイト内検査ツールと同一のパーサーを用いてレスポンス本文を構文解析しました。3つのサンプルはいずれも #EXTM3U で始まり、マスタープレイリスト(Master Playlist)として分類されました。宣言されたバリアント、コーデック、音声トラック、字幕、解像度についても精査しています。なお、単一のリクエスト成功をもって全セグメントが恒久的に到達可能であると断定するものではありません。
3つの検証済み HLS サンプルストリーム
Mux 公開 HLS サンプル
この洗練されたマスタープレイリストは、標準的な H.264 および AAC 適応ストリーミングのテストに最適な最初の選択肢です。当パーサーでは、320x184 から 1920x1080 までの5段階のバリアントを検出し、AVC および AAC コーデック文字列が宣言されていることを確認しました。プレイリスト自体は HTTP 200 および audio/mpegurl を返します。
https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8
- プレイリスト種別:マスタープレイリスト(Master)
- 検出されたバリアント数:5
- 検出された解像度範囲:320x184 〜 1920x1080
- 主な検証用途:初期再生、適応ビットレート、画質選択メニュー、標準的な H.264/AAC テスト
Apple Bip Bop 16:9 サンプル
メディアグループ(Media Groups)や映像バリアントの構造を検証したい場合は、Apple の Bip Bop サンプルが適しています。当パーサーでは、6件のバリアントエントリ、2件の音声エントリ、8件の字幕エントリを検出しました。宣言された映像解像度は 416x234 から 1920x1080 に対応しています。プレイリストは HTTP 200 および application/x-mpegURL を返します。
https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_16x9/bipbop_16x9_variant.m3u8
- プレイリスト種別:マスタープレイリスト(Master)
- 検出されたバリアント数:6
- 検出されたメディアエントリ:音声 2系統 / 字幕 8言語
- 主な検証用途:音声グループ、字幕メニュー、マルチ音声/映像構成、Apple HLS 互換性テスト
Unified Streaming Tears of Steel サンプル
この Tears of Steel エンドポイントは、最初のサンプルよりも幅広いバリアント宣言を備えています。当パーサーでは、AVC および AAC コーデック文字列を含む 7件のバリアントエントリを検出しました。宣言された解像度には 224x100、448x200、784x350、1680x750 が含まれます。プレイリストは HTTP 200 および application/vnd.apple.mpegurl を返します。
https://demo.unified-streaming.com/k8s/features/stable/video/tears-of-steel/tears-of-steel.ism/.m3u8
- プレイリスト種別:マスタープレイリスト(Master)
- 検出されたバリアント数:7
- 検出された映像仕様:複数の AVC プロファイルおよびビットレート階層
- 主な検証用途:大規模な解像度ラダー、プレイリスト解析、CDN 配信検証
どのサンプルを選ぶべきか?
| テスト目的 | 推奨サンプル | 選択理由 |
|---|---|---|
| HLS プレーヤーの初期化動作を確認する | Mux | 一般的な H.264/AAC の 5段階バリアントで構成されるシンプルなマスター構成のため、初期診断が明確。 |
| 音声や字幕メニューの動作をテストする | Apple Bip Bop | 最上位プレイリストに代替音声および多言語字幕メディアが宣言されているため。 |
| より多彩な解像度ラダーをテストする | Unified Streaming | 7つのバリアントと複数の AVC プロファイルが含まれており、細かい階層テストに最適。 |
| 本番環境固有の障害を再現・検証する | ご自身の許可済みストリーム | 公開サンプルはプレーヤーの基本機能のみを検証します。実際のトークン、CORS、コーデック、CDN 規則の検証には実ストリームが必要です。 |
標準的な HLS テストワークフロー
- プレーヤーでサンプルを開き、動画再生を判定する前にマニフェスト(プレイリスト)のロードイベントを待ちます。
- 画質セレクターが表示されるか確認します。正常に表示されれば、マスタープレイリストから利用可能なバリアントが正しく供給されています。
- 再生診断情報を開き、manifest、level、media、error イベントの発生状況を確認します。
- プレイリスト検査ツールを利用して、バリアント数、コーデック、音声トラック、参照ドメインを照合します。
- ブラウザ、プレーヤーバージョン、ページ設定を変更せず、サンプルをご自身の許可済みリンクに差し替えます。
- 最初に挙動が変化した段階を比較します。この差異から、URL の到達性、CORS、サブプレイリスト、セグメント、復号キー、コーデック互換性などの原因が特定できます。
サンプルテスト成功が証明すること
公開サンプルが正常にロードされた場合、ブラウザがページのプレーヤーコードを実行でき、メディアパイプラインを構築し、少なくとも1つのクロスオリジン HLS リソースを要求し、そのデバイス上でサンプルのメディアをデコードできることが証明されます。これにより、スクリプトの破損、ブラウザ API の非互換、video 要素の欠落、端末のネットワーク遮断といった基礎的な要因を排除できます。
ただし、これによってご自身の独自ストリームに問題がないことが証明されるわけではありません。お使いのストリームは、異なる映像/音声コーデック、セグメントコンテナ形式、暗号化方式、字幕規格、トークン認証、配信ドメイン、またはオリジン間ポリシーを使用している可能性があります。参照サンプルの真価は、プレーヤー環境を固定したまま配信 URL のみを差し替える「基準点」として機能することにあります。
サンプルは動くのに自分の URL が失敗する理由
VLC などのデスクトップアプリケーションは、Web ブラウザにはアクセス権限がないリソースでも直接取得できます。一方、ブラウザベースのプレーヤーは、マスタープレイリスト、サブプレイリスト、メディアセグメント、初期化セグメント、字幕、暗号化キーのリクエストにおいて、CORS(オリジン間リソース共有)規則に厳格に従う必要があります。この配信チェーンのどこか1箇所でもヘッダーが欠落していると、最初のマニフェストの読み込み後に再生が中断します。
ブラウザの開発者ツール(F12)を用いて、失敗したリクエストと成功するサンプルのリクエストを比較してください。HTTP ステータスコード、最終リダイレクト URL、Content-Type、そして Access-Control-Allow-Origin ヘッダーを確認します。安易に公開プロキシを追加してその場をしのぐと、配信経路が変わり、一般ユーザーが直面する本質的な問題が見えなくなってしまうため注意が必要です。
リンク切れサンプルの見分け方
公開テストサンプルのリストは、時間の経過とともに無効化しやすい傾向にあります。CDN の配信パスが廃止されたりアクセス制限された後でも、検索結果に残り続けることがあります。今回の再検証においても、広く使われていたある Sintel HLS リンクが HTTP 403 を返したため、当ページから除外しました。有用なテストリストとは、状態不明なリンクを大量に並べるのではなく、厳格に検証された少数の健全なリンクを維持することです。
- 古いスクリーンショットに頼らず、トップレベル URL を直接リクエストして確認する。
- HLS 関連の Content-Type または
#EXTM3Uで始まるレスポンスボディを要求する。 - マスタープレイリストの場合、少なくとも1つのサブプレイリストを実際に解析・検証する。
- 最終検証日を明記し、公開配信が終了したものは速やかにリストから削除する。
- 一時的な地域障害やネットワークの不調が、必ずしも恒久的なサービス停止を意味しない点にも留意する。
サンプルから独自ストリームの検証へ移行する
サンプルでの動作確認が完了したら、ご自身の環境の公開リンクまたは承認済みリンクを貼り付けます。メディアセグメントや個別解像度のリストではなく、最上位のマスタープレイリスト URL から始めてください。URL に署名が付与されている場合は最新のトークンを生成し、サブプレイリスト、セグメント、字幕、キーファイルすべてにおいて整合性のある認証設定がなされているか確認します。
同一のリンクに対して再生と検査の両方を実行することをおすすめします。再生によってパイプライン全体の描画を確認し、検査ツールによって最初のプレイリストが宣言している構造を精査できます。検査は成功するが再生に失敗する場合は、サブプレイリストやセグメントのリクエストを追跡してください。検査自体が即座に失敗する場合は、URL の有効性、リダイレクト、認証、混在コンテンツ、CORS 設定を優先して見直してください。
公式サンプルおよび仕様リファレンス
- Apple Streaming Examples:バリアント、音声、字幕、HDR、最新の Apple メディア機能を網羅した公式 HLS サンプル集。
- Eyevinn HTTP Streaming Samples:オープンソースの HLS、DASH、ライブ、VOD、CMAF、DRM テストエンドポイント集。
- IETF RFC 8216:プレイリスト構造および各種タグの仕様を規定する HLS 公式標準仕様書。
- hls.js API ドキュメント:ブラウザプレーヤーが発火するイベントや画質レベル切り替えの動作仕様。