我正在尝试将gstreamer与gnuradio接口。 Gnuradio具有输入块,该块接收固定大小的有效载荷udp数据包https://www.gnuradio.org/doc/sphinx-3.7.0/blocks/networking_tools_blk.html中的数据。没有暗示协议:每个udp数据包都应包含相同数量的带符号的短裤(16位文件)。
显然,gstreamer可以使用udpsink
发送udp数据包。我尝试跑步
gst-launch-1.0 audiotestsrc wave=saw ! queue2 ! audioconvert ! audioresample ! audio/x-raw,rate=48000 ! udpsink host=127.0.0.1 port=1234
我挂断了Wireshark,发现数据包大小为2048个字节。我将其提供给GNUradio,一切正常。
但是,当我在gstreamer中尝试mp3源文件时:
gst-launch-1.0 filesrc location=/home/adamov/Kerensky_Interview_1964.mp3 ! mpegaudioparse ! mpg123audiodec ! queue ! audioconvert ! audioresample ! audio/x-raw,rate=48000 ! udpsink host=127.0.0.1 port=1234
结果完全乱码。我发现,wireshark的数据包大小在5016到5012字节之间变化。
有人知道如何在gstreamer中强制固定包大小吗?还有其他将原始数据发送到udp的方法吗?