我想创建m3u8播放列表,如下所示:
#EXTINF:-1,LIVE STREAM
http://example.com/live01.ts
当这个文件结束时,我想重复循环。 在live01.ts结束之后,需要再次启动并在循环中执行此无限。
这可能吗?
答案 0 :(得分:3)
这样的静态播放列表是不可能的。
首先,您必须在#EXT-X-DISCONTINUITY
标记之前添加#EXTINF
标记,以便播放器知道视频/音频帧上的时间戳不会按顺序继续。
其次,更重要的是,您需要文件头部的#EXT-X-MEDIA-SEQUENCE:<number>
和/或#EXT-X-DISCONTINUITY-SEQUENCE:<number>
,其增量速度与该视频块的持续时间相同。播放器将重新请求播放列表(直到它看到#EXT-X-ENDLIST
)并且不递增这些值,它将继续假设http://example.com/live01.ts
是序列中的第一个块。
如果您直接提供M3U8文件并且系统上有一个支持毫秒的睡眠命令,我建议这样:
file="/path/to/file.m3u8"
duration="1.337"
make_playlist() {
echo "#EXTM3U"
echo "#EXT-X-MEDIA-SEQUENCE:${1}"
echo "#EXT-X-DISCONTINUITY-SEQUENCE:${1}"
echo "#EXT-X-DISCONTINUITY"
echo "#EXTINF:${duration},"
echo "http://example.com/live01.ts"
echo
}
for ((x=0;;x++)); do
make_playlist "${x}" > "${file}"
sleep "${duration}"
done
答案 1 :(得分:2)
这不是m3u8的官方功能。循环本身必须作为播放器设置完成。