我想从ts文件列表中创建'm3u8'文件。我该怎么做?
我在谷歌搜索并阅读了ffmpeg的文档,但我没有找到任何东西。
目前尚不清楚您要问的下列哪种情况,所以这里有两个快速解答:
1)如果您从包含您的内容的单个文件开始这是最常见的情况。通常,从源材料创建可播放的HlS流有三个步骤。
FFMpeg可以完成所有这三个。
2)如果你开始使用.ts文件的集合如果你真的开始使用.ts文件的集合,你可以手工构建一个m3u8文件,如上一个答案所述,或者你可以写一个脚本到做到这一点。
在任何一种情况下,.ts文件都有一些注意事项:
当你构建你的m3u8文件时,它有助于通过验证器运行它来发现任何问题。这比想知道为什么HLS流在播放器/浏览器中播放效果不佳或不一致要容易得多。
你可能想要一个HLS结构。有很多documentation at Apple(IIRC它是由Apple发明的,然后被广泛采用),例如, a draft RFC和page with example streams。
HLS由两个级别组成:主M3U8引用其他M3U8,后者又引用.ts
文件。您可以省略主M3U8并只提供“第二级”。
作为一个起点,它may look something like this:
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:1
#EXTINF:10, no desc
media-000001.ts
#EXTINF:10, no desc
media-000002.ts
#EXTINF:10, no desc
media-000003.ts
EXT-X-TARGETDURATION
指定每个.ts
文件的长度(它们必须具有相同的长度)。它可以是相对路径或绝对路径。