微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Mux ts 实时分段到碎片化的 mp4

如何解决Mux ts 实时分段到碎片化的 mp4

我有一个在浏览器中播放的 HLS 流。我想要做的是有一个/stream.mp4 这样的 URL,它可以将直播作为当前时间点的碎片 mp4 播放。通过这种方式,您可以将流下载为单个文件,并且无需任何 js 依赖项即可工作。

我想到的方法是:

  1. 发送 mp4 标头
  2. 等待新的片段
  3. 使用 ffmpeg 将片段转换为 mp4 片段
  4. 发送 mp4 片段
  5. 转到 2。

(我知道您可以连接 .ts 段,但它们不能在 Firefox 中播放。)

This answer 描述了当您拥有所有片段时(tl;dr 使用 -movflags frag_keyframe+emptymoov)如何创建碎片化的 mp4。但我想即时执行此操作,以便每个新的 HLS 片段在创建后立即转换为 mp4 片段。

我认为这类似于 DASH 本身所做的,其中任何块 chunk-$n.m4s 都可以附加到 init.m4s 并且它将是一个适当的碎片化 mp4。但是这可以在不使用 DASH 的情况下完成吗?

如何将 ts 片段转换为 mp4 片段?

编辑:我找到了一种做我想做的事情的方法,但不是通过将 mpegts 段转换为 fmp4。事实证明,更高版本的 HLS 确实支持碎片化的 mp4(就像 DASH 一样),而 FFmpeg 为此提供了 -hls_segment_type fmp4 选项。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。