Стрим аудио сигнала с ПК через сокет на сервер. На С++

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить
Аватара пользователя
stinger502
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Вт ноя 17, 2020 12:50:45

Стрим аудио сигнала с ПК через сокет на сервер. На С++

Сообщение stinger502 »

Подскажите пожалуйста, как реализовать стрим аудио либо с микрофона ПК, либо из WAV-файла через сокет на сервер. Пишу в С++ проект. Есть клиентский сокет и сервер. Через сокет на сервер удается переслать строку данных.
Требуется захватить аудио с микрофона ПК или из WAV-файла и также отправить через сокет на сервер. Как это сделать не могу понять. Подскажите пожалуйста.

клиентский сокет брал тут - https://docs.microsoft.com/en-us/window ... lient-code
сервер брал тут - https://docs.microsoft.com/en-us/window ... erver-code

Заранее спасибо.
Реклама
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: Стрим аудио сигнала с ПК через сокет на сервер. На С++

Сообщение Eddy_Em »

А что тут сложного-то? Вообще даже не нужно привлекать никаких С++. Все делается элементарно sox'ом через ssh.
Если же так хочется на сях или крестах делать, то просто открываем /dev/dsp, читаем оттуда и отправляем это в сокет.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Реклама
kolobok0
Грызет канифоль
Сообщения: 296
Зарегистрирован: Ср дек 30, 2009 09:55:39

Re: Стрим аудио сигнала с ПК через сокет на сервер. На С++

Сообщение kolobok0 »

Если совсем просто, без программирования то смотрим магические слова типо gstreamer или ffmpeg4.
делаем сначала консольный вариант. Если захотелось и дальше изобразить на си плас пласе - то переход там прост.
можно ничего не делать а глянуть в контейнерах на докерхабе нужный софт. выдать команду докеру и через несколько секунд наслаждаться...

векторов море, было бы желание
(круглый)
Аватара пользователя
stinger502
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Вт ноя 17, 2020 12:50:45

Re: Стрим аудио сигнала с ПК через сокет на сервер. На С++

Сообщение stinger502 »

Извиняюсь, дорогие форумчане! Не указал, что под виндой это пытаюсь сделать.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
stinger502
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Вт ноя 17, 2020 12:50:45

Re: Стрим аудио сигнала с ПК через сокет на сервер. На С++

Сообщение stinger502 »

подниму тему, не теряя надежду)))) возьму консультацию по своему вопросу, с разумной оплатой, в личку.
Реклама
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Стрим аудио сигнала с ПК через сокет на сервер. На С++

Сообщение Мурик »

Функцией waveInOpen открываете аудио устройство ввода и подготавливаете буферы.

Код: Выделить всё

If waveInOpen_(@ioswi,#WAVE_MAPPER+NumInDev-2,@ios,@iosInOutProc(),0,#CALLBACK_FUNCTION) = #MMSYSERR_NOERROR
        ; готовим буфeры 
      For i=0 To iosNBuf 
        iosbufIN(i)\lpData = InBuf(i)    
        iosbufIN(i)\dwBufferLength = iosBufSize 
        waveInPrepareHeader_(ioswi, @iosbufIN(i), SizeOf(WAVEHDR));подг.  блок 
        waveInAddBuffer_(ioswi,iosbufIN(i),SizeOf(WAVEHDR))      
      Next 
    Else 
      ProcedureReturn #iosERR 
    EndIf 
В CALLBACK функции принимаете данные

Код: Выделить всё

;процедура обновления буферов в режиме сквозного канала, в процессе выполняет внешнюю функцию 
Procedure iosInOutProc( hwi.l, uMsg.l, dwInstance.l, dwParam1.l, dwParam2.l) 
 If   iosProcessStart=1 
  If uMsg=#MM_WIM_DATA 
    For i=0 To iosNBuf 
      If (iosbufIN(i)\dwFlags & #WHDR_DONE) = #WHDR_DONE                    
       waveInAddBuffer_(ioswi, @iosbufIN(i), SizeOf(WAVEHDR));принять данные с микшера 
      EndIf    
    Next    
  EndIf 
 Else 
  iosProcessStart=-1 
 EndIf 
EndProcedure 
В буфере будут звуковые данные с микрофона. Отправляете их на сервер.
Реклама
roman.com
Друг Кота
Сообщения: 9157
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Стрим аудио сигнала с ПК через сокет на сервер. На С++

Сообщение roman.com »

Не знаю как на С++... знаю как на Java ))
:tea:
Ответить

Вернуться в «Интеграция с ПК»