HTTP ライブ ビデオ ストリームをファイルに保存しようとしています。この目的のために、M3U8 ファイルを定期的に要求し、それを解析してメディア セグメントの URL を抽出し、セグメントをダウンロードして再構築する必要があることはわかっています。私が抱えている問題は、スムーズな再生を実現するための適切な戦略を見つけることです。再構築されたビデオは常に途切れ途切れで、オーディオがスキップするなど...最初の数秒だけは問題ありません。
私の M3U8 ファイルは次のようになります。
#EXTM3U
#EXT-X-TARGETDURATION:2
#EXT-X-VERSION:3
#EXT-X-ALLOW-CACHE:NO
#EXT-X-MEDIA-SEQUENCE:1105
#EXTINF:1.00000,
tmp/video1.ts
#EXTINF:1.00000,
tmp/video2.ts
#EXTINF:1.00000,
tmp/video2.ts
#EXTINF:1.00000,
tmp/video3.ts
#EXTINF:1.00000,
tmp/video4.ts
#EXTINF:1.00000,
tmp/video5.ts
ファイルを解析した後、すべての TS ファイルのダウンロードを開始し (1 つずつ)、最後から 2 番目のファイルをダウンロードしようとしているときに、新しい M3U8 ファイルを要求します。これは間違っていますか?サーバーがまだセグメントを更新していない可能性がありますか?したがって、同じものを再ダウンロードしていますか?新しいプレイリストをリクエストする前に 5 秒間 (number_of_videos * duration) 待機しようとしましたが、前述の再生の問題が引き続き発生します。
スムーズな再生を実現する方法についてのアイデア/戦略はありますか?