我开发了一个平台,可以通过cloudfare API(流)发送视频,然后24/7 播放视频。有没有办法根据 cloudfare 流中的视频创建文件并生成 m3u8 播放列表? Cloudfare Stream 为我提供了每个视频的 hls 文件,但如何在一个 m3u8 文件中创建多个视频的完整播放列表以供持续阅读?
目前我只有 HLS 中每个视频的播放列表和一个 js 脚本,该脚本在视频结束时将一个视频切换到另一个。
“如何在一个 m3u8 文件中创建多个视频的完整播放列表以供持续阅读?”
M3U8 只是一个文本文件,其中包含视频块的 URL(通常为
.ts
或 .m4s
文件)。您必须在第一个视频的最后一个块的条目之后添加下一个视频块的 URL。
注意:所有视频必须编码为相同的编解码器设置(例如:宽度/高度,或配置文件(如果使用 H.264 等)。
举个例子,假设有 3 个视频,每个视频只有 3 个块:
#EXTM3U
#EXT-X-TARGETDURATION:12
#EXT-X-ALLOW-CACHE:YES
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:1
#EXTINF:10.000,
https://exapmle.com/vid_01/seg-1.ts
#EXTINF:10.000,
https://exapmle.com/vid_01/seg-2.ts
#EXTINF:10.000,
https://exapmle.com/vid_01/seg-3.ts
#EXTINF:10.000,
https://exapmle.com/vid_02/chunk-1.ts
#EXTINF:10.000,
https://exapmle.com/vid_02/chunk-2.ts
#EXTINF:10.000,
https://exapmle.com/vid_02/chunk-3.ts
#EXTINF:10.000,
https://exapmle.com/vid_03/seg_001.ts
#EXTINF:10.000,
https://exapmle.com/vid_03/seg_002.ts
#EXTINF:10.000,
https://exapmle.com/vid_03/seg_003.ts
#EXT-X-ENDLIST