Камера H.265 в браузере: причина чёрного экрана и решение
Большинство новых камер с завода настроены на H.265 — так экономится диск регистратора. А многие браузеры такое видео не показывают. Разберём, почему, что в этот момент делает наш сервер и когда лучше поменять настройку камеры.
Почему H.265 часто не показывается в браузере
H.265 (HEVC) — преемник H.264: даёт сопоставимое качество примерно при половине битрейта, поэтому быстро распространился в видеонаблюдении. В браузерах же он так и не прижился, в основном из-за патентного лицензирования. Сегодня картина такая:
- Safari на устройствах Apple обычно показывает H.265.
- Chrome и Edge — только если у компьютера или телефона есть аппаратный декодер H.265. На старых и бюджетных устройствах его часто нет.
- В Firefox поддержка ограниченная и неравномерная.
- В WebRTC, через который достигается низкая задержка, H.265 работает ещё реже.
В итоге одна и та же трансляция у одного зрителя работает, а у другого — чёрный экран без всякой ошибки. Вы не контролируете, с каких устройств смотрят сайт, поэтому отправлять H.265 прямо в браузер — значит полагаться на удачу.
Что делаем мы
- При добавлении камеры сервер сам определяет кодек — вручную ничего указывать не нужно.
- Пока кто-то смотрит камеру H.265, сервер перекодирует видео в H.264, который показывают все браузеры.
- Перекодирование работает по требованию: когда зрителей нет, оно останавливается.
Камера по-прежнему отправляет нашему серверу H.265, так что ваш исходящий канал сохраняет экономию H.265. Перекодирование происходит на нашей стороне, а зритель получает видео как обычно — через WebRTC или LL-HLS.
Цена, о которой стоит знать: перекодирование — это повторное сжатие видео. Оно добавляет немного задержки и немного снижает качество, а когда камеру после долгого перерыва открывает первый зритель, картинке нужно чуть больше времени, чтобы появиться.
Когда всё же стоит перевести камеру на H.264
- Когда нужна минимальная задержка и исходное качество — H.264 идёт до браузера без повторного сжатия.
- Когда на камере включён умный кодек (H.265+, Smart Codec, U-Code). Эти режимы проблемны для браузера независимо от кодека — см. ниже.
- Когда H.264 просто есть в меню камеры и исходящего канала хватает: 3–4 Мбит/с для 1080p.
Если регистратор пишет основной поток в H.265 и вы хотите сохранить экономию диска, менять его не обязательно. Настройте второй или третий поток камеры в H.264 (на Hikvision, например, /Streaming/Channels/102 или 103) и укажите для трансляции его путь. Точные значения: настройки камеры для веб-трансляции.
Умные кодеки: H.264+ и H.265+
«+» — это не отдельный кодек, а режим кодирования, который резко снижает битрейт на статичной сцене и отправляет ключевые кадры очень редко и нерегулярно. Регистратору это удобно. В браузере же новый зритель долго ждёт первую картинку, а при движении видео замирает или рассыпается на цветные квадраты. Выключите H.264+/H.265+ на Hikvision, Smart Codec на Dahua и U-Code на Uniview и задайте интервал I-кадров 1–2 секунды.
Камера, которая обрывает поток
Если трансляция то работает, то пропадает, причина часто не в кодеке, а в камере или сети:
| Причина | Что сделать |
|---|---|
| У камеры лимит одновременных RTSP-подключений: регистратор, мобильное приложение и наш сервер вместе — уже много | Отключите лишние подключения или берите поток с регистратора |
| Исходящий канал забивается в часы пик | Снизьте битрейт или перейдите на CBR |
| Провайдер меняет IP-адрес | Попросите у провайдера статический IP |
| PoE-коммутатору не хватает мощности или кабель длиннее 100 м | Проверьте бюджет питания и кабель |
| Камера подключена по Wi-Fi или через радиомост | Где возможно, используйте кабель |
| После повторных входов с неверным паролем камера блокирует IP | Найдите, где сохранён старый пароль |
| Камера перегревается на летнем солнце или перезагружается по расписанию | Затените её; проверьте расписание перезагрузки |
Если проверка связи сообщает о неподдерживаемом кодеке, камера, скорее всего, отдаёт не H.264 и не H.265, а другой формат (например, MJPEG) — выберите на камере H.264. Если причину найти не удаётся, звоните: +995 577 79 53 77.
Будет ли работать моя камера H.265?
Да. Сервер автоматически распознаёт H.265 и перекодирует его в H.264, пока кто-то смотрит, поэтому видео идёт во всех браузерах. Менять камеру не нужно.
Почему видео показывается на iPhone, но не на компьютере с Windows?
Safari на устройствах Apple показывает H.265, многие другие браузеры — нет. Поэтому H.265 не должен идти в браузер напрямую; наш сервер перекодирует его в H.264.
Переводить ли камеру на H.264?
Если можете и канала хватает — да: повторное сжатие не понадобится, а задержка будет минимальной. Если регистратор пишет в H.265, используйте для трансляции отдельный поток H.264.
Что такое H.265+ и зачем его выключать?
Это умный режим кодирования, который экономит диск за счёт редких ключевых кадров. В браузере из-за этого видео поздно стартует и замирает.