Отображение пустых ts сегментов в видео

Я делаю видео плеер, который отображает видео записи по ts файлам. Для этого я использую hls.js. Но возникла проблема, что некоторые ts файлы приходят пустыми, когда видео не записывалось. Из-за этого hls останавливает подгрузку сегментов и не может запустить видео. Я бы хотел чтобы вместо остановки, можно было запустить видео, но отобразиться просто пустой (черный) экран, при этом плеер будет идти.

Если я преобразовываю видео из ts файлов в mp4 с помощью ffmpeg, то видео работает как я бы хотел, а именно на пустых ts файлах отображается просто пустое (черное) видео.

Подробности:

Мне приходит массив ts файлов с их длительностью и временем записи. Я по нему создаю m3u файл и передаю в hls.js. Далее отображаю видео к которому присоединяю hls.

const tsList = [
 {start: someDate, duration: 2 , tsUrl: 'https://examples/exmpty.ts' },
 {start: someDate, duration: 2 , tsUrl: 'https://examples/empty2.ts' },
 {start: someDate, duration: 2 , tsUrl: 'https://examples/file1.ts' }
 ...
]

const m3u8Data = `#EXTM3U
${tsList .map(({tsUrl}) => (`#EXTINF:${tsUrl}\n`))}
EXT-X-ENDLIST
`

В файле плеера:

const hls = new Hls()
const m3uBlob = URL.createObjectURL(new Blob([m3u8Data]))
hls.loadSource(m3uBlob)
hls.attachMedia(htmlVideo)

При отображении подгружаются первые два сегмента, а дальше бросает евент - emptied. А я бы хотел запустить видео и чтобы оно действительно отображалось по тем промежуткам которые указаны в duration.

Я пытался искать в нескольких направлениях:

  1. конфигурация hls.js
  2. использовать video.js (но оно под капотом все равно использует hls.js)
  3. настраивать m3u (но не нашел нужных аттрибутов)

Ответы (0 шт):