ビデオファイルのスライス

1. ネットワーク オンデマンド システムで m3u8 を使用する方が有利なのはなぜですか? オンデマンドに M3U8 を使用する理由は何ですか? ファイルとして保存した方が良いのではないでしょうか?

        MP4 ファイルは、数百 M または数 G になることがあります。MP4 ファイル全体の情報を読み取り、コンテンツの一部をダウンロードする必要がある場合、初めて開いて再生するときは非常に遅くなります (読み込み時間が長い)。MP4 ファイルをスライスで再生すると (各スライスが 100 KB を超える)、再生は速くなります。

2. M3U8+MPEGTS断片化再生のメリットは?

  • 再生速度ブロック: MP4 ファイルの再生の読み込みが開始されると、大きなファイル情報が読み取られるため、再生に時間がかかる可能性があります。m3u8 セグメントはビデオ ファイル情報全体を瞬時に読み取り、すぐに再生する最初の ts ビデオ ファイルのロードを開始し、再生開始時もドラッグ アンド ドロップ時もロード速度は MP4 の N 倍です。
  • ディスク IO の軽減: 高解像度ビデオ ファイルは通常 G レベルにあり、大きなファイルのダウンロードでは、単一ディスクの IO 負荷が比較的高くなります。大きなファイルをディスク上に断片的に保存できれば、再生する必要がある部分だけがダウンロードされ、再生する必要のない部分はダウンロードされないため、ハードディスクの IO が大幅に軽減されます。
  • シンプルなフォールト トレランス: ダウンロード中または保存中に、1G ファイル内のバイト エラーによりビデオ全体が無効になる可能性がありますが、小さな断片に分割された後、フォールト トレランスは比較的シンプルになり、間違ったスライスを完成させるだけになります。
  • 容易な配布: 小さなファイルよりも大きなファイルの配布は難しく、ダウンロードに時間がかかります。特にサービスの初期段階では、ソース サーバーは非常に高いディスク IO リクエストに耐える必要があります。基本的にCDN配信では超大容量ファイルは稀ですが、ts断片化ファイルであればCDNキャッシュがしやすく、小さいファイルであればすぐにキャッシュされ、基本的にキャッシュ失敗する可能性はありません。
  • 優れたキャッシュ ダウンロード: MP4 は HTTP 状態でファイルをダウンロードし続けます。ユーザーが次のコンテンツを再生する必要があるかどうかに関係なく、ダウンロードが完了するまでダウンロードを続けます。しかし、断片化されたファイルではこの問題は発生せず、プレーヤーまたはサーバーの制御により、再生する必要があるコンテンツの部分のみがダウンロードされ、再生されない場合はダウンロードされません。

3. CDN は m3u8 オンデマンドに対してどのようなサポートを提供する必要がありますか?

        プレーヤーとソース サイト間の対話動作は不確実であるため、M3U8 にキャッシュおよびアクセラレーション サービスを提供する場合、プレーヤーがソース サイトと直接対話するときにパケットをキャプチャし、リクエスト ヘッダーと応答ヘッダーを分析することが最善です。 CDN の通過中に発生した障害の解決。

4. 注意が必要

  • ソース サイトは、どのコンテンツをキャッシュできないかをプレーヤーに明確に伝え、cache-control: no-cache を指定し、プレーヤーに影響を与える可能性のある xml 制御ファイルや M3U8 ファイルなどのソース サイトの構成と一致しないようにします (内容は変わります)
  • 長い接続: ソース ステーションとプレーヤー間の直接対話は、長い接続を開くことです。接続: キープアライブ、長い接続の場合、Wireshark でパッケージを開くときに、[ストリームをフォロー] をクリックすると、ストリーム GET リクエストとレスポンスに含まれるストリームの数を確認します。通常の再生やドラッグがフリーズする場合は、長期接続が有効になっていない可能性があります。CDN デバイスからプレーヤーへ、および CDN からソース ステーションへの長期接続を有効にするように注意してください。これにより、ミスが発生した場合のユーザー エクスペリエンスが最小限に抑えられます。 

5. M3U8対応におけるいくつかの不具合と最適化対策

  • 事前にプリロードし、すべての m3u8 リストを取得し、スクリプトを実行して、最初にそれらすべてを CDN デバイスにプリロードします。比較的素朴ですが、その後の視聴体験には影響しません。
  • リアルタイム プリロードでは、M3U8 ファイルが CDN デバイスに初めて取得されるときに、M3U8 が CDN 側で解析され、ビデオ ファイルのプレヒートが CDN 自体内で完了します。これは比較的理想的ですが、CDN 側で解析すると、ソース ステーションからクライアントまでの M3U8 の遅延が増加します。1より少し複雑です。

6. スライステストコマンド

ffmpeg -i HD1080P_FinalOutput.mp4 -hls_time 5 -hls_list_size 0 -c copy -f hls  HD1080P_FinalOutput.m3u8

おすすめ

転載: blog.csdn.net/weixin_35804181/article/details/130384973