M3U8 プレーヤーに戻る

MPEG-TS 診断

HLS における MPEG-TS 同期バイト 0x47 の解説

MPEG-TS パケットは通常、188 バイト間隔で同期バイト 0x47 から始まります。そのパケット整列の前に余分なバイトが入ると、HLS 再生が失敗することがあります。

同期バイトの役割

MPEG-TS セグメントでは、各トランスポートストリームパケットは 188 バイトです。各パケットの最初のバイトは 0x47 であることが期待され、デマルチプレクサーはこの単純なパターンでパケット境界を識別できます。

最初のパケットの前にバイトが追加されると、期待される 0x47 パターンがオフセット 0 からずれます。一部のデマルチプレクサーは復旧できますが、別のものは解析エラーやメディアエラーを報告します。

HLS セグメントがずれる理由

ずれは、パッケージングのミス、カスタム配信レイヤー、トランスポートストリームデータの前に小さな接頭辞を追加する診断ラッパーによって発生する場合があります。

修復ローダーはフラグメントの先頭を走査し、0x47 と、その 188 バイト後および 376 バイト後に同じパターンがある位置を探して、ローカル再生テスト用に接頭辞を切り詰めることができます。

修復は回避ではなく診断として使う

同期バイト修復はコンテンツを復号せず、CORS、認証、ライセンス制限を回避しません。これは、形式が不正だが許可された MPEG-TS フラグメントという限られた問題にだけ役立ちます。

本番環境で修復が必要な場合は、すべてのクライアントが正しく整列したメディアを受け取れるように、パッケージャーまたはオリジンの処理系を修正してください。