Не воспроизводится видеопоток в Safari

Auryny

New Member
Добрый день!

Устройство и браузер: Safari, последняя версия, Macbook.

Реализован интерфейс видеосвязи один на один.

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

Параллельно провели тестирование на аналогичной версии устройства и браузера — видео и звук воспроизводятся корректно. Также проверили настройки видео и звука в Safari — все в порядке. В других браузерах также все работает корректно.

Подскажите, пожалуйста, в чем может быть проблема?
 

Max

Administrator
Staff member
Добрый день.
Уточните, пожалуйста, следующее:
1. Какие сборки WCS, WebSDK используются, в какой версии iOS?
2. Воспроизводится ли проблема в стандартных примерах Two Way Streaming, Media Devices?
Если проблема воспроизводится в стандартных примерах, соберите отчет на стороне сервера, как описано здесь, добавьте лог, собранный в консоли браузера и отправьте, используя эту ссылку.
Если проблема не воспроизводится в стандартных примерах, подготовьте пример кода, основанный на примере Two Way Streaming, с минимальными изменениями, приводящими к воспроизведению проблемы, и отправьте, используя эту ссылку.
 

Auryny

New Member
Добрый день!

1. Сборка WCS, WebSDK самая последняя – 5.2. ОС — macOS Catalina, 10.15.4
2. Да, в тестовых примерах проблема воспроизводится. Лог с сайта отправила через ссылку.
 

Max

Administrator
Staff member
Уточните, пожалуйста, проблема с публикацией (браузер не запрашивает включение звука и видео ) или c воспроизведением потока, опубликованного другим пользователем.

Если с доступом к устройствам для публикации, то добавьте, пожалуйста, лог, собранный в консоли браузера.
В примере Media Devices показывает "Failed to get media devices"? C https://appr.tc/ тоже воспроизводится? В браузере в это время открыта только одна страница; пробовали перезапускать браузер / Macbook?
(Если публикующая сторона не отправляет медиа, то поток должен завершиться по RTP activity таймауту; в логах подобного нет.)

Если проблема только с воспроизведением, то какое устройство и браузер используются для публикации этого потока, и играет ли этот же поток в других браузерах?
 

Auryny

New Member
Браузер собеседника с проблемным браузером не запрашивает включение звука и видео. Соответственно, звук и видео этого пользователя не выводятся вообще.
  1. В примере Media Devices показывает "Failed to get media devices"
  2. В браузере открыта одна-две страницы, обе — одного проекта, на котором используется ваш сервис.
  3. В это время также не запущены никакие программы, использующие видеопоток, типа Zoom.
  4. Проблема на этом ноутбуке воспроизводится исключительно в Сафари, в Хроме при тех же вводных все корректно. Вводные по браузеру дала в первом сообщении.
Со стороны другого собеседника с корректно работающим браузером все воспроизводится корректно, его видео транслируется пользователю с проблемным браузером.

Какие меры предпринимали:

1. Перезапускали браузер и перезагружали ноутбук.
2. Меняли настройки браузера.

Какие данные могут потребоваться дополнительно для решения проблемы?
 

Max

Administrator
Staff member
https://appr.tc/ тоже не запрашивает доступ к камере и микрофону? По-видимому, c Safari может быть проблема с доступом к устройствам (здесь аналогичный вопрос).
 

Irina

New Member
Протестировали на проблемном браузере и устройстве https://appr.tc/ , звук и видео воспроизводятся корректно.

Скажите, пожалуйста, в чем может быть тогда проблема?
 

Max

Administrator
Staff member
Предоставьте постоянный (24/7) TeamViewer доступ к проблемному Macbook, а также доступ к веб-интерфейсу Вашего сервера для проверки. Доступы отправьте, используя эту ссылку
 

pride

Member
https://github.com/flashphoner/flashphoner_client/blob/wcs_api-2.0/src/flashphoner-core.js#L305
заменить на :
JavaScript:
var getDefaultMediaConstraints = function () {
    if (browserDetails.browser == "safari") {
        return {
            audio: true,
            video: {
                width: 640,
                height: 480
            }
        };
    }
    else {
        return {
            audio: true,
            video: {
                width: 320,
                height: 240
            }
        }
    }
};
И то же самое в https://github.com/flashphoner/flas...32189e0e3e/src/webrtc-media-provider.js#L1147
JavaScript:
if (browserDetails.browser == "safari") {
                if (!width || !height) {
                    constraints.video.width = {min: 320, max: 640};
                    constraints.video.height = {min: 240, max: 480};
                } else if (typeof width !== 'object' || typeof height !== 'object') {
                    constraints.video.width = {min: width, max: width};
                    constraints.video.height = {min: height, max: height};
                }
            }
Пысы: Сафари, ну вот не как не хочет применять min и max в высоте ширине, на этом и спотыкается.
 
Last edited:

pride

Member
Протестировали на проблемном браузере и устройстве https://appr.tc/ , звук и видео воспроизводятся корректно.

Скажите, пожалуйста, в чем может быть тогда проблема?
Протестировали на проблемном браузере и устройстве https://appr.tc/ , звук и видео воспроизводятся корректно.

Скажите, пожалуйста, в чем может быть тогда проблема?
А Вам могу посоветовать, (как временное решение) передать явно constraints и отключить "нормализацию"
JavaScript:
session.createStream({
        name: streamName,
        display: localVideo,
        cacheLocalResources: true,
        receiveVideo: false,
        receiveAudio: false,
        // Вот так
        constraints : {
            video : {
                width: 640,
                height: 320
            }
        },
        disableConstraintsNormalization : true
                 
    }
 
Last edited:

Max

Administrator
Staff member
Пысы: Сафари, ну вот не как не хочет применять min и max в высоте ширине, на этом и спотыкается.
Если править код SDK так, как Вы предлагаете, это починит десктопный Safari, но может сломать мобильный. Кроме того, проблема, которую описывает клиент в данной теме, воспроизводится редко и даже не на всех экземплярах оборудования (например, на MacBook Pro early 2015 с MacOS Catalina 10.15.4 не воспроизводится).
Для того, чтобы не твикать SDK под конкретный Mac, и существует возможность отключения нормализации, которая описана здесь.
 

Irina

New Member
Коллеги, я правильно поняла что нам необходимо отключить нормализацию?
Или все таки проблема решится только предоставлением доступа?
 

pride

Member
Коллеги, я правильно поняла что нам необходимо отключить нормализацию?
Или все таки проблема решится только предоставлением доступа?
И учесть что после этого вам самим нужно контролировать constraints
 

Max

Administrator
Staff member
Коллеги, я правильно поняла что нам необходимо отключить нормализацию?
Да. И контролировать width, height и frameRate ограничения в Вашем коде
А доступ запросили, поскольку лог консоли браузера не был предоставлен, эту проблему только там видно, браузер бросает OverConstrainedError.
 
Top