Ich habe in den nächsten Hauptelementen erstellt und ich versuche, sie zu verbinden, um Video zu spielen, aber das Ergebnis von gst_element_link_many ist immer falsch.Ich kann nicht Elemente aus GStreamer-Bibliothek mit Funktion verknüpfen gst_element_link_many
GstElement *pipeline, *videosrc, *videoenc, *muxer, *sink;
pipeline = gst_pipeline_new ("video-player");
videosrc = gst_element_factory_make ("filesrc", "videosrc");
muxer = gst_element_factory_make ("qtdemux", "mux");
videoenc = gst_element_factory_make ("avdec_mpeg4", "videoenc");
sink = gst_element_factory_make ("autovideosink", "sink");
g_object_set (G_OBJECT (videosrc), "location", argv[1], NULL);
gst_bin_add_many (GST_BIN (pipeline), videosrc, muxer, videoenc, sink, NULL);
/* link the elements together */
int resLinkMany = gst_element_link_many (videosrc, muxer, videoenc, sink, NULL);
printf(" resLinkMany = %d \n", resLinkMany); //I get 0
Im Allgemeinen versuche ich, Video zu starten, aber es funktionierte nicht wegen falscher Verknüpfung. Hier ist der vollständige Code meines Programms: https://pastebin.com/BER1BZDU
Verwenden Sie die Umgebungsvariable GST_DEBUG, um die Fehler anzuzeigen. Probieren Sie auch den Befehl mit gst-launch. – Velkan