2014-03-07 54 views
0
_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)); 

我可以通過這個代碼播放任何文件,但我需要保存當前正在播放的文件到硬盤驅動器。 我找不到一個可以讓我這樣做的例子。有一個音頻接收器和視頻接收器的變種,但我不知道如何統一它們。很高興看到一個能夠實施的示例。如何使用gstreamer保存當前文件?

+0

如果您想要保存MP3(僅音頻)或視頻,如果播放的文件是容器,請在OP中添加。 – user2618142

+0

我想保留任何音頻/視頻 – Suedeman

回答

0

您可能正在尋找filesink元素。

g_object_set(G_OBJECT(_your_filesink_element), "location", "/home/yourlocation/file3.mp3", NULL); 

這意味着直接與源4連接它適當地保存它通過單獨pipeline或也許使用queue

+0

我嘗試使用它,但我不知道如何將filesink連接到管道。你有一個簡單的例子嗎? – Suedeman