Я хочу захватить и декодировать разговор VoIP с помощью кодеков Opus-48. Я использую Wireshark для захвата пакетов. Есть ли в сети бесплатные декодеры?? Wireshark не сохраняет двусторонний разговор, поскольку он работает для других схем кодирования, таких как G-729.
Расшифровать Opus-48 с помощью Wireshark
Ответы (2)
У вас есть два варианта. Либо используйте библиотеку libopus напрямую, либо преобразуйте свои RTP-пакеты в файлы Ogg Opus, а затем используйте любой проигрыватель, поддерживающий Opus (Firefox, Chrome, VLC, ...), для воспроизведения файла Ogg. Во всех случаях следует начинать с http://opus-codec.org/.
Расшифруйте opus RTP pcap с помощью скрипта Python здесь https://github.com/kamanashisroy/opus_stream_tool
Получив pcap, мы можем выбрать UDP-пакет в потоке и отфильтровать его либо по udp.srcport
/udp.dstport
, либо по rtp.ssrc
.
Теперь мы можем преобразовать файл pcap в шестнадцатеричный дамп.
tshark -x -r in.pcap -Y "udp.srcport == myport" | cut -d " " -f 1-20 > tmp.txt
Наконец, мы можем использовать инструмент hex_to_opus для записи файла opus в кодировке ogg.
hex_to_opus.py -x tmp.txt --recordfile out.opus --rtpoffset 42
Обычно, если это IPv4, rtp-смещение равно 42. Найдите начало полезной нагрузки udp в описании пакета wireshark.