Как зациклить файл TS в плейлисте m3u8

Я хочу создать список воспроизведения m3u8, например:

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

Когда этот файл закончился, я хочу повторить цикл. После того, как live01.ts закончился, нужно начать заново и сделать эту бесконечность в цикле.

Это возможно?


person Aleksandar    schedule 25.01.2016    source источник
comment
Попробуйте вложить .m3u8 внутрь себя.   -  person Gyan    schedule 25.01.2016
comment
Работает только с проигрывателем VLC, но не работает в KODI. Мне нужно играть в KODI. Любые другие решения?   -  person Aleksandar    schedule 25.01.2016
comment
Видели это?   -  person Gyan    schedule 25.01.2016


Ответы (2)


Это невозможно с таким статическим плейлистом.

Во-первых, вам нужно поставить тег #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
person MithrilTuxedo    schedule 27.01.2016

Это не официальная функция m3u8. Само зацикливание должно выполняться в настройках плеера.

person szatmary    schedule 26.01.2016
comment
Спасибо за ответы. Я нашел опцию в плейлисте KODI - Повторить все, и это решило мою проблему! - person Aleksandar; 27.01.2016