从 ts 文件列表创建 m3u8 文件

Moh*_*ami 6 ffmpeg http-live-streaming m3u8

我想从 ts 文件列表中创建“m3u8”文件。我该怎么做?

我确实在谷歌搜索并阅读了 ffmpeg 的文档,但我没有找到任何东西。

小智 5

不清楚您要问的是以下哪种情况,因此这里有两个快速答案:

1) 如果您从包含您的内容的单个文件开始这是最常见的情况。通常,从源材料创建可播放的 HLS 流需要三个步骤。

  • 对于每个所需的输出级别(为了简单起见,我们说比特率),您需要创建一个分段 .ts 文件的集合。
  • 对于每个输出级别,您都需要一个播放列表清单 (m3u8),其中包含构成内容的片段文件列表。
  • 对于整个流,您需要一个列出播放列表的主清单(另一个 m3u8)。

FFMpeg 可以做到这三点。

2)如果您从一组 .ts 文件开始如果您确实从一组 .ts 文件开始,您可以按照前面的答案中的描述手动构建一个 m3u8 文件,或者您可以编写一个脚本来做吧。

无论哪种情况,.ts 文件都有一些注意事项:

  • 如果片段文件不属于不间断序列(就像它们从单个源剪辑转码以在 HLS 中使用一样),则需要在没有相同的编码特征或没有单调递增的 PTS(演示时间戳)值。

  • 虽然这些段不需要都具有相同的长度,但最长的一段不得超过 EXT-X-TARGETDURATION 标签中指定的(整数)秒数。

  • 所有段的最大比特率不得超过 EXT-X-TARGETDURATION 标签中指定的值。

当您构建了您的 m3u8 文件时,它有助于通过验证器运行它以发现任何问题。这比挠头想知道为什么 HLS 流在播放器/浏览器之间播放效果不佳或不一致要容易得多。