Video 如何在m3u8播放列表中循环TS文件

Video 如何在m3u8播放列表中循环TS文件,video,ffmpeg,stream,video-streaming,m3u8,Video,Ffmpeg,Stream,Video Streaming,M3u8,我想创建m3u8播放列表,如下所示: #EXTINF:-1,LIVE STREAM http://example.com/live01.ts 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-DISC

我想创建m3u8播放列表,如下所示:

#EXTINF:-1,LIVE STREAM
http://example.com/live01.ts
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
当这个文件结束时,我想在循环中重复。 live01.ts结束后,需要重新开始并在循环中无限次地执行此操作


这可能吗?

这不是m3u8的官方功能。循环本身必须作为播放器设置来完成。

这样的静态播放列表是不可能的

首先,在
#exef
标记之前必须有一个
#EXT-X-intercontinuction
标记,以便播放机知道视频/音频帧上的时间戳不会按顺序继续

第二,也是更重要的一点,您需要在文件的头部添加一个
#EXT-X-MEDIA-SEQUENCE:
和/或
#EXT-X-intercontinuction-SEQUENCE:
,其增量与该视频块的持续时间相同。播放器将重新请求播放列表(直到它看到
#EXT-X-ENDLIST
),在不增加这些值的情况下,它将继续假定
http://example.com/live01.ts
是序列中的第一个块

如果您直接为M3U8文件提供服务,并且您的系统上有一个支持毫秒的sleep命令,我建议这样做:

#EXTINF:-1,LIVE STREAM
http://example.com/live01.ts
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

尝试将.m3u8嵌套在其内部。仅适用于VLC播放器,但不适用于KODI。我需要在科迪玩。还有其他解决方案吗?看到了吗?谢谢你的回答。我在KODI播放列表中找到了选项-全部重复,这解决了我的问题!