Hello,
I'm rather new to GSTreamer. I want to JPEG encode an RGB video stream and send it to the network e.g. with the command: # gst-launch-1.0 -v videotestsrc \ ! video/x-raw,format=RGB,width=640,height=480,framerate=30/1 \ ! vaapijpegenc quality=90 \ ! rtpjpegpay ! udpsink host=192.168.0.254 port=5678 Setting pipeline to PAUSED ... Pipeline is PREROLLING ... Got context from element 'vaapiencodejpeg0': gst.vaapi.Display=context, gst.vaapi.Display=(GstVaapiDisplay)"\(GstVaapiDisplayDRM\)\ vaapidisplaydrm1"; ERROR: from element /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0: Internal data stream error. Additional debug info: gstbasesrc.c(2939): gst_base_src_loop (): /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0: streaming stopped, reason not-negotiated (-4) ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... Freeing pipeline ... This command works fine with the "NV12" format but fails with "RGB". Also "jpegenc" does not like it. Obviously, I missed something!? Any help is appreciated. Thanks, Wolfgang. _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Le lundi 28 mai 2018 à 17:24 +0200, Wolfgang Grandegger a écrit :
> Hello, > > I'm rather new to GSTreamer. I want to JPEG encode an RGB video stream > and send it to the network e.g. with the command: > > # gst-launch-1.0 -v videotestsrc \ > ! video/x-raw,format=RGB,width=640,height=480,framerate=30/1 \ > ! vaapijpegenc quality=90 \ > ! rtpjpegpay ! udpsink host=192.168.0.254 port=5678 > Setting pipeline to PAUSED ... > Pipeline is PREROLLING ... > Got context from element 'vaapiencodejpeg0': gst.vaapi.Display=context, gst.vaapi.Display=(GstVaapiDisplay)"\(GstVaapiDisplayDRM\)\ vaapidisplaydrm1"; > ERROR: from element /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0: Internal data stream error. > Additional debug info: > gstbasesrc.c(2939): gst_base_src_loop (): /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0: > streaming stopped, reason not-negotiated (-4) > ERROR: pipeline doesn't want to preroll. > Setting pipeline to NULL ... > Freeing pipeline ... > > This command works fine with the "NV12" format but fails with "RGB". > Also "jpegenc" does not like it. Obviously, I missed something!? You'll need to add color conversion. With VAAPI, you can use vaapipostproc, with jpegenc, videoconvert. The second will work for both, but vaapipostproc uses the GPU. > > Any help is appreciated. > > Thanks, > > Wolfgang. > _______________________________________________ > 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 |
Le lundi 28 mai 2018 à 18:42 +0200, Wolfgang Grandegger a écrit :
> Hello, > > Am 28.05.2018 um 18:03 schrieb Nicolas Dufresne: > > Le lundi 28 mai 2018 à 17:24 +0200, Wolfgang Grandegger a écrit : > > > Hello, > > > > > > I'm rather new to GSTreamer. I want to JPEG encode an RGB video > > > stream > > > and send it to the network e.g. with the command: > > > > > > # gst-launch-1.0 -v videotestsrc \ > > > ! video/x-raw,format=RGB,width=640,height=480,framerate=30/1 > > > \ > > > ! vaapijpegenc quality=90 \ > > > ! rtpjpegpay ! udpsink host=192.168.0.254 port=5678 > > > Setting pipeline to PAUSED ... > > > Pipeline is PREROLLING ... > > > Got context from element 'vaapiencodejpeg0': > > > gst.vaapi.Display=context, > > > gst.vaapi.Display=(GstVaapiDisplay)"\(GstVaapiDisplayDRM\)\ > > > vaapidisplaydrm1"; > > > ERROR: from element > > > /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0: Internal > > > data stream error. > > > Additional debug info: > > > gstbasesrc.c(2939): gst_base_src_loop (): > > > /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0: > > > streaming stopped, reason not-negotiated (-4) > > > ERROR: pipeline doesn't want to preroll. > > > Setting pipeline to NULL ... > > > Freeing pipeline ... > > > > > > This command works fine with the "NV12" format but fails with > > > "RGB". > > > Also "jpegenc" does not like it. Obviously, I missed something!? > > > > You'll need to add color conversion. With VAAPI, you can use > > vaapipostproc, with jpegenc, videoconvert. The second will work for > > both, but vaapipostproc uses the GPU. > > OK, the following works: > > # gst-launch-1.0 -v videotestsrc \ > ! video/x-raw,format=RGB,width=640,height=480,framerate=30/1 \ > ! videoconvert ! vaapijpegenc quality=90 \ > ! rtpjpegpay ! udpsink host=192.168.0.254 port=5678 > > Also for "jpegenc". But the command using "vaapipostproc" fails: > > # gst-launch-1.0 -v videotestsrc \ > ! video/x-raw,format=RGB,width=640,height=480,framerate=30/1 \ > ! vaapipostproc ! vaapijpegenc quality=90 \ > ! rtpjpegpay ! udpsink host=192.168.0.254 port=5678 > Setting pipeline to PAUSED ... > Pipeline is PREROLLING ... > Got context from element 'vaapiencodejpeg0': > gst.vaapi.Display=context, > gst.vaapi.Display=(GstVaapiDisplay)"\(GstVaapiDisplayDRM\)\ > vaapidisplaydrm1"; > ERROR: from element > /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0: Internal data > stream error. > Additional debug info: > gstbasesrc.c(2939): gst_base_src_loop (): > /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0: > streaming stopped, reason not-negotiated (-4) > ERROR: pipeline doesn't want to preroll. > Setting pipeline to NULL ... > Freeing pipeline ... > > But it work if I use "RGBx" format with little CPU usage :). What > confuses me, is that "gst-inspect" tells me, that the sink of > "vaapipostproc" also supports "RGB". In case of HW driven element, the template caps will contain a super set. The supported formats are then discovered at run-time. 24bit packed RGB is not supported on my PC here. > > Thanks, > > Wolfgang. _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |