Dumping the pipeline elements into a image file | # On target, run the pipeline $ export GST_DEBUG_DUMP_DOT_DIR=<folder where dot files are created> $ gst-launch playbin2 uri=file://${avi} $ # Move the .dot files to a host machine (scp, etc) # On Host dot <dot file> -Tpng -o out.png # dot command is part the the graphviz package |
Querying which elements are being used on a gst-launch command | GST_DEBUG=GST_ELEMENT_FACTORY:3 gst-launch playbin2 uri=file://`pwd`/<media file> |
Interrupting a gst-launch process running in the background | kill -INT $PID # where $PID is the process ID |
Using only SW codecs | # Backup and remove $ find /usr/lib/gstreamer-0.10 -name "libmfw*" | grep -v sink | xargs tar cvf /libmfw_gst.tar $ find /usr/lib/gstreamer-0.10 -name "libmfw*" | grep -v sink | xargs rm # Run your pipeline. This time SW codecs are used $ gst-launch playbin2 uri=file://`pwd`/media_file # To 'install' FSL plugins again, just untar the file $ cd / && tar xvf libmfw_gst.tar && cd -# then run your pipeline. This time HW codecs are used $ gst-launch playbin2 uri=file://`pwd`/media_file |
The instructions for 'Using only SW codecs' don't work for me. I have a SabreSD board with i.MX6Q CPU and 4.0.0 version of the Linux SDK with patched ffmpeg plugins installed. Here is my output:
root@freescale ~$ gst-launch playbin2 uri=file:///root/RecordedTs-coreel-720p5994.ts
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
WARNING: from element /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: No decoder available for type 'video/mpegts, systemstream=(boolean)true, packetsize=(int)188'.
Additional debug info:
gsturidecodebin.c(867): unknown_type_cb (): /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0
ERROR: from element /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20: Your GStreamer installation is missing a plug-in.
Additional debug info:
gstdecodebin2.c(3233): gst_decode_bin_expose (): /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20:
no suitable plugins found
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
root@freescale ~$ gst-launch playbin2 uri=file:///root/sample_mpeg4.mp4
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
WARNING: from element /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: No decoder available for type 'audio/mpeg, mpegversion=(int)4, framed=(boolean)true, stream-format=(string)raw, level=(string)2, base-profile=(string)lc, profile=(string)lc, codec_data=(buffer)1290, rate=(int)32000, channels=(int)2'.
Additional debug info:
gsturidecodebin.c(867): unknown_type_cb (): /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0
ERROR: from element /GstPlayBin2:playbin20/GstPlaySink:playsink0: The autovideosink element is not working.
Additional debug info:
gstplaysink.c(1353): gen_video_chain (): /GstPlayBin2:playbin20/GstPlaySink:playsink0
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
Try these steps:
rm .gstreamer-0.10/registry.arm.bin # this is done to force plugins reloading
gst-inspect | grep ff # To check if ffmpeg plugins are there
gst-launch playbin2 ....
Actually, you may need the Freescale video sinks, so do not move/remove these. Let me know if it works.
Leo
Ok, I removed all libmfw_* EXCEPT libmfw_gst_isink.so and libmfw_gst_v4lsink.so and that works. Thanks.
I have updated the recipe! Thanks!
Leo