Сжатие данных PCM
Я использую функции WinAPI - Wave для создания программы записи, которая записывает микрофон в течение X секунд. Я немного искал по сети, и обнаружил, что данные PCM слишком велики, и будет трудно отправить их через сокеты ...
Как я могу сжать его до чего-то меньшего? Любой простой / "дешевый" способ?
Я также заметил, что когда я объявляю формат с помощью функций Wave API, я использую этот код:
WAVEFORMATEX pFormat;
pFormat.wFormatTag= WAVE_FORMAT_PCM; // simple, uncompressed format
pFormat.nChannels=1; // 1=mono, 2=stereo
pFormat.nSamplesPerSec=sampleRate; // 44100
pFormat.nAvgBytesPerSec=sampleRate*2; // = nSamplesPerSec * n.Channels * wBitsPerSample/8
pFormat.nBlockAlign=2; // = n.Channels * wBitsPerSample/8
pFormat.wBitsPerSample=16; // 16 for high quality, 8 for telephone-grade
pFormat.cbSize=0;
Как вы видете,pFormat.wFormatTag= WAVE_FORMAT_PCM;
возможно я могу вставить вместоWAVE_FORMAT_PCM
что-то еще, так что это будет сжато сразу? Я проверил MSDN для других значений, хотя ни одно из них не работает для меня в моей Visual Studio ...
Так что я могу сделать?
Спасибо!