[Development] The dark side of QtMultimedia - strikes back
Massimo Callegari
massimocallegari at yahoo.it
Sun Jul 5 10:11:38 CEST 2015
Sorry, ignore the previous. Stupid formatting :(
> That doesn't mean it's working perfectly. This example working means this
> example works, that's all.
> Anyway, can you at least try raw gstreamer, like gst-launch?
Yes I can.
pi at raspberrypi ~ $ gst-launch-1.0 filesrc location=sintel-1280-surround.mp4 ! qtdemux name=demuxer \ demuxer. ! queue ! faad ! alsasink \ demuxer. ! queue max-size-bytes=10000000 ! h264parse ! omxh264dec ! queue max-size-buffers=4 ! "video/x-raw, format=(string)I420" ! eglglessink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Got context from element 'eglglessink0': gst.egl.EGLDisplay=context, display=(GstEGLDisplay)NULL;
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstAudioSinkClock
Works like a charm. No frame drops, no interruptions, no AV out of sync.
I had to add that weird I420 format otherwise the video was flipped upside down.
For the sake of completeness I add also the OMX codecs inspection:
pi at raspberrypi ~ $ gst-inspect-1.0 | grep omx
omx: omxmpeg2videodec: OpenMAX MPEG2 Video Decoder
omx: omxmpeg4videodec: OpenMAX MPEG4 Video Decoder
omx: omxh263dec: OpenMAX H.263 Video Decoder
omx: omxh264dec: OpenMAX H.264 Video Decoder
omx: omxtheoradec: OpenMAX Theora Video Decoder
omx: omxvp8dec: OpenMAX VP8 Video Decoder
omx: omxmjpegdec: OpenMAX MJPEG Video Decoder
omx: omxvc1dec: OpenMAX WMV Video Decoder
omx: omxh264enc: OpenMAX H.264 Video Encoder
And also the packages installed in the distro:
pi at raspberrypi ~ $ dpkg -l | grep gst
ii gir1.2-gst-plugins-base-1.0 1.2.0-1co1rpi3 armhf Description: GObject introspection data for the GStreamer Plugins Base library
ii gir1.2-gstreamer-1.0 1.2.0-1rpi3 armhf Description: GObject introspection data for the GStreamer library
ii gstreamer0.10-gconf:armhf 0.10.31-3+nmu1 armhf GStreamer plugin for getting the sink/source information from GConf
ii gstreamer0.10-plugins-base:armhf 0.10.36-1.1 armhf GStreamer plugins from the "base" set
ii gstreamer0.10-plugins-good:armhf 0.10.31-3+nmu1 armhf GStreamer plugins from the "good" set
ii gstreamer0.10-plugins-ugly:armhf 0.10.19-2 armhf GStreamer plugins from the "ugly" set
ii gstreamer0.10-x:armhf 0.10.36-1.1 armhf GStreamer plugins for X11 and Pango
ii gstreamer1.0-alsa:armhf 1.2.0-1co1rpi3 armhf GStreamer plugin for ALSA
ii gstreamer1.0-libav:armhf 1.2.0-1co2rpi1rpi3 armhf libav plugin for GStreamer
ii gstreamer1.0-omx 1.0.0.1-0+rpi13rpi2 armhf GStreamer OpenMAX plugins
ii gstreamer1.0-plugins-bad:armhf 1.2.1-0+rpi1rpi3 armhf GStreamer plugins from the "bad" set
ii gstreamer1.0-plugins-base:armhf 1.2.0-1co1rpi3 armhf GStreamer plugins from the "base" set
ii gstreamer1.0-plugins-good:armhf 1.2.0-1co6rpi3 armhf GStreamer plugins from the "good" set
ii gstreamer1.0-tools 1.2.0-1rpi3 armhf Tools for use with GStreamer
ii gstreamer1.0-x:armhf 1.2.0-1co1rpi3 armhf GStreamer plugins for X11 and Pango
rc libclutter-gst-1.0-0:armhf 1.5.4-1+build0 armhf Open GL based interactive canvas library GStreamer elements
ii libgstreamer-plugins-bad1.0-0:armhf 1.2.1-0+rpi1rpi3 armhf GStreamer development files for libraries from the "bad" set
ii libgstreamer-plugins-base0.10-0:armhf 0.10.36-1.1 armhf GStreamer libraries from the "base" set
ii libgstreamer-plugins-base1.0-0:armhf 1.2.0-1co1rpi3 armhf GStreamer libraries from the "base" set
ii libgstreamer-plugins-base1.0-dev 1.2.0-1co1rpi3 armhf GStreamer development files for libraries from the "base" set
ii libgstreamer0.10-0:armhf 0.10.36-1.2 armhf Core GStreamer libraries and elements
ii libgstreamer1.0-0:armhf 1.2.0-1rpi3 armhf Core GStreamer libraries and elements
ii libgstreamer1.0-dev 1.2.0-1rpi3 armhf GStreamer core development files
More information about the Development
mailing list