Публикация WebRTC работает в Safari для Wowza SE, но воспроизведение не из-за высокого профиля - PullRequest
0 голосов
/ 03 ноября 2018

Публикация Safari WebRTC работает (поток получен на сервере Wowza SE и доступен для воспроизведения через RTMP или HLS / MPEG DASH после транскодирования), но не работает напрямую для воспроизведения WebRTC из Wowza SE. Потоки, опубликованные из Chrome, в порядке.

В настоящее время Safari поддерживает только публикацию H264.

Издатель JS сообщает правильно настроенный идентификатор уровня профиля 42e01f (Ограниченная базовая линия) в SDP:

a = fmtp: 96 разрешена асимметрия уровня = 1; режим пакетирования = 1; идентификатор уровня профиля = 42e01f

При воспроизведении JS сообщает неверный идентификатор уровня профиля в SDP:

a = fmtp: 97 режим пакетирования = 1; идентификатор уровня профиля = 64C029

И приводит к ошибке:

OperationError: Не удалось установить удаленное предложение sdp: Код ошибки сеанса: ERROR_CONTENT. Описание ошибки сеанса: не удалось установить параметры отправки описания удаленного видео ..

Поток RTSP, доступный на сервере, кажется, имеет высокий профиль при публикации в Safari:

h264 (High), yuv420p (прогрессивный), 640x480, 30 тбн, 90 тыс тбн, 180 тыс тбк

При публикации с использованием Chrome is Constrained Baseline:

h264 (ограниченная базовая линия), yuv420p (прогрессивный), 640x480, 30 тбн, 90 тыс тбн, 180 тыс т ч

Тот же код отлично работает при трансляции из Chrome:

a = fmtp: 125 допустимая асимметрия уровня = 1; режим пакетирования = 0; идентификатор уровня профиля = 42e01f

И Chrome Stream прекрасно работает во всех браузерах, в том числе в Safari:

a = fmtp: 97 допустимая асимметрия уровня = 1; режим пакетирования = 1; идентификатор уровня профиля = 42e01f

Проблема сохраняется в Wowza SE 4.7.7 (опубликованный Safari поток поставляется с высоким профилем):

m = видео 9 RTP / SAVPF 97 \ r \ na = rtpmap: 97 H264 / 90000 \ r \ na = fmtp: 97 режим пакетирования = 1; идентификатор уровня профиля = 64C029;

Эта проблема, по-видимому, связана с публикацией Safari потока H264 с профилем High 64C029 вместо Constrained Baseline 42e01f.

Решение доступно по адресу VideoNow.live (бесплатный сайт), если кто-то хочет провести глубокое тестирование, но журналов должно быть достаточно для предложений.

Вопрос: Есть ли что-то, что можно сделать в коде JS или в конфигурации Wowza SE для потока Safari WebRTC, чтобы опубликовать его как 42e01f и воспроизвести с использованием WebRTC напрямую (без транскодирования), подобно тому, как работают потоки Chrome?

...