Gstreamer Mac OS X udpsink错误

时间:2010-11-04 08:44:00

标签: macos gstreamer

我正在尝试在Mac OS X中传输音频,但我一直收到此错误:

gst-launch osxaudiosrc ! audioresample ! audioconvert ! alawenc ! rtppcmapay ! udpsink port=10001 host=192.168.2.10

Setting pipeline to PAUSED …
ERROR: Pipeline doesn’t want to pause.
ERROR: from element /GstPipeline:pipeline0/GstUDPSink:udpsink0: Could not get/set settings from/on resource.
Additional debug info:
gstmultiudpsink.c(804): gst_multiudpsink_configure_client (): /GstPipeline:pipeline0/GstUDPSink:udpsink0:
Could not set TTL socket option (22): Invalid argument
Setting pipeline to NULL …
Freeing pipeline …

这适用于Windows将osxaudiosrc替换为autoaudiosrc,任何人都知道问题是什么?

感谢

3 个答案:

答案 0 :(得分:7)

您可能错过了 gst-ffmpeg 插件。我这样说是因为I'd encoutered a similiar problem

您可以使用Homebrew(首选)或MacPorts安装它。

Homebrew命令:brew install gst-ffmpeg

我还建议安装其他软件包。此命令将安装GStreamer及其所有软件包:brew install gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-ffmpeg

使用brew search gst搜索您可能需要的有关GStreamer的其他软件包。

祝你好运!

答案 1 :(得分:1)

udpsink / multiudpsink代码中存在与启用IPV6的系统和套接字创建相关的错误。

如果您使用C编写管道编码,可以通过手动创建要使用的套接字并将其用于接收器来绕过此功能。

my_sink = gst_element_make_from_uri(GST_URI_SINK, "udp://233.34.28.1:31337", NULL);
int my_tx_socket;
my_tx_socket = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP)
g_object_set(G_OBJECT(my_sink), “sockfd”, my_tx_socket, NULL);

如果你打算使用gst-launch使用它,我担心你必须通过multiudpsink.c编辑你的方式,直到你弄明白如何绕过它。

答案 2 :(得分:0)

此错误已在GStreamer-1.0中修复,因此安装(例如port install gstreamer1-gst-plugins-good)并运行 - 确保使用v1管道:

gst-launch-1.0 osxaudiosrc ! audioresample ! audioconvert ! alawenc ! rtppcmapay ! udpsink port=10001 host=192.168.2.10