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

R2D2

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 клиента и запуска его на стороне сервера.
Добрый день.
Вопрос обострился. Задам его еще раз:
Браузер или мобильное приложение публикует WEB-RTC видеопоток в формате H.264 или VP8 + аудиопоток в формате PCMA . На стороне сервера нужно из этого стрима выдернуть только массив чистых аудио данных для дальнейшей обработки или прослушивания в формате PCMA (по сути это почти срезы амплитуды во во времени) - как это сделать?
 
Last edited:

Max

Administrator
Staff member
Добрый день,
Ответ тот же - использовать RTSP-клиента:
1. В каталог WCS_HOME/conf поместить файл rtsp_server.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
a=range:npt=now-
a=control:*
m=audio 0 RTP/AVP 8
a=rtpmap:8 PCMA/8000
a=control:audio
Это необходимо, чтобы сервер отдавал только аудио и только в PCMA кодеке
2. Реализовать RTSP-клиента, который:
2.1. Устанавливает RTSP соединение с сервером rtsp://wcs:554/streamName (или rtsp://localhost:554/streamName, если клиент работает на том же сервере)
2.2. Отправляет запросы DESCRIBE и SETUP
2.3. Отправляет PLAY и начинает получать RTP аудио поток в формате PCMA
3. Отлавливать событие публикации потока по REST hook /StreamStatusEvent, отслеживая статус PUBLISHING, и запускать RTSP-клиента для опубликованного потока
 

R2D2

Member
Добрый день,
Ответ тот же - использовать RTSP-клиента:
1. В каталог WCS_HOME/conf поместить файл rtsp_server.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
a=range:npt=now-
a=control:*
m=audio 0 RTP/AVP 8
a=rtpmap:8 PCMA/8000
a=control:audio
Это необходимо, чтобы сервер отдавал только аудио и только в PCMA кодеке
2. Реализовать RTSP-клиента, который:
2.1. Устанавливает RTSP соединение с сервером rtsp://wcs:554/streamName (или rtsp://localhost:554/streamName, если клиент работает на том же сервере)
2.2. Отправляет запросы DESCRIBE и SETUP
2.3. Отправляет PLAY и начинает получать RTP аудио поток в формате PCMA
3. Отлавливать событие публикации потока по REST hook /StreamStatusEvent, отслеживая статус PUBLISHING, и запускать RTSP-клиента для опубликованного потока
Пусть так. У нас серверная часть написана на java (c flashphoner взаимодействует через REST) она же и должна декодировать WEB-RTC в чистые аудиоданные. Посоветуйте как реализовать RTSP клиент на java для сервера(может какой исходник посоветуете)....
 
Last edited:

Max

Administrator
Staff member
Добрый день.
Мы создали внутренний тикет WCS-2491 по задаче извлечения чистых аудиоданных из потока на сервере. О результатах сообщим здесь.
 

Max

Administrator
Staff member
Добрый день.
Возможность извлечения чистого PCM аудио из потока на стороне сервера добавлена в сборке 5.2.795. Для этого необходимо реализовать Java class. Подробности здесь.
 
Top