我们有捕获的 pcap 文件,其中包括每个 rfc6716 的 RTP opus 有效负载,现在我们可以切断 RTP 标头并提取 opus 有效负载,我们希望按照规范将有效负载封装到 ogg opus https://datatracker.ietf.org/doc /html/draft-ietf-codec-oggopus-07 (Ogg Encapsulation for the Opus Audio Codec) 并发送出去,以便 VLC 可以播放捕获的 opus,我们不想保存到 ogg 文件然后让 VLC 播放,一旦封装了一个数据包,我们将直接将ogg opus发送到VLC,任何有封装参考实现的人,或者我可以参考的第3方库?
问问题
1941 次
2 回答
2
可以使用libpcap库读取数据包,然后使用libogg库将其封装在 Ogg 中。opusrtp
在opus-tools包中调用了一个示例程序,它可以使用 libpcap 在环回接口上嗅探 Opus RTP 数据包并将它们写入 Ogg。您可能想做类似的事情,但是如果您想从 pcap 保存文件中读取,并将 Ogg 页面从 libogg 写入套接字而不是文件,请将其更改pcap_open_live()
为类似的内容。pcap_open_offline()
还定义OPUS_PAYLOAD_TYPE
为您要查找的 RTP 有效负载类型。
于 2015-05-22T03:50:49.923 回答
0
我有类似的需求,按照这个答案的建议,我编写了一个集成opusrtp
,可以接收 pcap 文件作为输入,然后从中生成 .opus。
要点实际上是使用pcap_open_offline()
而不是pcap_open_live()
,设置正确的有效负载类型,以及一些其他细节以适应输入文件格式。
我在 github 的一个 fork 中有修改后的 opusrtp。
您可以将它与类似的东西一起使用
./opusrtp --extract PCAPFILE
它生成rtpdump.opus
,然后您可以根据需要对其进行转换。
于 2016-02-03T19:09:23.977 回答