video - 实时将 ts 段多路复用到碎片化的 mp4
问题描述
我有一个在浏览器中播放的 HLS 流。我想要做的是有一个这样的 URL /stream.mp4
,从当前时间点将直播作为片段的 mp4 播放回来。这样,您可以将流下载为单个文件,并且无需任何 js 依赖项即可工作。
我想到的方法是:
- 发送 mp4 标头
- 等待一个新的段
- 将片段转换为 mp4 片段
ffmpeg
- 发送 mp4 片段
- 转到 2。
(我知道你可以连接.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
为此提供了选项。
解决方案
推荐阅读
- python - 在熊猫数据框中按条件过滤 nans
- c# - Unity - 单击重新启动按钮后将分数重置为零
- azure - 在嵌套 ARM 模板中使用 resourceId 函数时出错
- google-sheets - 如何在谷歌表格的前一个单元格中搜索特定文本,然后运行公式
- php - FPDF 和分页符
- sql-server - 在 base64 中编码和解码 XML 字符串
- python - 你如何从一个精灵组中选择一个特定的精灵?
- python - Sublime Linter Path 问题找不到薄片 8(可能是由于使用 Pyenv
- css - 设置列/列的最小和最大宽度的网格 CSS 样式,但也会在移动设备上折叠
- python - 重新排列嵌套目录