Проблема с просмотром в Opera

pride

Member
WebSDK: v. 0.5.28.2747
WCS : 5.1.3680-72ec64fc2bcf579deafa9b7cd900dc6297f6fcad
OS: Windows 10 x64
Browser: Opera 57.0.3098.102

Проблема с воспроизведением WEBRTC. Просто черный квадрат.

Научным тыком выяснил что не срабатывает:
Code:
connection.ontrack = function (event) {
if (remoteVideo) {
remoteVideo.srcObject = event.streams[0];
remoteVideo.onloadedmetadata = function (e) {
// НЕ СРАБАТЫВАЕТ!!!!
if (remoteVideo) {
remoteVideo.play();}
};
}
};
Если заменить:
Code:
remoteVideo.srcObject = event.streams[0];
на
Code:
 remoteVideo.src = 'URL TEST VIDEO';
то сработает onloadedmetadata и тестовое видео начинает играть, делаю выводы что проблема в event.streams[0]; (Но данный объект существует и треки с флагами "live")
 
Last edited:

Max

Administrator
Staff member
Добрый день.
Скажите, какой именно пример Вы модифицировали, чтобы мы могли воспроизвести это у себя?
Примеры из коробки в Opera указанной версии работают.
Также попробуйте обновить WebSDK до последней версии с этой страницы, возможно, проблема не воспроизведется.
 

pride

Member
Если этот поток посмотреть в другом браузере, он работает отлично
 

Max

Administrator
Staff member
По крайней мере, в конфигурации Windows 10 Pro build 1809 + Opera 57.0.3098.102 данная проблема в наших тестах с демо-сервером не воспроизводится. Возможно, попросим у Вас круглосуточный TeamViewer доступ к машине, на которой возникает данная проблема.
Вы проводили данный тест с другого ПК, воспроизводится ли проблема там?
 

Max

Administrator
Staff member
Ранее были зафиксированы проблемы с воспроизведением H264 в Opera. В Chrome разработчики работу с этим кодеком поправили в последних версиях, насчет Opera нам об этом неизвестно.
Попробуйте на своем сервере включить VP8 (на нашем демо-сервере по умолчанию также включен H264):
Code:
codecs                   =opus,alaw,ulaw,g729,speex16,g722,mpeg4-generic,telephone-event,vp8,h264,flv,mpv
Воспроизводится ли проблема с VP8?
 

pride

Member
Ранее были зафиксированы проблемы с воспроизведением H264 в Opera. В Chrome разработчики работу с этим кодеком поправили в последних версиях, насчет Opera нам об этом неизвестно.
Попробуйте на своем сервере включить VP8 (на нашем демо-сервере по умолчанию также включен H264):
Code:
codecs                   =opus,alaw,ulaw,g729,speex16,g722,mpeg4-generic,telephone-event,vp8,h264,flv,mpv
Воспроизводится ли проблема с VP8?
Проблема не воспроизводиться с VP8.
 

pride

Member
По крайней мере, в конфигурации Windows 10 Pro build 1809 + Opera 57.0.3098.102 данная проблема в наших тестах с демо-сервером не воспроизводится. Возможно, попросим у Вас круглосуточный TeamViewer доступ к машине, на которой возникает данная проблема.
Вы проводили данный тест с другого ПК, воспроизводится ли проблема там?
Проблема воспроизводиться не везде.

Воспроизводиться:
Windows 10 Ultimate x64 build: 17763.55 (Opera: 57.0.3098.102)
Windows 7 (Base) x64 build: 7601 (Opera: 57.0.3098.106)
Windows 7 (Ultimate) x64 build: 7601 (Opera: 56.0.3051.116 / Opera: 57.0.3098.106)

Не воспроизводиться:
Windiws Vista (Ultimate) x64 build: 6002 (Opera 36.0)
Windows 10 (Home) x64 17763.194 (Opera: 57.0.3098.102)
 

Max

Administrator
Staff member
Добрый день.
Проблема не воспроизводиться с VP8
Проблема воспроизводиться не везде
В таком случае, вероятнее всего, проблема в поддержке аппаратного ускорения в Opera. Попробуйте отключить аппаратное ускорение в Opera при использовании кодека H264 на проблемных конфигурациях.
С наступающим Новым годом!
 

Max

Administrator
Staff member
Добрый день.
Мы протестировали Opera на предмет поддержки H264. В двух словах: поддержка зависит от сочетания версии Opera и используемой ОС. На Windows и MacOS, согласно технической поддержке Opera (https://forums.opera.com/topic/27375/opera-54-0-2952-41-streaming-videos-don-t-work-anymore/46#), браузер использует для декодирования H264 библиотеки, предоставляемые системой, на Linux - библиотеки из поставки Chromium.
Наиболее универсальное решение для большого количества клиентов с альтернативными Chromium-based браузерами (Opera, Yandex) - использовать кодек VP8:
разрешить поддержку vp8 на стороне сервера
Code:
codecs=opus,...,h264,vp8,...
исключить H264 для воспроизведения на стороне клиента (это можно делать в зависимости от браузера)
Code:
playStream = session.createStream({
     ...
     stripCodecs: "h264,H264"
}).on(STREAM_STATUS.PENDING, function (playStream) {
     ...
});
playStream.play();
Необходимо отметить, что при трансляции H264 потока и воспроизведении его как VP8 на сервере включается транскодинг.
 
Top