Тормоза видео на HTTPS странице.

Max

Administrator
Staff member
Добрый день.
В одной websocket сессии можно играть несколько потоков. Посмотрите, пожалуйста, код примера 2Players. Пример входит в поставку WCS, можете его протестировать, например, на нашем demo сервере https://demo.flashphoner.com/client2/examples/demo/streaming/2players/2players.html
Uncaught (in promise) TypeError: Cannot set property 'muted' of null
Это сообщение говорит о том, что HTML5 video элемент, в котором должно проигрываться видео, не определен. Проверьте, воспроизводится ли проблема в примере 2Players. Если не воспроизводится, модифицируйте код примера таким образом. чтобы проблема воспроизводилась, и пришлите, используя эту форму.
 

alexosh

Member
Пример с 2-мя плеерами работает, код там простой, содается сессия, потом два поток, у нас все так же, пока не ясно, где у нас отличие в нашем случае и идет не так. Возможно что-то связанно с виртуальным DOM.

Вышеозвученная ошибка muted возникает, когда пытались вызвать stream.muteRemoteAudio в pending. Если без нее возникает такая ошибка:

> flashphoner.js?03e4:13277 Uncaught (in promise) DOMException: The play() request was interrupted by a new load request

Видимые симптомы пока следующие:

В двух разных DOM display элементах (которые передаются createStream) создаются видео с одинаковыми id. иногда у одного id есть постфикс `-REMOTE_CACHED_VIDEO`.

Такое ощущение что, затем, оба стрима пытаются работать с одним и тем же video элементом. Был даже кейс (он не повторялся), когда в одном из элементов стрим менялось изображение то одного, то другого стрима.

1. Есть идеи почему может происходить такое (прежде всего что создаются video элементы с одним и тем же id)? Можете ткнуть в SDK код, где эта логика производится.

2. Вообще есть смысл бороться за, то чтобы сессия была одна против сессии на каждый стрим?

3. Каким образом получить минимальную сборку (по размеру кода), если требуется проигрывание WebRTC и MSE (для http)? Пробовали кстати делать например `require("@flashphoner/websdk/flashphoner-no-flash.js") - получаем ошибку `None of preferred MediaProviders available`

`
 
Last edited:

Max

Administrator
Staff member
1. Есть идеи почему может происходить такое (прежде всего что создаются video элементы с одним и тем же id)? Можете ткнуть в SDK код, где эта логика производится.
Для того, чтобы появились идеи, необходимо воспроизведение. В примере 2Players проблема не воспроизводится. Следовательно, от Вас необходима минимальная модификация кода примера, при которой проблема начинает воспроизводиться. Минимальная - это значит не переписывая весь пример на React и не подключая сторонние библиотеки. Предоставьте такой код с помощью этой формы.
2. Вообще есть смысл бороться за, то чтобы сессия была одна против сессии на каждый стрим?
Большого смысла в этом нет. В некоторых случаях (для проигрывания по MSE, например) сессии должны быть разными для каждого стрима, т.к. трафик идет по Websocket
3. Каким образом получить минимальную сборку (по размеру кода), если требуется проигрывание WebRTC и MSE (для http)? Пробовали кстати делать например `require("@flashphoner/websdk/flashphoner-no-flash.js") - получаем ошибку `None of preferred MediaProviders available`
Вы можете использовать минифицированную сборку flashphoner-min.js. Также Вы можете собрать WebSDK из исходных текстов самостоятельно, как описано здесь.
 
Top