iPad Pro 11, iPadOS 15.4.1 Safari часть трансляций - чёрный экран у определённых пользователей.

inpost

Member
Здравствуйте.
В нашей команде программисты и тестировщики проверили воспроизведение десяток видео-трансляций и они воспроизводятся на iPad.
При этом приходит в тех.поддержку жалоба с записью картинки с iPad Pro 11, где отчётливо видно, что при запуске трансляций происходит событие STREAM_STATUS.PLAYING, блок div съужается (так всегда происходит перед воспроизведением), и потом не расширяется до нужного размера и чёрный экран.

Трансляцию запускаю следующим образом:

Code:
    var tmp_constraints;

    if (Browser.isSafari()) {
        tmp_constraints = {
            audio: false,
            video: {
                width: {ideal: 640},
                height: {ideal: 480},
                minBitrate: 800,
                maxBitrate: 1200
            }
        }
    } else {
        tmp_constraints = {
            audio: false,
            video: {
                width: 640,
                height: 480,
                minBitrate: 800,
                maxBitrate: 1200
            }
        }
    }

    var streamOptions = {
        name: flashphonerStreamName,
        display: localVideo,
        cacheLocalResources: true,
        constraints: tmp_constraints,
        record: recordStream
    }

    if (Browser.isSafari()) {
        streamOptions.stripCodecs = "H264";
    }

    session.createStream(streamOptions).on(STREAM_STATUS.PUBLISHING, function(publishStream){
И воспроизведение:
Code:
    var options = {
        name: videoName,
        display: remoteVideo,
        flashShowFullScreenButton: true
    };

    if (resolution_for_wsplayer) {
        options.playWidth = resolution_for_wsplayer.playWidth;
        options.playHeight = resolution_for_wsplayer.playHeight;
    }
У меня возникает подозрение, что у клиента могут быть отключены VP8 или H264 кодеки в настройках самого iPad Safari, так как 1 из 10 трансляций у него заработал.

В целом, что может быть? Как подобное можно отслеживать? Как понять, почему у одних клиентов всё нормально, а у других - чёрный экран вместо воспроизведения картинки и какова причина?
 

Max

Administrator
Staff member
Добрый день.
У меня возникает подозрение, что у клиента могут быть отключены VP8 или H264 кодеки в настройках самого iPad Safari, так как 1 из 10 трансляций у него заработал.
Скорее всего, причина не в этом, а в том, что битрейт публикации
Code:
                minBitrate: 800,
                maxBitrate: 1200
слишком высок для того, чтобы гарантированно проходить в канал клиента. В таких случаях рекомендуем снижать битрейт публикации, либо транскодировать к меньшему битрейту по запросу клиента, если мощности сервера это позволяют
Code:
    var options = {
        name: videoName,
        display: remoteVideo,
        constraints: {
               bitrate: 500
        }
    };
Для определения качества канала есть механизм для сравнения битрейтов на стороне сервера и клиента: Контроль качества канала при публикации и воспроизведении.
Еще одна возможная причина непроключения потока у зрителя - нерегулярная отсылка ключевых фреймов публикующим клиентом. Для того, чтобы устранить эту причину, используйте настройку на сервере
Code:
periodic_fir_request=true
В этом случае сервер каждые 5 секунд (по умолчанию) запрашивает у публикующего клиента отсылку ключевого фрейма. Чем чаще ключевые фреймы идут в потоке, тем быстрее он отобразится у зрителя. Однако ключевые фреймы велики по размеру, и при слишком высокой частоте отправки могут забивать канал клиента, поэтому опускать интервал ниже 2 секунд не рекомендуется
Code:
periodic_fir_request_interval=2000
 
Top