Качество звука

agoodminute

New Member
Добрый день. Стрим значительно ухудшает качество звука.
На обс плеере запустил стрим, установил в фон только мп3 трек. На выходе, в стриме, качество музыки сильно падает, будто слушаешь из плохих колонок.
Пробовал изменять настройки плеера, не помогло. Как можно улучшить качество звука?
 

Max

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

Уточните, пожалуйста,
- с какой версией WCS проверяете
- как играете поток (медиа провайдер - WebRTC, RTMP или другой; браузер, устройство)
- настройки в OBS
- воспроизводится ли с другим источником звука (не этим файлом)
- качество канала, есть ли потери (rest-api/stream/metrics для проверки метрик потока - AUDIO_LOST)
 

agoodminute

New Member
с какой версией WCS проверяете
WCS - v.0.5.28.2753-5.2.570

как играете поток (медиа провайдер - WebRTC, RTMP или другой; браузер, устройство)
Поток публикую через OBS, настройки ниже в скринах. Стрим запускаю через Embed Player в Chrome 81.0.4044.92 (Официальная сборка), (64 бит).

настройки в OBS
upload_2020-4-16_9-41-18.png

upload_2020-4-16_9-41-50.png

upload_2020-4-16_9-42-15.png

upload_2020-4-16_9-43-0.png


воспроизводится ли с другим источником звука (не этим файлом)
Музыка - самый наглядный пример, если просто запустить стрим и разговаривать, то же самое, просто не так заметно. С другими воспроизводиться.

качество канала, есть ли потери (rest-api/stream/metrics для проверки метрик потока - AUDIO_LOST)
upload_2020-4-16_9-39-37.png
 

Max

Administrator
Staff member
Добрый день.
Ваш поток содержит B-фреймы, которые ни один десктопный браузер по WebRTC не умеет играть нормально. При стриминге экрана (судя по битрейту потока в приведенном скриншоте), это не так заметно по изображению, но на динамичной картинке будут подергивания и микрофризы. В связи с этим рекомендуем понизить preset в OBS до ultrafast и profile до baseline. Установка битрейта публикации в 6000 кбит/с также в этом случае не имеет особого смысла.
Что касается звука, поместите в каталог на сервере /usr/local/FlashphonerWebCallServer/conf файл flash_handler_publish.sdp со следующим содержимым
Code:
v=0
o=- 1988962254 1988962254 IN IP4 0.0.0.0
c=IN IP4 0.0.0.0
t=0 0
a=sdplang:en
m=video 0 RTP/AVP 119
a=rtpmap:119 H264/90000
a=fmtp:119 profile-level-id=42e01f;packetization-mode=1
a=sendonly
m=audio 0 RTP/AVP 108 103
a=rtpmap:108 mpeg4-generic/48000/2
a=rtpmap:96 mpeg4-generic/8000/2
a=rtpmap:109 mpeg4-generic/11025/2
a=rtpmap:98 mpeg4-generic/12000/2
a=rtpmap:99 mpeg4-generic/16000/2
a=rtpmap:100 mpeg4-generic/22050/2
a=rtpmap:104 mpeg4-generic/24000/2
a=rtpmap:102 mpeg4-generic/32000/2
a=rtpmap:103 mpeg4-generic/44100/2
a=sendonly
и перезапустите сервер. В этом случае сервер будет предлагать OBS публиковать звук AAC 48 или 44.1 кГц, для проигрывания по WebRTC звук будет транскодироваться в Opus 48 кГц (по умолчанию, сервер запрашивает Speex 8 кГц, рассчитанный на передачу речи). Качество звука должно улучшиться.
 

agoodminute

New Member
Добрый день.
Ваш поток содержит B-фреймы, которые ни один десктопный браузер по WebRTC не умеет играть нормально. При стриминге экрана (судя по битрейту потока в приведенном скриншоте), это не так заметно по изображению, но на динамичной картинке будут подергивания и микрофризы. В связи с этим рекомендуем понизить preset в OBS до ultrafast и profile до baseline. Установка битрейта публикации в 6000 кбит/с также в этом случае не имеет особого смысла.
Что касается звука, поместите в каталог на сервере /usr/local/FlashphonerWebCallServer/conf файл flash_handler_publish.sdp со следующим содержимым
и перезапустите сервер. В этом случае сервер будет предлагать OBS публиковать звук AAC 48 или 44.1 кГц, для проигрывания по WebRTC звук будет транскодироваться в Opus 48 кГц (по умолчанию, сервер запрашивает Speex 8 кГц, рассчитанный на передачу речи). Качество звука должно улучшиться.
Файлик добавили. Но лучше не стало.

upload_2020-4-17_9-16-44.png


Также изменили настройки плеера
upload_2020-4-17_9-17-24.png


Но пропали потери
upload_2020-4-17_9-18-57.png
 

Max

Administrator
Staff member
Судя по размеру файла, в конце не хватает перевода строки. Проверьте, пожалуйста.
После этого соберите отладочные логи по этой инструкции и вышлите на support@flashphoner.com. Вы также можете предоставить нам SSH доступ к серверу для проверки.
 

agoodminute

New Member
Судя по размеру файла, в конце не хватает перевода строки. Проверьте, пожалуйста.
После этого соберите отладочные логи по этой инструкции и вышлите на support@flashphoner.com. Вы также можете предоставить нам SSH доступ к серверу для проверки.
Отправил все на почту
 

Max

Administrator
Staff member
Добрый день.
Мы воспроизвели проблему на Вашем сервере и создали тикет WCS-2640 для ее исследования. Качество музыки действительно снижается, хотя для передачи речи такого качества более чем достаточно, по сравнению с кодеками PCMA/PCMU/Speex звук значительно чище.
Если Ваш кейс предусматривает трансляцию музыки в хорошем качестве, попробуйте рассмотреть публикацию WebRTC+Opus потока, чтобы избежать транскодинга звука. Захват экрана из браузера описан здесь.
 

agoodminute

New Member
Добрый день.
Мы воспроизвели проблему на Вашем сервере и создали тикет WCS-2640 для ее исследования. Качество музыки действительно снижается, хотя для передачи речи такого качества более чем достаточно, по сравнению с кодеками PCMA/PCMU/Speex звук значительно чище.
Если Ваш кейс предусматривает трансляцию музыки в хорошем качестве, попробуйте рассмотреть публикацию WebRTC+Opus потока, чтобы избежать транскодинга звука. Захват экрана из браузера описан здесь.
Вообще, кейс предусматривает стрим с гопро, но поверх стрима должна ложиться музыка. Попробовал сделать через захват экрана, звук и вправду хороший, но прерывается, то есть нарастает до максимального и сразу падает до минимума. И так постоянно, интервал 1-2 секунды.
 

Max

Administrator
Staff member
Уточните, пожалуйста, как захватывался звук.
Попробуйте без захвата экрана, из примера Media Devices. Для захвата видео от GoPro можно как камеру для публикации использовать, например, XSplit Broadcaster.
 

agoodminute

New Member
Уточните, пожалуйста, как захватывался звук.
При публикации включал плеер на компьютере, ставил галочку на доступ к аудио и запускал.
1587537440089.png


Попробуйте без захвата экрана, из примера Media Devices.
Не понимаю как здесь захватить звук из компьютера. При активации FEC и Stereo звук улучшается, но не могу проверить на музыке
 

Max

Administrator
Staff member
Не понимаю как здесь захватить звук из компьютера. При активации FEC и Stereo звук улучшается, но не могу проверить на музыке
В примере Media Devices можно отдельно выбрать источник звука
1587543995762.png

и камеру для вещания
1587544024682.png

из устройств, предоставляемых браузеру системой.
Таким образом, можно захватить видео с GoPro и звук из файла при помощи ManyCam или XSplit и указать виртуальные микрофон и камеру как источники WebRTC-трансляции.
 

agoodminute

New Member
Начну с самого важного и интересного, нашел способ решения проблемы со звуком - нужно в iframe давать ссылку на плеер без сертификата. К примеру ссылка, возможно к моменту прочтения я уже не буду вещать музыку, так что измените &streamName=ВАШ_ПОТОК. Если в этой же ссылке выставить защищенное соединение https качество звука падает.
Были улучшения звука (по этому примеру), если выставить галочки над FEC и STEREO, добавил эти опции в код плеера:
1587642867704.png

но ничего не изменилось(
Проблема осталась, потому что iframe c ссылкой http... не будет работать на сайте https
 

Max

Administrator
Staff member
Добрый день.
Вы можете вернуться к идее публикации RTMP потока из OBS с добавлением звуковой дорожки.
Есть настройка для улучшения качества при транскодинге AAC в Opus. По умолчанию, кодировщик Opus кодирует звук с битрейтом 20 кбит/с. Чтобы кодировать звук с битрейтом, соответствующим настройкам OBS (160кбит/с), нужно установить следующий параметр в flashphoner.properties
Code:
opus.encoder.bitrate=160000
и перезапустить WCS
После этого качество звука при воспроизведении RTMP потока как WebRTC подходит для прослушивания музыки.
Обратите внимание, что настройка задается в бит/с. При желании, битрейт можно поднять и выше, чем битрейт вещания, но эффекта это уже не даст.
 
Top