Я пытаюсь устранить некоторые проблемы с VOIP и собираю пакеты для вызовов. Однако все мои звонки закодированы в g722, и у меня возникли проблемы с расшифровкой.

Я извлек полезную нагрузку RTP, и в настоящее время он находится в виде необработанного файла. Единственная информация, которую я могу найти, это ссылка:

https://ask.wireshark.org/questions/26607/coverting-g722-payload-to-wav

Но я не могу понять, как получить g722 raw в пригодный для использования волновой файл. Любые точки в правильном направлении будут полезны.

3 ответа3

2

FFMPEG работает хорошо, но предложенные аргументы не работают. Я использовал:

ffmpeg  -f g722 -i input.raw -acodec pcm_s16le -ar 16000 output.wav

Параметры, применяемые к входным файлам, должны предшествовать имени файла, с помощью .wav в выходном файле определяет формат.

1

FFMPEG может сделать работу также

ffmpeg -i g722_input_file.raw -f g722 -acodec pcm_s16le -ar 16000 out.pcm
1

Согласно моему комментарию, SOX не поддерживает g722.

Я закончил тем, что создал свой собственный конвертер, используя внутреннюю поддержку кодеков в компании, в которой я работаю. По этой причине я не могу выпустить эту версию.

Затем я переписал его с помощью библиотеки открытого исходного кода NAudio.

Вы можете найти его здесь: https://github.com/shanepowell/G722Converter

Вы можете скачать скомпилированную версию здесь: https://github.com/shanepowell/G722Converter/releases/latest

Для запуска требуется .NET Framework v4.5 .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .