生成 M3U8 HLS 播放列表时,是否应该包含尚不存在的媒体片段?
When generating an M3U8 HLS playlist, should I include media segments which don't exist yet?
我正在为 HLS https://www.rfc-editor.org/rfc/rfc8216
生成 m3u8 媒体播放列表
我是否应该在媒体播放列表中包含每个媒体片段 URL(对于 MPEG-2 传输流文件),然后才能在 URL 处获得数据?或者我应该只包含已完成录制的视频片段,一旦我知道数据已准备好下载,并等待 HLS 客户端重新请求播放列表?
我觉得这个标准在这一点上不是很明确
我注意到对于至少一个 HLS 客户端 (HLS.js),它需要至少一个媒体片段存在于媒体播放列表中,否则它有一个 tizzy。当然,这可能只是一个错误。
作为背景,我播放列表中的媒体片段是 Amazon S3 URLs。当我收到播放列表请求时,我指示另一台机器开始将视频片段上传到 S3。
如果文件不存在,服务器将return 404。大多数玩家会在此时停止。
这样做会违反 HLS 规范第 6.2.1 节[1]:
Any Media Segment that is specified in a Playlist loaded by a client
MUST be available for immediate download, or playback errors can
occur. Once download starts, its transfer rate SHOULD NOT be
constrained by the segment production process.
我正在为 HLS https://www.rfc-editor.org/rfc/rfc8216
生成 m3u8 媒体播放列表我是否应该在媒体播放列表中包含每个媒体片段 URL(对于 MPEG-2 传输流文件),然后才能在 URL 处获得数据?或者我应该只包含已完成录制的视频片段,一旦我知道数据已准备好下载,并等待 HLS 客户端重新请求播放列表?
我觉得这个标准在这一点上不是很明确
我注意到对于至少一个 HLS 客户端 (HLS.js),它需要至少一个媒体片段存在于媒体播放列表中,否则它有一个 tizzy。当然,这可能只是一个错误。
作为背景,我播放列表中的媒体片段是 Amazon S3 URLs。当我收到播放列表请求时,我指示另一台机器开始将视频片段上传到 S3。
如果文件不存在,服务器将return 404。大多数玩家会在此时停止。
这样做会违反 HLS 规范第 6.2.1 节[1]:
Any Media Segment that is specified in a Playlist loaded by a client MUST be available for immediate download, or playback errors can occur. Once download starts, its transfer rate SHOULD NOT be constrained by the segment production process.