This post was updated on .
Hello.
I am trying to form a pipeline in an android application I am making. At the moment, the pipeline is designed to simply take a jpeg image of a given tcpclientsrc connection I have. This is an example of the pipeline: "tcpclientsrc host=0.0.0.0 port=1000 num-buffers=1 ! jpegenc ! decodebin ! autovideosink sync=false ! filesink location=screenshot.jpeg" The address and port in this example are replaced, however when I run this pipeline. I get the following error: *gst/parse/grammar.y:774:gst_parse_perform_link could not link autovideosink to filesink* My understanding is I cannot convert the video feed into a file format like this? is there anything I can add to my pipeline in order to get this working when I eventually add a tee? -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list gstreamer-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi
Well you certainly need to get rid of that autovideosink for a start because it doesn't make sense to send a decoded JPEG image to a video sink. The video sink only has a sink pad as well so you can't connect anything else after that (likewise with the filesink). The decodebin shouldn't be there either because you've just encoded the jpeg image with jpegenc so why try to decode it after? Or did you want to display it as well as save it to disk? It might be easier for you play with this stuff on a host machine such as Windows or Linux to better understand things. The following pipeline will create a jpeg snapshot from a video test source which is easier to play with rather than the tcpclientsrc (for the sake of understanding). You can try the tcpclientsrc after to make the pipeline more complicated: gst-launch-1.0 videotestsrc num-buffers=1 ! jpegenc ! filesink location=screenshot.jpeg Gary ________________________________________ From: gstreamer-devel <[hidden email]> on behalf of DanteDom <[hidden email]> Sent: 24 October 2020 02:35 To: [hidden email] Subject: Could not link autovideosink to filesink Hello. I am trying to form a pipeline in an android application I am making. At the moment, the pipeline is designed to simply take a jpeg image of a given tcpclientsrc connection I have. This is an example of the pipeline: "tcpclientsrc host=0.0.0.0 port=1000 num-buffers=1 ! jpegenc ! decodebin ! autovideosink sync=false ! filesink location=screenshot.jpeg" The address and port in this example are replaced, however when I run this pipeline. I get the following error: *gst/parse/grammar.y:774:gst_parse_perform_link could not link autovideosink to filesink* My understanding is I cannot convert the video feed into a file format like this? is there anything I can add to my pipeline in order to get this working when I eventually add a tee? -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hey thanks for your help. I am very new so I appreciate the help.
Before asking for help I tried numerous different pipelines, one of which was what you suggested below. With my Tcpclientsrc and one with videotestsrc to see what would happen. I get an error when I utilized "videotestsrc num-buffers=1 ! jpegenc ! filesink location=screenshot.jpeg" "app_function Could not retrieve video sink" I should mention that am utilizing a modified version of a Gstreamer tutorial: It can be found here. <https://gstreamer.freedesktop.org/documentation/tutorials/android/video.html?gi-language=c> When I attempt to add autovideosink, The error I get is: "gst_parse_perform_link could not link autovideosink to filesink" I have tried so many different combinations and potential solutions that I am beginning to believe I need to modify the original code in some form further? -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
On 25/10/20 5:52 pm, DanteDom wrote: > Hey thanks for your help. I am very new so I appreciate the help. > > > Before asking for help I tried numerous different pipelines, one of which > was what you suggested below. With my Tcpclientsrc and one with videotestsrc > to see what would happen. > > > I get an error when I utilized "videotestsrc num-buffers=1 ! jpegenc ! > filesink location=screenshot.jpeg" > > "app_function Could not retrieve video sink" not have the video sink handling code that throws this error (or remove the video sink handling code from your existing code). Cheers -Matt > I should mention that am utilizing a modified version of a Gstreamer > tutorial: It can be found here. > <https://gstreamer.freedesktop.org/documentation/tutorials/android/video.html?gi-language=c> > > When I attempt to add autovideosink, The error I get is: > > "gst_parse_perform_link could not link autovideosink to filesink" > > I have tried so many different combinations and potential solutions that I > am beginning to believe I need to modify the original code in some form > further? _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel OpenPGP_signature (505 bytes) Download Attachment |
Hello again.
I took your advice. Removing the code responsible for video sink handling, and subsequently testing the pipeline with: videotestsrc num-buffers=1 ! jpegenc !filesink location=screenshot.jpeg". Did in fact produce a screenshot of the videotestsrc. I feel like I am very close to solving my problem and I thank both of you for letting me understand this all better. However one issue remains in my modification of that tutorial3.c file. I created a function to handle a pipeline for livevideo screenshots. Independent of the other pipeline which simply displays the videofeed. (I dabbled in tees & queues but I need these to function under specific circumstances). I based this function "snapshot_function". On this reference from GStreamer Here <https://github.com/GStreamer/gst-plugins-base/blob/master/tests/examples/snapshot/snapshot.c> . However I modified it a bit: The following is my includes for this file too: *However I get this error:* I do not understand this error? I have referenced everything correctly but this error remains. -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Ah, I have solved this error.
I had to implement pixbuf in my CMakeList, NDK. Referencing it as an external library. -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |