我有一个在浏览器中播放的 HLS 流。我想要做的是有一个像这样的 URL,/stream.mp4可以从当前时间点将直播回放为碎片 mp4。这样您就可以将流下载为单个文件,并且无需任何 js 依赖即可运行。
我想到的方法是:
ffmpeg(我知道你可以连接.ts片段,但它们不能在 Firefox 中播放。)
这个答案描述了当您手头有所有片段时如何创建碎片mp4(tl;dr use -movflags frag_keyframe+emptymoov)。但我想动态执行此操作,以便每个新的 HLS 片段在创建后立即转换为 mp4 片段。
我认为这与 DASH 本身的做法类似,chunk-$n.m4s可以附加任何块init.m4s,并且它将是一个适当的碎片 mp4。但这可以在不使用 DASH 的情况下完成吗?
如何将 ts 片段转复用为 mp4 片段?
编辑:我找到了一种做我想做的事情的方法,但不是通过将 mpegts 片段转换为 fmp4。事实证明,HLS 的更高版本确实支持分段 mp4(就像 DASH 一样),并且 FFmpeg-hls_segment_type fmp4为此提供了选项。