Hls.js не может поддерживать поиск с потоком [только] живого видеоLinux

Ответить
Anonymous
 Hls.js не может поддерживать поиск с потоком [только] живого видео

Сообщение Anonymous »

Я кодирую прямой видеопоток со скоростью 25 кадров в секунду, 950x540, H.264, используя последнюю версию (созданную из исходного кода) FFmpeg, 10 сегментов в манифесте, каждый по 5 секунд, и использую этот поток на другом компьютере в моей локальной сети. в [инкогнито, чтобы избежать проблем с кешем] Chrome с последней версией hls.js (cdn.jsdelivr.net/npm/hls.js@latest). Закодированное видео воспроизводится, но ненадежно; У меня есть две проблемы:
  • При запуске потока клиент hls.js не может синхронизироваться с видеопотоком после несколько минут, жалуясь на выход за пределы окна синхронизации и при повторной синхронизации получая пустые буферы.
  • Клиент hls.js не будет синхронизироваться с потоком если я не запущу поток и клиент одновременно: если Клиент hls.js пытается использовать поток через несколько десятков секунд после его запуска, но ему снова не удается синхронизироваться с потоком. Единственный способ успешно запустить поток — это сначала удалить файл .m3u8, чтобы браузер не смог найти файл, а затем клиент прочитал файл и начал потоковую передачу. В окне F12 Chrome отображается что-то вроде: «[stream-controller]: Воспроизведение: 0,000 расположено слишком далеко от конца скользящего списка воспроизведения в реальном времени: 49,92, сбросьте currentTime до: 44,920».
Очевидно, у меня что-то в корне не так, только не могу понять что. Мои флаги HLS для FFmpeg — discont_start и omit_endlist, и клиенту было указано не кэшировать. Вот пример выходного файла .m3u8:

Код: Выделить всё

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-ALLOW-CACHE:NO
#EXT-X-TARGETDURATION:5
#EXT-X-MEDIA-SEQUENCE:30
#EXTINF:5.120000,
http://10.10.1.16/watchdog30.ts
#EXTINF:4.880000,
http://10.10.1.16/watchdog31.ts
#EXTINF:5.120000,
http://10.10.1.16/watchdog32.ts
#EXTINF:4.880000,
http://10.10.1.16/watchdog33.ts
#EXTINF:5.120000,
http://10.10.1.16/watchdog34.ts
#EXTINF:4.880000,
http://10.10.1.16/watchdog35.ts
#EXTINF:5.120000,
http://10.10.1.16/watchdog36.ts
#EXTINF:4.880000,
http://10.10.1.16/watchdog37.ts
#EXTINF:5.120000,
http://10.10.1.16/watchdog38.ts
#EXTINF:4.880000,
http://10.10.1.16/watchdog39.ts
Я также пробовал добавить флагиdependent_segments и program_date_time, но это не помогло.
Что я пропустил?
Мой полный код (FFMpeg управляется API C) можно найти здесь: https://github.com/RobMeades/watchdog/b ... g.cpp#L933. Часть захвата видео работает на Raspberry Pi 5 под управлением последней версии Raspbian.

Подробнее здесь: https://stackoverflow.com/questions/792 ... nly-stream
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»