Gstreamer udp源pcm播放
我有这些gst启动参数可以满足我的要求:Gstreamer udp源pcm播放,gstreamer,Gstreamer,我有这些gst启动参数可以满足我的要求: gst-launch-1.0.exe udpsrc port=22122 ! audio/x-raw,format=S16LE,rate=16000,channels=1 ! autoaudiosink 但是,我无法将其转换为代码。我正在尝试以下方法: GstElement *pipeline = gst_pipeline_new("audio-player"); GstBus *bus = gst_pipeline_get_bus(GST_PIPE
gst-launch-1.0.exe udpsrc port=22122 ! audio/x-raw,format=S16LE,rate=16000,channels=1 ! autoaudiosink
但是,我无法将其转换为代码。我正在尝试以下方法:
GstElement *pipeline = gst_pipeline_new("audio-player");
GstBus *bus = gst_pipeline_get_bus(GST_PIPELINE(pipeline));
guint bus_watch_id = gst_bus_add_watch(bus, bus_call, m_gstMainLoop);
gst_object_unref(bus);
GstElement *source = gst_element_factory_make("udpsrc", "udpsrc0");
GstElement *sink = gst_element_factory_make("autoaudiosink", "autoaudiosink0");
g_object_set(G_OBJECT(source), "port", 7200, "buffer-size", 1000000, NULL);
gst_bin_add_many(GST_BIN(pipeline), source, sink, NULL);
GstCaps *caps = gst_caps_new_simple("audio/x-raw",
"format", G_TYPE_STRING, "S16LE",
"layout", G_TYPE_STRING, "INTERLEAVED",
"rate", G_TYPE_INT, 16000,
"channels", G_TYPE_INT, 1,
NULL);
gst_element_link_filtered(source, sink, caps);
gst_caps_unref(caps);
gst_element_set_state(pipeline, GST_STATE_PLAYING);
g_main_loop_run(m_gstMainLoop);
在点图中,它们看起来几乎一样,但并不完全一样,尽管我不知道我遗漏了什么。不知道为什么,但如果我遗漏了交错(如果输入,应该是小写),并且我也遗漏了输入错误的端口号(doh!)至少你发现了这一点:你可以考虑关闭这个问题,因为它对其他任何人都没有帮助。但这是供你考虑的-也许只是关于交错的那部分是有帮助的..也许是个好主意,但我不知道如何结束这个问题。只是将此标记为答案。可能有关Interleave的信息可用于某人。。但在任何情况下,您都可以通过单击问题文本下方的浅灰色“close”(关闭)来关闭问题,蓝色标记“gstreamer”正下方。。在选项“共享”和“编辑”旁边。。