C 如何使用gstreamer保存当前文件?

C 如何使用gstreamer保存当前文件?,c,media,gstreamer,C,Media,Gstreamer,我可以用这段代码播放任何文件,但我需要将当前正在播放的文件保存到我的硬盘上。 我找不到一个能让我这样做的例子。音频接收器和视频接收器有一个变体,但我不知道如何将它们结合起来。很高兴看到一个可以实现它的工作示例。您可能正在寻找元素 _loop = g_main_loop_new(NULL, FALSE); _pipeline = gst_element_factory_make("playbin", "player"); g_object_set(G_OBJECT(_pi

我可以用这段代码播放任何文件,但我需要将当前正在播放的文件保存到我的硬盘上。
我找不到一个能让我这样做的例子。音频接收器和视频接收器有一个变体,但我不知道如何将它们结合起来。很高兴看到一个可以实现它的工作示例。

您可能正在寻找元素

    _loop = g_main_loop_new(NULL, FALSE);
    _pipeline = gst_element_factory_make("playbin", "player");

    g_object_set(G_OBJECT(_pipeline), "uri", "localhost/exampleFile.mp3", NULL);

    _bus = gst_pipeline_get_bus(GST_PIPELINE(_pipeline));
    gst_bus_add_watch(_bus, busCall, NULL);
    gst_object_unref(_bus);

    gst_element_set_state(GST_ELEMENT(_pipeline), GST_STATE_PLAYING);

    g_main_loop_run(_loop);

    gst_element_set_state(GST_ELEMENT(_pipeline), GST_STATE_NULL);
    gst_object_unref(GST_OBJECT(_pipeline));

这意味着直接将其与source four链接,通过单独的
管道正确保存,或者使用
队列

如果您想保存mp3(仅音频),请添加OP如果播放的文件是容器,也可以是视频。我希望能够保存任何音频/视频。我尝试使用它,但我不知道如何将FileLink连接到管道。你有一个简单的例子吗?
g_object_set(G_OBJECT(_your_filesink_element), "location", "/home/yourlocation/file3.mp3", NULL);