LINUX.ORG.RU

История изменений

Исправление zaz, (текущая версия) :

Спасибо, Вас тоже!

С какой целью кодеки нужны ? (перекодировать сигнал на лету, или просто конвертировать скажем из/в WAV/MP3).

Если нужно все делать на лету то берите библиотеку с нужным декодером / енкодером (нужно искать), настраиваете кодек в соотвецтвии с параматрами из SDP (частота, к-во каналов) далее просто передаете пайлоад из каждого RTP пакета в кодек получаетте на выходе PCM (который в теории можно отдовать в на вход звуковой карте) - после может понадобится сделать ресамплинг полученого PCM (сменить ему частоту дискритизации и/или разбить на фреймы другой длительности) - когда PCM соотвецтвует требованиям энкодера отдаете его на вход энкодера на выходе получаете сжатые данные к ним добовляете RTP заголовок и отправляете абоненту.

Если нужно конвертировать оффлайн - то проще взять каую нибудь командлайн утелиту которая сможет переконвертировать сохраненный пайлоад. Например

ffmpeg -i dump.g722 -acodec libmp3lame -ab 64 -f mp3 out.mp3
сконвертирует сохраненный пайлоад (g722 кодек) в mp3 файл

Исходная версия zaz, :

Спасибо, Вас тоже!

С какой целью кодеки нужны ? (перекодировать сигнал на лету, или просто конвертировать скажем из/в WAV/MP3).

Если нужно все делать на лету то берите библиотеку с нужным декодером / енкодером (нужно искать), настраиваете кодек в соотвецтвии с параматрами из SDP (частота, к-во каналов) далее просто передаете пайлоад из каждого RTP пакета в кодек получаетте на выходе PCM (который в теории можно отдовать в на вход звуковой карте) - после может понадобится сделать ресамплинг полученого PCM (сменить ему частоту дискритизации и/или разбить на фреймы другой длительности) - когда PCM соотвецтвует требованиям энкодера отдаете его на вход энкодера на выходе получаете сжатые данные к ним добовляете RTP заголовок и отправляете абоненту.