是否可以使用master.m3u8播放多个播放列表。由于clip1和clip2 m3u8位于不同的文件夹结构中。我尝试播放它,但似乎只播放第一个剪辑。
master.m3u8:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:BANDWIDTH=2305600,RESOLUTION=852x480,CODECS="avc1.640034,mp4a.40.2"
main/clips/new/2024/clip1.m3u8
main/clips/2023/clip2.m3u8
剪辑1.m3u8:
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:3
#EXTINF:10,
clip/1.ts
#EXTINF:10,
clip/2.ts
#EXTINF:10,
clip/3.ts
#EXT-X-ENDLIST
clip2.m3u8
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:3
#EXTINF:10,
clip/1.ts
#EXTINF:10,
clip/2.ts
#EXTINF:10,
clip/3.ts
#EXT-X-ENDLIST
我尝试播放master.m3u8,其中包含多个m3u8文件路径。但似乎只有第一个路径剪辑正在播放。
“是否有可能像我一样使用对 m3u8 路径的引用,类似于 master.m3u8”
由于您使用的是 VLC,您可以尝试创建一个指向 M3U8 文件的播放列表文件。 VLC 可以播放
.pls
播放列表文件。您给它一个文件,多个 M3U8 文件就会按顺序播放。
PLS 是一种简单的文本格式:
[playlist]
NumberOfEntries=2
File1=https://www.website.com/main/clips/new/2024/clip1.m3u8
File2=https://www.website.com/main/clips/2023/clip2.m3u8
编辑:
“我想向客户端提供一个主 URL,看起来像
并且应该包含许多关联的 m3u8 文件路径”website.com/master.m3u8
在 HLS 中,
master.m3u8
被视为配置文件。它不能是播放列表。没有公共/免费的 M3U8 播放器被编程为仅读取配置文件,然后将其用作播放列表文件。
如果客户端意味着“我的用户正在通过 VLC 观看”,那么从测试来看,只有 PLS 适合您的想法。为了进行测试,请将以下文本另存为
test.pls
并在 VLC 中打开该文件:
[playlist]
NumberOfEntries=2
File1=https://cdn.bitmovin.com/content/assets/art-of-motion-dash-hls-progressive/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa_video_360_800000.m3u8
File2=https://live-par-2-cdn-alt.livepush.io/live/bigbuckbunnyclip/tracks-v4a1/mono.m3u8
否则,您必须编写自己的播放器代码(例如:制作一个循环浏览 M3U8 url 文本列表的网络播放器,然后通过 javascript 它应该检测到
ended
事件并只需重新加载下一个 M3U8 播放列表并重复该过程,直到文本列表末尾)。
自定义播放器代码的替代方法是使用编码来编辑一些自定义的
playlist.m3u8
,其中列出了从各个播放列表添加的所有 TS 文件。这意味着使用一些文件浏览器 API 来选择 M3U8 播放列表,然后还有一个函数可以使用其他 M3U8 中的行更新字符串,直到将它们全部连接到一个文本字符串中。将该字符串保存为 M3U8 后,它应该可以工作。