Публикация 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?