【问题标题】:Decode Opus-48 using Wireshark使用 Wireshark 解码 Opus-48
【发布时间】:2019-09-10 04:42:42
【问题描述】:

我想使用 Opus-48 编解码器捕获和解码 VoIP 对话。我正在使用 Wireshark 来捕获数据包。网上有免费的解码器吗?? Wireshark 不会保存双向对话,因为它适用于 G-729 等其他编码方案。

【问题讨论】:

    标签: wireshark opus


    【解决方案1】:

    你有两个选择。直接使用 libopus 库,或者将您的 RTP 数据包转换为 Ogg Opus 文件,然后使用任何支持 Opus 的播放器(Firefox、Chrome、VLC...)来播放 Ogg 文件。在所有情况下,您都应该从http://opus-codec.org/开始

    【讨论】:

    • 知道如何将 rtp 数据包转换为 ogg opus 文件。尝试使用 opus 工具,但它似乎没有工具。
    【解决方案2】:

    在此处使用 python 脚本解码 opus RTP pcap https://github.com/kamanashisroy/opus_stream_tool

    一旦我们有了 pcap,我们就可以在流中选择一个 UDP 数据包,然后通过udp.srcport/udp.dstportrtp.ssrc 将其过滤掉。

    现在,我们可以将 pcap 文件转换为 hex-dump。

    tshark -x -r in.pcap -Y "udp.srcport == myport" | cut -d " " -f 1-20 > tmp.txt
    

    终于可以使用hex_to_opus工具来记录ogg编码的opus文件了。

    hex_to_opus.py -x tmp.txt --recordfile out.opus --rtpoffset 42
    

    通常如果是 IPv4,rtp-offset 为 42。请从数据包的 wireshark 描述中找到 udp 有效负载的开始。

    【讨论】:

    • 效果很好!请注意hex_to_opus.py 假设 Opus 有效负载类型为 111,尽管 Opus 是动态 PT,如果您的会话使用另一个 PT 编号,您将无法读取它。幸运的是,有一个 --payloadtype 选项,您可以在其中指定会话的 PT(我见过的常见值是 107 和 120,但使用wireshark 很容易找到)。
    猜你喜欢
    • 2020-05-12
    • 2017-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2013-12-31
    • 2013-05-05
    相关资源
    最近更新 更多