Искажение звука PCMA

R2D2

Member
Как правильно обновить до 3487? команда update не помогает, говорит что у вас последняя версия 5.1.3375
 

Max

Administrator
Staff member
Как правильно обновить до 3487? команда update не помогает, говорит что у вас последняя версия 5.1.3375
Скачайте последнюю версию с этой страницы (с версии 5.1.3487 было довольно много различных фиксов) и просто установите ее поверх уже установленной.
При этом рекомендуется сохранить содержимое каталога WCS_HOME/client2/examples, если Вы использовали и как-то модифицировали примеры веб-приложений, т.к. они будут переписаны при обновлении. То же касается скрипта WCS_HOME/bin/on_record_hook.sh, если Вы его использовали.
После этого команда update будет работать, до последующих версий Вы сможете обновляться с ее помощью.
 

R2D2

Member
Скачайте последнюю версию с этой страницы (с версии 5.1.3487 было довольно много различных фиксов) и просто установите ее поверх уже установленной.
При этом рекомендуется сохранить содержимое каталога WCS_HOME/client2/examples, если Вы использовали и как-то модифицировали примеры веб-приложений, т.к. они будут переписаны при обновлении. То же касается скрипта WCS_HOME/bin/on_record_hook.sh, если Вы его использовали.
После этого команда update будет работать, до последующих версий Вы сможете обновляться с ее помощью.
Скачал версию 5.1.3578 поставил поверх 5.1.3375 (предварительно старую версию скопировал).после установки поверх в user/local образовался каталог FlashphonerWebCallServer-5.1.3578-bfebc60f5c58e24a4c19d17d8ed76e3deef1bf41.
Что за странное название каталога?
Причем админ-часть WCS работает, а наше приложение работающее с WCS перестало работать....что может быть???
в flashphoner_manager.log пишет:
09:30:29,279 INFO AuditListener - http-nio-8888-exec-9 AuditEvent [timestamp=Mon Oct 08 09:30:29 UTC 2018, principal=anonymousUser, type=AUTHORIZATION_FAILURE, data={type=org.springframework.security.access.AccessDeniedException, message=Access is denied}]
09:41:56,031 INFO StreamStatService - Timer-0 Started removing old stream stats
09:41:56,032 INFO StreamStatService - Timer-0 Stopped removing old stream stats
 

Max

Administrator
Staff member
Что за странное название каталога?
5.1 - мажорная версия, 3578 - номер сборки, bfebc60f5c58e24a4c19d17d8ed76e3deef1bf41 - хэш сборки. Каталог именуется в соответствии с полным номером версии WCS. Ссылка /usr/local/FlashphonerWebCallServer на каталог текущей установленной версии, для удобства, по-прежнему создается.
Причем админ-часть WCS работает, а наше приложение работающее с WCS перестало работать
Функциональность административного модуля постепенно отделяется от функциональности ядра сервера. В частности:
1. Изменились порты, используемые для доступа к REST API, с 9091/HTTP и 8888/HTTPS на 8081/HTTP и 8444/HTTPS соответственно
2. Интерфейс командной строки был разделен на CLI ядра и CLI административного модуля.
В Вашем случае, скорее всего, справедливо первое.
 

Max

Administrator
Staff member
Список изменений ведется на странице Release Notes. Кроме того, постоянно обновляются соответствующие разделы в онлайн-документации.
Если при обновлении что-то сломалось, и изменения не описывают возможную причину, присылайте логи, собранные по инструкции, на support@flashphoner.com, наши специалисты Вам помогут.
 

R2D2

Member
Вообще какая то ерунда после обновления.
Раньше в flashphoner_manager.log валилось вся информация от загрузки, до лога взаимодействия...
Сейчас единственно что в логе:
15:10:20,081 INFO AuditListener - http-nio-8888-exec-3 AuditEvent [timestamp=Tue Oct 09 15:10:20 UTC 2018, principal=anonymousUser, type=AUTHORIZATION_FAILURE, data={type=org.springframework.security.access.AccessDeniedException, message=Access is denied}]
Что это значит???
 

R2D2

Member
Действительно после обновления из списка App исчезла наше App. Пришлось добавлять заново.
Кроме того, обнаружилась следующий глюк которого раньше не было. При использование REST команд к нашему App текст с русским символами (в UTF-8) заменяются знаками вопроса. Английские символы доходят нормально. Просим Вас это поправить.
 

Max

Administrator
Staff member
текст с русским символами (в UTF-8) заменяются знаками вопроса
Мы воспроизвели проблему (внутренний инцидент WCS-1531) и сообщим, когда будут результаты.
Как вариант обхода, рекомендуем использовать URL encoding, например "тест" -> "%D1%82%D0%B5%D1%81%D1%82"
 
Last edited:

R2D2

Member
Еще вопрос: есть ли способ из видеопотока передаваемого через WEB-RTC выдрать только аудиопоток в PCMA(без сторонних библиотек, ресурсами WCS)? Если да, то как это сделать?
 

Max

Administrator
Staff member
есть ли способ из видеопотока передаваемого через WEB-RTC выдрать только аудиопоток в PCMA
Зависит от того, что Вы планируете с ним делать.
1. Если нужно проиграть клиенту только звук из трансляции, достаточно указать это в constraints (на примере веб-приложения Player):
Code:
function playStream(session) {
    var streamName = $('#streamName').val();
    var options = {
        name: streamName,
        display: remoteVideo,
        flashShowFullScreenButton: true,
       constraints: {video: false, audio: true}
    };
    ...
}
2. Если Вы хотите куда-либо републиковать поток, содержащий только звук из трансляции, можно создать микшер с параметрами
Code:
http://WCS:8081/rest-api/mixer/create
{
"uri": "mixer://mixer1","localStreamName": "stream3",
 "hasVideo": "false"
}
добавить туда входящий WebRTC-поток
Code:
http://WCS:8081/rest-api/mixer/add
{
  "uri": "mixer://mixer1",
 "remoteStreamName": "stream1"
}
при этом в выходном потоке микшера будет только звук, этот выходной поток можно ретранслировать или записать.
Отметим, что для микширования на сервере всегда включается транскодинг, даже если он отключен принудительно.
3. Наконец, если Вам нужен звук из трансляции для дальнейшего хранения и обработки, можно записать поток, а затем в скрипте постобработки выделить и сохранить звуковую дорожку при помощи ffmpeg (но это уже использование сторонних библиотек).
 

R2D2

Member
Наиболее близок ответ №2. Но вы меня не правильно поняли. Нас интересует получить не аудиопоток в формате PCMA обернутый в WEB-RTC без видео, а чистый поток аудиоданных в формате PCMA без обертки WEB-RTC. Это возможно???
 

Max

Administrator
Staff member
Чистый поток аудио данных PCMA - это ближе всего к RTP.
Чистый RTP у нас поддерживается только в двух протоколах: 1) RTSP 2) SIP
Т.е. получается два способа получения PCMA потока

1. RTSP
Браузер публикует аудио поток stream1 PCMA на WCS сервер по WebRTC.
Вы подключаетесь RTSP клиентом и забираете поток как rtsp://wcs-host:554/stream1
Указываете в SDP порт на который WCS будет отправлять RTP/UDP/PCMA трафик.

2. SIP
Браузер публикует аудио поток stream1 PCMA на WCS сервер по WebRTC.
Вы создаете SIP звонок с вашим PBX через REST.
Вы отправляете этот стрим в SIP звонок и далее на PBX путем REST запроса.

Первый вариант сильно проще, чем с SIP.
Но без дополнительной библиотеки (RTSP клиент) не обойтись.

Прямых способов снять или сдампить аудио трафик PCMA с сервера нет.
Есть вариант записать поток в AAC mp4 и далее транскодировать в PCMA.
 

R2D2

Member
У нас с мобильного приложения идет видео поток по WEB-RTC надо выделить из него аудио поток SIP(PCMA) в реальном масштабе времени
 

Max

Administrator
Staff member
На текущий момент, самый простой способ - подключиться по RTSP (способ 1).
Для этого нужно:
1. Установить RTSP соединение с с локалхост 554 по протоколу TCP/RTSP
2. Отправить DESCRIBE и SETUP запросы.
3. Начать получать UDP трафик со звуком (RTP PCMA в реалтайме).

Это должно работать как REST Hook.
1. Пользователь публикует WebRTC поток на сервер, например stream1
2. REST Hook срабатывает StreamStatusEvent PUBLISHING для потока stream1
3. На это событие запускаете RTSP клиента, который подключается к потоку и перехватывает WebRTC трафик как обычный RTP.

Т.е. задача сводится к написанию минимального RTSP клиента и запуска его на стороне сервера.
 

R2D2

Member
Когда будет поправлен баг (внутренний инцидент WCS-1531)?
 

Max

Administrator
Staff member
Когда будет поправлен баг (внутренний инцидент WCS-1531)?
К сожалению, точных сроков назвать не можем, поскольку есть более приоритетные задачи. В качестве временного решения рекомендуем использовать URL encoding в случае, если в имени потока используются не латинские символы.
 

R2D2

Member
Проблема не только в имени потока, а вообще все что проходит через WCS все теряет русскую кодировку(UTF-8), смайлы, сообщения и т.д....все заменяется знаками вопроса. Переделывать все через URL encoding, получается через одно место. Прошу исправить баг (WCS-1531), или хотя бы укажите ориентировочные сроки когда его исправите....
 

R2D2

Member
C багом (WCS-1531) можно не торопится, решил все через перекодирование
 
Top