VLC と m3u8 ファイル

VLC と m3u8 ファイル

おはようございます。HLS ストリーミングをテストしており、コマンドを使用して簡単なプレイリストとビデオのセグメントを作成しましたffmpeg -i C:\Users\funny\Desktop\uscita\out.mp4 -vcodec libx264 -g 24 -hls_time 10 -hls_playlist_type vod -vsync 1 index1.m3u8

ソース ビデオは問題なく開き、ffmpeg はそれを問題なく index1 (プレイリスト ファイル) にエンコードし、index10、index11、index12 は 3 つの .ts (ビデオの長さは 26 秒のみ) になります。VLC はプレイリスト ファイルを開くので、.m3u8 をテストできるようにインストールしましたが、VLC で開くと、プログラムは実行を開始しますが、何も再生されません。参考までに、これもプレイリストです。

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:12
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:11.500000,
index10.ts
#EXTINF:12.000000,
index11.ts
#EXTINF:2.500000,
index12.ts
#EXT-X-ENDLIST

答え1

tl;dr: これは VLC のバグのようです。別のプレーヤーを使用してください。

ffmpeg質問に示されているように作成されたHLSビデオファイルセットでこの問題を再現できます。これはffmpeg 4.0.2とVLC 3.0.4です。

症状:

VLC でファイルを開くと.m3u8、次のエラー メッセージが表示されます:

適応型デマルチプレクサ エラー: デマルチプレクサ (nil) の作成に失敗しました TLS

デバッグ ログは、VLC が実際にプレイリストを正常に読み取り、TS ファイルを見つけたが、その後何か問題が発生したことを示しています。

ffplayしかし、私は両方でファイルを正常に再生することができますMPlayerなので、VLC に問題があるようです。

VLC バグトラッカーには似たようなバグレポートがいくつかありますが、ほとんどはかなり古く、修正されているようです。ファイルの URL を開いて HTTP 経由で HLS ストリームを再生することはできたので.m3u8、このバグはダウンロードした HLS ストリームにのみ適用されるようです。ローカルにダウンロードしたファイルの再生は VLC にとって優先度が高くないのかもしれませんので.m3u8、別のプレーヤーを使用してください。

答え2

VLC は、これらの 'EXT-X' ディレクティブを含む m3u8 ファイルを処理できないようです。おそらくこれは、他の場所でも指摘されているように、今日に至るまで解決されていない VLC のバグです。

最適な選択肢は次のとおりです。

  1. ファイルを編集して.m3u8EXT-X行を削除します(ただし、EXTINF行は残してください)。その後、VLCでプレイリストを再生できるようになります。
  2. 別のアプリケーションを使用して、.m3u8ファイルをそのまま再生します。ffplayたとえば、再生できるアプリケーションを使用します。

答え3

万が一、まだ情報が必要な方がいらっしゃる場合に備えて。

mpegts チャンクの「content-type」ヘッダーを確認してください。「video/mp2t」になっているはずです。

関連情報