История изменений
Исправление zaz, (текущая версия) :
Спасибо, Вас тоже!
С какой целью кодеки нужны ? (перекодировать сигнал на лету, или просто конвертировать скажем из/в WAV/MP3).
Если нужно все делать на лету то берите библиотеку с нужным декодером / енкодером (нужно искать), настраиваете кодек в соотвецтвии с параматрами из SDP (частота, к-во каналов) далее просто передаете пайлоад из каждого RTP пакета в кодек получаетте на выходе PCM (который в теории можно отдовать в на вход звуковой карте) - после может понадобится сделать ресамплинг полученого PCM (сменить ему частоту дискритизации и/или разбить на фреймы другой длительности) - когда PCM соотвецтвует требованиям энкодера отдаете его на вход энкодера на выходе получаете сжатые данные к ним добовляете RTP заголовок и отправляете абоненту.
Если нужно конвертировать оффлайн - то проще взять каую нибудь командлайн утелиту которая сможет переконвертировать сохраненный пайлоад. Например
ffmpeg -i dump.g722 -acodec libmp3lame -ab 64 -f mp3 out.mp3
Исходная версия zaz, :
Спасибо, Вас тоже!
С какой целью кодеки нужны ? (перекодировать сигнал на лету, или просто конвертировать скажем из/в WAV/MP3).
Если нужно все делать на лету то берите библиотеку с нужным декодером / енкодером (нужно искать), настраиваете кодек в соотвецтвии с параматрами из SDP (частота, к-во каналов) далее просто передаете пайлоад из каждого RTP пакета в кодек получаетте на выходе PCM (который в теории можно отдовать в на вход звуковой карте) - после может понадобится сделать ресамплинг полученого PCM (сменить ему частоту дискритизации и/или разбить на фреймы другой длительности) - когда PCM соотвецтвует требованиям энкодера отдаете его на вход энкодера на выходе получаете сжатые данные к ним добовляете RTP заголовок и отправляете абоненту.