Качество WebRTC в chrome 64

Здравствуйте,
Наблюдаем заметное снижение качества видео в WebRTC на 64-м chrome на Windows 10. В webrtc-internals видно, что через некоторое время chrome "проваливает" отправляемый битрейт, при том что в BWE вполне достаточно канала, и в попытке сохранить нужный FPS делает качество изображения очень низким, 20-30кбит. Происходит как с камерами, так и со screen capture, независимо от выставляемого в constraints битрейта.
На MacOS на 64-м хроме проблемы нет. И, например, на 58 хроме на том же ПК с Win 10 проблемы тоже нет.
Со стороны Flashphoner минимальный битрейт 260,000. Используем как streaming_threads так и monitoring, но принудительно с monitoring не проверяли.

Не сталкивались с подобным?
 
Last edited:

Max

Administrator
Staff member
Добрый день

В Chrome 64 обнаружили две проблемы. Обе с кодеком H.264.

1. Проблема с депакетизацией H.264 на стороне сервера при потерях.
Исправлена в сборке: 2865

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

1. Попробуйте обновиться до последней версии и проверить с ней.
Code:
service webcallserver update
2. Приложите графики chrome://webrtc-internals
 
Добрый день
В Chrome 64 обнаружили две проблемы. Обе с кодеком H.264.
h.264 и используем.
1. Проблема с депакетизацией H.264 на стороне сервера при потерях.
Исправлена в сборке: 2865
в monitoring так же исправлена?
1. Попробуйте обновиться до последней версии и проверить с ней.
Code:
service webcallserver update
Спасибо, обновились, попробуем
2. Приложите графики chrome://webrtc-internals
Хорошо, при повторении
 

Max

Administrator
Staff member
в monitoring так же исправлена?
Нет. Ожидает портирования фикса в wcs5_monitoring.
Отпишем, как будет портирован.
 

Max

Administrator
Staff member
Проблему удалось стабильно воспроизвести.

Воспроизводится стабильно на ноутбуках со встроенными видеокартами и с установленной Windows 10, Windows 8.1 и Chrome 64.
Не воспроизводится на десктопах и виртуалках с теми же Windows 10, Windows 8.1 и Chrome 64.

Временные решения:
1. Отключение аппаратного ускорения в браузере Google Chrome
или
2. Переключение сервера на кодек VP8
Code:
codecs=opus,alaw,ulaw,g729,speex16,g722,mpeg4-generic,telephone-event,vp8,h264,flv,mpv
или
3. Использование десктопа вместо ноутбука.

Пока не понятно как именно аппаратное ускорение H.264 влияет на битрейт, но в 100% тестов при его отключении битрейт становится нормальным и не падает.
 
В наших тестах при отключении аппаратного ускорения в Chrome проблема так же ушла. Я так понимаю, ждать решения надо от Chrome, а не от Flashphoner.
 

Max

Administrator
Staff member
Все указывает на то, что проблема в версии Chrome 64

Проблема НЕ воспроизводится если выполняется хотя бы одно из условий:
- Windows 7
- Mac OS
- Chrome 58
- Hardware acceleration disabled in Chrome
- Desktop PC
- VP8 codec

Кроме этого протестировали имплементацию apprtc
1. Если тестировать по-умолчанию (кодек VP9), то проблема не воспроизводится
https://appr.tc/r/069513616
Здесь 069513616 - произвольный номер комнаты
2. Если тестировать с кодеком H.264, то проблема точно также воспроизводится:
https://appr.tc/r/069513616?vrc=H264
Здесь 069513616 - произвольный номер комнаты
Для теста нужно открыть страницу на двух разных устройствах либо на одном устройстве в нормальном и инкогнито режимах браузера Google Chrome.

Получается на текущий момент, мы не можем найти реализацию H.264, которая не роняет битрейт. Очень похоже на баг в Chrome 64, Windows 8, 10 и аппаратном кодировании H.264 на чипсетах ноутбуков. Соответствующий багрепорт пока не искали.
 
Top