如何使用现有的多个 .m3u8 播放列表创建主 HLS 播放列表

问题描述 投票:0回答:1

是否可以使用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文件路径。但似乎只有第一个路径剪辑正在播放。

video http-live-streaming vlc m3u8
1个回答
0
投票

“是否有可能像我一样使用对 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,看起来像

website.com/master.m3u8
并且应该包含许多关联的 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 后,它应该可以工作。

© www.soinside.com 2019 - 2024. All rights reserved.