Hej, I'm trying to launch the following pipeline on an IMX6 board to convert four png images to an mp4 movie using hardware accelerated encoding: GST_DEBUG="*:2" gst-launch-1.0 -v -e multifilesrc location="image%05d.png" index=0 stop-index=3 caps="image/png,width=960,height=540,framerate=1/1" ! pngdec ! queue ! videoconvert ! imxvpuenc_h264 ! h264parse ! mp4mux ! filesink location=images.mp4 I obtain the output: Setting pipeline to PAUSED ... Pipeline is PREROLLING ... 0:00:00.189972820 26707 0x12f0380 WARN basesrc gstbasesrc.c:2943:gst_base_src_loop:<multifilesrc0> error: Internal data flow error. 0:00:00.190759558 26707 0x12f0380 WARN basesrc gstbasesrc.c:2943:gst_base_src_loop:<multifilesrc0> error: streaming task paused, reason not-negotiated (-4) ERROR: from element /GstPipeline:pipeline0/GstMultiFileSrc:multifilesrc0: Internal data flow error. Additional debug info: /path/to/yocto_guf/build-imx6guf/tmp/work/cortexa9hf-vfp-neon-guf-linux-gnueabi/gstreamer1.0/1.6.0-r0/gstreamer-1.6.0/libs/gst/base/gstbasesrc.c(2943): gst_base_src_loop (): /GstPipeline:pipeline0/GstMultiFileSrc:multifilesrc0: streaming task paused, reason not-negotiated (-4) ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... Freeing pipeline ... When investigating I found that the following successfully runs: gst-launch-1.0 -v -e multifilesrc location="image%05d.png" index=0 stop-index=3 caps="image/png,width=960,height=540,framerate=1/1" ! pngdec ! queue ! videoconvert ! filesink location=foo Also this works (could play the mp4 with playbin): gst-launch-1.0 videotestsrc num-buffers=1 ! imxvpuenc_h264 ! h264parse ! mp4mux ! filesink location=i.mp4 Using GST_DEBUG="*:4" on the first command (full pipeline) reveals: Pipeline is PREROLLING ... 0:00:00.263635740 29136 0xd931b0 INFO GST_ELEMENT_PADS gstelement.c:894:gst_element_get_static_pad: no such pad 'sink' in element "multifilesrc0" 0:00:00.264714837 29136 0xd931b0 FIXME default gstutils.c:3766:gst_pad_create_stream_id_internal:<multifilesrc0:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id 0:00:00.265199547 29136 0xd931b0 FIXME videodecoder gstvideodecoder.c:1057:gst_video_decoder_drain_out:<pngdec0> Sub-class should implement drain() 0:00:00.267156057 29136 0xd931b0 WARN basesrc gstbasesrc.c:2943:gst_base_src_loop:<multifilesrc0> error: Internal data flow error. 0:00:00.267523090 29136 0xd931b0 WARN basesrc gstbasesrc.c:2943:gst_base_src_loop:<multifilesrc0> error: streaming task paused, reason not-negotiated (-4) 0:00:00.267856120 29136 0xd931b0 INFO GST_ERROR_SYSTEM gstelement.c:1837:gst_element_message_full:<multifilesrc0> posting message: Internal data flow error. I'm happy about any suggestions on how to fix this. Thanks in advance. Regards, Phil _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
The error message "no such pad 'sink' in element 'multifilesrc0'" indicates that the multifilesrc element is not linking correctly to the downstream elements in the pipeline. This error can occur if the caps (image/png,width=960,height=540,framerate=1/1) specified for multifilesrc do not match the format required by downstream elements. To fix this error, try modifying the caps to match the format required by pngdec element. For example, try changing the caps to "video/x-raw,format=RGBA,width=960,height=540,framerate=1/1" instead of "image/png,width=960,height=540,framerate=1/1". Also, make sure that all the elements in the pipeline are available and installed correctly on the target system.
Regards, Rachel Gomez |
Free forum by Nabble | Edit this page |