質問: HLS(http live streaming)で動画を配信する時、m3u8ファイルが更新中だとライブストリーミングになるのを阻止できないでしょうか。常に先頭から再生したいです。何か解決策はありますか?手段はサーバサイドでもクライアントサイドでも構いません。
回答: HLS(HTTP Live Streaming)はPull型の映像ストリーミング・プロトコルですから、再生開始位置の判断・決定はクライアントサイド実装に依存します。HLSクライアントでライブ配信セッションを再生する場合、配信遅延を小さくする方が好ましいため、一般的には最も新しいメディアセグメントから再生開始します。 サーバサイドからみたHLSライブ配信セッションでは、ディスク容量の浪費を防ぐため、古いメディアセグメントファイルから自動削除していく運用が一般的です。ライブ配信中のコンテンツを、VoD(Video on Demand)的にコンテンツ先頭から再生したい場合、このようなメディアセグメント自動削除を無効化する必要があります。 所望の動作を実現するには、2つの方針が考えられます。 1. サーバサイドでVoD配信セッションと偽る:HLSプレイヤーにVoDセッションと偽装することで、コンテンツ先頭から開始される(と期待されます。)クライアントサイドでは、m3u8ファイル自動更新に対応できませんから、再生開始時点のコンテンツ長で打ち切られます。 2. クライアントサイドでVoD的に振る舞う:HLSプレイヤーを改造もしくは自作する必要があります。Webブラウザを前提とするなら、``タグとMSE(Media Source Extensions)を用いて自作可能です。(が、かなり大変です。)