【问题标题】:How to loop TS file in m3u8 playlist如何在 m3u8 播放列表中循环播放 TS 文件
【发布时间】:2016-05-01 16:36:34
【问题描述】:

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

#EXTINF:-1,LIVE STREAM
http://example.com/live01.ts

当这个文件结束时,我想循环重复。 live01.ts结束后,需要重新开始,无限循环。

这可能吗?

【问题讨论】:

  • 尝试将 .m3u8 嵌套在其自身中。
  • 仅适用于 VLC 播放器,但不适用于 KODI。我需要在 KODI 上玩。还有其他解决方案吗?。
  • 见过this?

标签: video ffmpeg stream video-streaming m3u8


【解决方案1】:

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

首先,您必须在#EXTINF 标签之前有一个#EXT-X-DISCONTINUITY 标签,以便播放器知道视频/音频帧上的时间戳不会按顺序继续。

其次,更重要的是,您需要在文件开头添加一个 #EXT-X-MEDIA-SEQUENCE:<number> 和/或 #EXT-X-DISCONTINUITY-SEQUENCE:<number>,以与该视频块的持续时间相同的速率递增。播放器将重新请求播放列表(直到它看到#EXT-X-ENDLIST),并且在不增加这些值的情况下,它将继续假设http://example.com/live01.ts 是序列中的第一个块。

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 感谢您的回答。我在 KODI 播放列表中找到了选项 - 全部重复,这解决了我的问题!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-18
    • 2013-11-22
    • 2014-04-20
    • 1970-01-01
    • 1970-01-01
    • 2013-05-13
    • 1970-01-01
    相关资源
    最近更新 更多