Подскажите пожалуйста, как реализовать стрим аудио либо с микрофона ПК, либо из WAV-файла через сокет на сервер. Пишу в С++ проект. Есть клиентский сокет и сервер. Через сокет на сервер удается переслать строку данных.
Требуется захватить аудио с микрофона ПК или из WAV-файла и также отправить через сокет на сервер. Как это сделать не могу понять. Подскажите пожалуйста.
клиентский сокет брал тут - https://docs.microsoft.com/en-us/window ... lient-code
сервер брал тут - https://docs.microsoft.com/en-us/window ... erver-code
Заранее спасибо.
Стрим аудио сигнала с ПК через сокет на сервер. На С++
- stinger502
- Первый раз сказал Мяу!
- Сообщения: 21
- Зарегистрирован: Вт ноя 17, 2020 12:50:45
- Реклама
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: Стрим аудио сигнала с ПК через сокет на сервер. На С++
А что тут сложного-то? Вообще даже не нужно привлекать никаких С++. Все делается элементарно sox'ом через ssh.
Если же так хочется на сях или крестах делать, то просто открываем /dev/dsp, читаем оттуда и отправляем это в сокет.
Если же так хочется на сях или крестах делать, то просто открываем /dev/dsp, читаем оттуда и отправляем это в сокет.
Re: Стрим аудио сигнала с ПК через сокет на сервер. На С++
Если совсем просто, без программирования то смотрим магические слова типо gstreamer или ffmpeg4.
делаем сначала консольный вариант. Если захотелось и дальше изобразить на си плас пласе - то переход там прост.
можно ничего не делать а глянуть в контейнерах на докерхабе нужный софт. выдать команду докеру и через несколько секунд наслаждаться...
векторов море, было бы желание
(круглый)
делаем сначала консольный вариант. Если захотелось и дальше изобразить на си плас пласе - то переход там прост.
можно ничего не делать а глянуть в контейнерах на докерхабе нужный софт. выдать команду докеру и через несколько секунд наслаждаться...
векторов море, было бы желание
(круглый)
- stinger502
- Первый раз сказал Мяу!
- Сообщения: 21
- Зарегистрирован: Вт ноя 17, 2020 12:50:45
Re: Стрим аудио сигнала с ПК через сокет на сервер. На С++
Извиняюсь, дорогие форумчане! Не указал, что под виндой это пытаюсь сделать.
- stinger502
- Первый раз сказал Мяу!
- Сообщения: 21
- Зарегистрирован: Вт ноя 17, 2020 12:50:45
Re: Стрим аудио сигнала с ПК через сокет на сервер. На С++
подниму тему, не теряя надежду)))) возьму консультацию по своему вопросу, с разумной оплатой, в личку.
- Реклама
Re: Стрим аудио сигнала с ПК через сокет на сервер. На С++
Функцией waveInOpen открываете аудио устройство ввода и подготавливаете буферы.В CALLBACK функции принимаете данные В буфере будут звуковые данные с микрофона. Отправляете их на сервер.
Код: Выделить всё
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 Код: Выделить всё
;процедура обновления буферов в режиме сквозного канала, в процессе выполняет внешнюю функцию
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 Re: Стрим аудио сигнала с ПК через сокет на сервер. На С++
Не знаю как на С++... знаю как на Java ))



