DVR RTMP 流式传输到 SRS 中的 HLS (m3u8)

DVR RTMP Stream into HLS (m3u8) in SRS

对于 SRS SaaS,DRV 输出是 HLS (m3u8),在此处提到 https://github.com/ossrs/srs/issues/2856 and here: https://mp.weixin.qq.com/s/UXR5EBKZ-LnthwKN_rlIjg

最近也讨论了同样的想法https://www.bilibili.com/video/BV1234y1b7Pv?spm_id_from=333.999.0.0在大约时间戳9:50,提到,对于SRS SaaS,DRV输出是HLS(m3u8)。

问题:我们能否也将 DVR RTMP 流传输到 SRS 中的 HLS (m3u8),因为 wiki 中仅讨论了 mp4 和 flv 选项 https://github.com/ossrs/srs/wiki/v4_EN_DVR

答案是SRS支持DVR到FLV/MP4文件,你也可以使用HLS作为DVR,因为DVR所做的是将RTMP转换成文件,例如FLV/MP4/HLS。

如果你只想得到一个直播的录制文件,你可以简单地使用SRS的DVR,你会看到生成了各种文件。它是这样工作的:

OBS --RTMP--> SRS --DVR--> FLV/MP4 file

但您也可以使用 HLS 对直播流进行 DVR,这种方式更加复杂和强大。比如你停止发布,调整编码器的参数或者只改变一个,然后继续发布,如何将它DVR到一个文件?

如果你使用DVR的SRS,你会得到多个文件,因为每个流都隐藏到一个文件,并且DVR会在另一个发布开始时开始一个新文件。

如果你使用HLS,你需要写一个后端服务器,你会得到on_hls回调,你可以决定写入以前的m3u8或者开始一个新的,它是由你的后端服务器控制的,而且因为你必须写一个后端服务器所以它更复杂。它是这样工作的:

OBS --RTMP--> SRS --HLS--> m3u8/ts file
               +
               +--on-hls---------> Your Backend Server
                 (HTTP Callback)

有使用HLS将RTMP转为VoD文件的例子,请阅读srs-cloud