2 мин чтения#infrastructure#engineering

Звук есть. Видео — нет.

Первый входящий сигнал на медиасервер пришёл в воскресенье по SRT. Подключение стабильное, скорость хорошая, звук есть — а вот видео нет.


Когда энкодер отправляет поток с трансляцией, вместе с самими данными (аудио и видео) уходит небольшое служебное описание: какие дорожки есть в потоке, где их искать, как их читать. При получении сервер открывает эту информацию первым делом и берёт ровно то, что в ней перечислено.

В этом потоке информация поступала с ошибкой — именно в SRT. Звуковая дорожка видна, видеодорожка нет. Видеоданные физически шли по сети — все 4.7 мегабита, каждый кадр — но в метаданных о них не было ни слова. Сервер честно читал то, что ему сообщили и показывал аудио, которое можно совершенно нормально послушать.

Проблему ещё изучаю, но судя по всему она не в сети и не в узле (хотя казалось бы), а в энкодере на стороне отправителя: при работе по протоколу SRT появлялась несогласованность sender/receiver.


Переключились на RTMP — и видео пришло вместе с аудио сразу, с первого кадра.

Следующие два часа: четыре гигабайта принятых данных и всего восемь потерянных пакетов — хорошая цифра для прямого эфира.


Есть класс ошибок, которые тестом на стенде не поймать принципиально — в тестовой среде всегда правильное оборудование с правильными настройками. Live, как и прод — другой: там другое устройство, тут другая конфигурация, детали о которой ты ничего не знал до момента подключения, и всё — начинается новый этап, сидим, изучаем.

Именно для этого сервис должен выйти в боевой контур раньше, чем придёт первый платный клиент — пока ещё есть время спокойно разобраться.

→ Данные без правильных метаданных невидимы для приёмника — как бы много их ни шло по сети (а получалось ведь почти 5 мбит/с) → Одно и то же оборудование может вести себя по-разному в зависимости от протокола передачи, и это проверяется только живым тестом → Первый реальный запуск всегда находит то, что синтетический тест пропускает

Поехали.

Читать по теме