Источник видео H264 не воспроизводится ни в одном браузере
Я использую Janus для передачи видеопотока с камеры RTSP/H.264 ( QD800) через WebRTC в браузеры.
Какие браузеры я говорю здесь? Вот подробности:
- Firefox (Linux, 64-разрядная версия 59.0.2)
- Firefox (Windows7, 64-разрядная версия 59.0.2)
- Chrome (Linux, 64-разрядная версия 49.0.2623.87)
- Chrome (Windows7, 64-разрядная версия 66.0.3359.139)
Первоначально камера отправляет 420029 в качестве идентификатора уровня профиля в SDP при согласовании с клиентом (Янус).
Однако, как таковой Firefox не может играть в эту версию (420029 означает уровень 4.1, FF способен играть только 3.1 в теории, но оба имеют ограниченный базовый профиль).
Теперь моя конфигурация потокового плагина Janus выглядит следующим образом:
[rtsp-test]
type = rtsp
id = 4
description = RTSP
url = rtsp://admin:admin@a.b.c.d:554/11
audio = no
video = yes
videopt = 96
videortpmap = H264/90000
videofmtp = profile-level-id=42e01f\;packetization-mode=1\;sprop-parameter-sets=Z00AKpWoHgCJ+VA=,aO48gA==
secret = adminpwd
Как видите, он переопределяет идентификатор уровня профиля в конфигурации videofmtp.
Это работает нормально, я могу проверить новый идентификатор уровня профиля в консоли WebRTC как в FF, так и в Chrome в обеих ОС.
Я использую демонстрационный HTML-код по умолчанию, который предоставляется для Janus (demos/streamingtest.html).
Ни в одном браузере нет ни одного видео. Отображается только белая коробка.
Когда я нажму на игру:
- в Chrome: "Начался поток 405 кбит / с". Белый видеоэкран, спиннер крутится.
- в Firefox: "Поток начался 0x0 407 кбит / с". Белый видеоэкран, без счетчика, без видео.
PS1.: Моя камера работает, VLC может воспроизводить поток RTSP непосредственно с нее.
PS2.: FF и Chrome фактически принимают поток, но не могут его декодировать.
PS3.: Я также пытался передать весь RTSP через FFMPEG:
ffmpeg -i 'rtsp://ip-camera' -an -codec copy -f rtp 'rtp://127.0.0.1:20000'
А затем используйте образец RTP Януса, но я получил тот же результат, что и выше. Смотрите вывод FFMPEG.
В справочной группе Janus я прошел как можно дальше, поскольку поток проходит через Janus, это уже не их компетенция.
Рекомендации: