Showing posts with label ffmpeg. Show all posts
Showing posts with label ffmpeg. Show all posts
Sunday, December 11, 2016
Binaries for POT 5.4.0 on Qt 5.7.0 and Experimental Accelerated QtWebKit
So far, no real complains about POT 5.4.0-beta1 so I suppose it is sufficiently safe to consider it POT 5.4.0. Refer to this article for more info.
Labels:
ffmpeg,
Linux,
Multimedia,
OpenGL,
OpenMAX,
PiOmxTextures,
Qt,
QtMultimedia,
YouTube
Monday, July 25, 2016
Binaries for POT 5.4.0-beta1 on Qt 5.7.0 and Experimental Accelerated QtWebKit
This is a new binary package including the same content of POT 5.3.0-beta1 package, with some updates:
Download POT 5.4.0-beta1 for Raspbian Jessie Lite Pi2 (also tested on Pi3) here (md5: e6b6a1f92b71ac2bdd3d9756efd7669c).
- new improvements in POT taken from omxplayer code;
- bump to ffmpeg 3.1;
- based on Qt 5.7.0.
The build includes support for network protocols and WebKit 1 supporting video html5 elements (including youtube).
This version is still experimental. Please report bugs on github.
Have fun! Bye! ;-)Download POT 5.4.0-beta1 for Raspbian Jessie Lite Pi2 (also tested on Pi3) here (md5: e6b6a1f92b71ac2bdd3d9756efd7669c).
Labels:
ffmpeg,
Linux,
Multimedia,
OpenGL,
OpenMAX,
PiOmxTextures,
Qt,
QtMultimedia,
YouTube
Monday, June 27, 2016
Streaming from VLC to a Qt App on HTTP Using POT
The latest version of POT (5.3.0-beta1) implements some kind of buffering which makes it also possible to do some streaming. ffmpeg provides what is needed to work on protocols like HTTP. This video is a little demo showing how simple it is to stream from VLC on HTTP, remuxing to mpeg-ts, and decoding/rendering on Raspberry Pi in an accelerated Qt application using POT.
Such feature can be useful when dealing with streams coming from many sources, like an IP camera for instance.
Have fun! Bye ;-)
Have fun! Bye ;-)
Labels:
ffmpeg,
HTTP,
Multimedia,
OpenMAX,
PiOmxTextures,
Qt,
QtMultimedia,
Raspberry Pi,
Streaming,
VLC
Sunday, September 13, 2015
Binaries for Hardware Accelerated Qt 5.5.0 Multimedia Backend on Raspberry Pi 1 and 2 (5.0.0 beta 2)
This package includes mostly bug fixes and some slight improvements over beta 1. Please fil bugs to github if needed. Refer to previous articles on how to use.
Download PiOmxTextures 5.0.0-beta2 for Pi1 here (extraction code is: add4).
Download PiOmxTextures 5.0.0-beta2 for Pi2 here (extraction code is: 2ad5).
NOTE: I made a mistake with the above packages. Please download the ones below.
Download PiOmxTextures 5.0.0-beta2 for Pi1 here (extraction code is: 504a).
Download PiOmxTextures 5.0.0-beta2 for Pi2 here (extraction code is: 12e3).
NOTE: I made a mistake with the above packages. Please download the ones below.
Download PiOmxTextures 5.0.0-beta2 for Pi1 here (extraction code is: 504a).
Download PiOmxTextures 5.0.0-beta2 for Pi2 here (extraction code is: 12e3).
Friday, August 28, 2015
Binaries for Hardware Accelerated Qt 5.5.0 Multimedia Backend on Raspberry Pi 1 and 2 (5.0.0 beta 1)
These are two packages containing binaries for PiOmxTextures (POT) for Raspberry Pi 1 and 2 running Raspbian.
Download PiOmxTextures 5.0.0 for Pi1 here.
Download PiOmxTextures 5.0.0 for Pi2 here.
The information provided for previous builds apply.
This is a beta version because I do not have much time to test. So do not use in production, but if you can invest time in testing, please report any bug you find. Me or someone else interested may try to fix.
The main changes are:
- Completely changed approach to GPU buffer and structure allocations. This should avoid interrupting the renderer thread during execution of commands and, in the future, to avoid the need for patching Qt Multimedia.
- Reusing textures when possible instead of reallocating when not needed.
- Fixed a few bugs reported on github.
- Speed up start/stop by removing the need for closing and reopening the streams.
- Changed screen update procedure. This seems to improve performance again a bit than before.
- Merged changes from omxplayer.
- Bump ffmpeg to 2.7.2.
- Added QML samples (these are not contained in the package, some are in the github repo).
Package for Pi1 is supposed to work both on Pi1 and Pi2. Package for Pi2 includes armv7 optimizations in ffmpeg, POT and Qt and is therefore only compatible with Pi2. Qt build was unchanged since last build.
Download PiOmxTextures 5.0.0 for Pi2 here.
The information provided for previous builds apply.
This is a beta version because I do not have much time to test. So do not use in production, but if you can invest time in testing, please report any bug you find. Me or someone else interested may try to fix.
NOTE: If you develop your own C++ app remember to enable the global shared OpenGL context in Qt. qmlscene seems to already enable that by default.
NOTE: If you need information on how to use this build, please refer to this little procedure.
NOTE: If you need information on how to use this build, please refer to this little procedure.
Friday, July 17, 2015
Binaries for Hardware Accelerated Qt 5.5.0 Multimedia Backend on Raspberry Pi 1 and 2 (4.5.0 & 4.5.1)
These are two packages containing binaries for PiOmxTextures (POT) for Raspberry Pi 1 and 2 running Raspbian.
PiOmxTextures 4.5.0
The first package contains POT 4.5.0 for Raspberry Pi (1):- Improved sample code and POCPlayer.
- Added POCPlayer tests running multiple MediaPlayer instances.
- Improved rendering performance.
- Added support for multiple players (this seems to still show issues on Pi1, a little better on Pi2).
- Fixed volume range to avoid distortion.
- POCPlayer now shows how to render 24 bit color depth.
- Other fixes.
- Moved to Qt 5.5.0 (including libinput support).*
Download PiOmxTextures 4.5.0 for Pi1 here.
PiOmxTextures 4.5.1 (for armv7)
The second package contains POT 4.5.1 for Raspberry Pi 2 and adds to the above:- Improved buffer provider code.
- ffmpeg 2.7.1 (old was 2.6) compiled with proper CPU optimisations.
- Added compiler optimisations to leverage the new armv7 processor and NEON support for POT, Qt 5.5.0** and ffmpeg builds.
Download PiOmxTextures 4.5.1 for Pi2 here.
The first package ran long tests and is supposed to guarantee more stability. Tests showed uptime of POCPlayer (sample media player included in the sources) way over a month uninterruptedly. The second package instead did not run any long test. Please let me know if you notice anything wrong.
Both packages contain:
- piomxtextures_pocplayer: sample player which includes tests for animations, loops and commands. Have a look at the sources to understand how it works.
- Qt-rasp(2)-5.5.0.tar: contains the build of Qt 5.5.0 with proper CPU optimisations. This also includes the host tools like qmake. rpath is set to /usr/local/Qt-rasp(2)-5.5.0 so you're probably better install it there.
- qtdeps.tar: this contains libevdev and libinput which are not available in Raspbian repos. Qt will need these in the runtime lib path to work.
Please, let me know if you encounter issues with the packages or if anything goes wrong.
Bye! ;-)
NOTE: This is not available in github yet. But it will shortly.
*Qt Configuration for Raspberry Pi 1
Configure summary
Building on: linux-g++ (x86_64, CPU features: mmx sse sse2)
Building for: devices/linux-rasp-pi-g++ (arm, CPU features: none detected)
Platform notes:
- Also available for Linux: linux-kcc linux-icc linux-cxx
qmake vars .......... styles += mac fusion windows QT_CFLAGS_GLIB = -pthread -I/opt/rpi/sysroot/usr/include/glib-2.0 -I/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf/glib-2.0/include QT_LIBS_GLIB = -L/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf -lgthread-2.0 -pthread -lrt -lglib-2.0 QT_CFLAGS_QGTKSTYLE = -pthread -I/opt/rpi/sysroot/usr/include/gtk-2.0 -I/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/opt/rpi/sysroot/usr/include/gio-unix-2.0/ -I/opt/rpi/sysroot/usr/include/cairo -I/opt/rpi/sysroot/usr/include/pango-1.0 -I/opt/rpi/sysroot/usr/include/cairo -I/opt/rpi/sysroot/usr/include/pixman-1 -I/opt/rpi/sysroot/usr/include/libpng12 -I/opt/rpi/sysroot/usr/include/gdk-pixbuf-2.0 -I/opt/rpi/sysroot/usr/include/libpng12 -I/opt/rpi/sysroot/usr/include/pango-1.0 -I/opt/rpi/sysroot/usr/include/harfbuzz -I/opt/rpi/sysroot/usr/include/pango-1.0 -I/opt/rpi/sysroot/usr/include/freetype2 -I/opt/rpi/sysroot/usr/include/atk-1.0 -I/opt/rpi/sysroot/usr/include/glib-2.0 -I/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf/glib-2.0/include QT_LIBS_QGTKSTYLE = -L/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf -lgobject-2.0 -lglib-2.0 QT_CFLAGS_QGTK2 = -pthread -I/opt/rpi/sysroot/usr/include/gtk-2.0 -I/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/opt/rpi/sysroot/usr/include/gio-unix-2.0/ -I/opt/rpi/sysroot/usr/include/cairo -I/opt/rpi/sysroot/usr/include/pango-1.0 -I/opt/rpi/sysroot/usr/include/cairo -I/opt/rpi/sysroot/usr/include/pixman-1 -I/opt/rpi/sysroot/usr/include/libpng12 -I/opt/rpi/sysroot/usr/include/gdk-pixbuf-2.0 -I/opt/rpi/sysroot/usr/include/libpng12 -I/opt/rpi/sysroot/usr/include/pango-1.0 -I/opt/rpi/sysroot/usr/include/harfbuzz -I/opt/rpi/sysroot/usr/include/pango-1.0 -I/opt/rpi/sysroot/usr/include/freetype2 -I/opt/rpi/sysroot/usr/include/atk-1.0 -I/opt/rpi/sysroot/usr/include/glib-2.0 -I/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf/glib-2.0/include QT_LIBS_QGTK2 = -L/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfreetype -lfontconfig QT_CFLAGS_PULSEAUDIO = -D_REENTRANT -I/opt/rpi/sysroot/usr/include/glib-2.0 -I/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf/glib-2.0/include QT_LIBS_PULSEAUDIO = -L/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf -lpulse-mainloop-glib -lpulse -lglib-2.0 QMAKE_CFLAGS_FONTCONFIG = -I/opt/rpi/sysroot/usr/include/freetype2 QMAKE_LIBS_FONTCONFIG = -L/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf -lfontconfig -lfreetype QMAKE_INCDIR_LIBUDEV = QMAKE_LIBS_LIBUDEV = -ludev QMAKE_INCDIR_XKBCOMMON_EVDEV = QMAKE_LIBS_XKBCOMMON_EVDEV = -L/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf -lxkbcommon QMAKE_LIBINPUT_VERSION_MAJOR = 0 QMAKE_LIBINPUT_VERSION_MINOR = 19 QMAKE_INCDIR_LIBINPUT = /opt/rpi/sysroot/usr/local/include QMAKE_LIBS_LIBINPUT = -L/opt/rpi/sysroot/usr/local/lib -linput QMAKE_LIBXI_VERSION_MAJOR = 1 QMAKE_LIBXI_VERSION_MINOR = 6 QMAKE_LIBXI_VERSION_PATCH = 1 QMAKE_X11_PREFIX = /usr DEFINES += QT_NO_XKB QMAKE_XKB_CONFIG_ROOT = /usr/share/X11/xkb QMAKE_CFLAGS_XCB = QMAKE_LIBS_XCB = -L/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf -lxcb-sync -lxcb-xfixes -lxcb-render -lxcb-randr -lxcb-image -lxcb-shm -lxcb-keysyms -lxcb-icccm -lxcb-shape -lxcb sql-drivers = sql-plugins = odbc sqlite sqlite2 tds qmake switches .........
Build options:
Configuration .......... accessibility accessibility-atspi-bridge alsa audio-backend c++11 clock-gettime clock-monotonic compile_examples concurrent cross_compile cups dbus egl eglfs eglfs_brcm enable_new_dtags evdev eventfd fontconfig full-config getaddrinfo getifaddrs glib gstreamer-1.0 gtk2 gtkstyle harfbuzz iconv icu inotify ipv6ifname large-config largefile libinput libproxy libudev linuxfb medium-config minimal-config mremap mtdev nis opengl opengles2 openssl pcre png posix_fallocate pulseaudio qpa qpa reduce_exports release rpath shared small-config system-freetype system-jpeg system-png system-zlib tslib use_gold_linker xcb xcb-glx xcb-plugin xcb-render xcb-sm xcb-xlib xinput2 xkbcommon-qt xlib xrender
Build parts ............ libs examples
Mode ................... release
Using sanitizer(s)...... none
Using C++11 ............ yes
Using gold linker....... yes
Using new DTAGS ........ yes
Using PCH .............. no
Target compiler supports:
Neon ................. no
Qt modules and options:
Qt D-Bus ............... yes (loading dbus-1 at runtime)
Qt Concurrent .......... yes
Qt GUI ................. yes
Qt Widgets ............. yes
Large File ............. yes
QML debugging .......... yes
Use system proxies ..... no
Support enabled for:
Accessibility .......... yes
ALSA ................... yes
CUPS ................... yes
Evdev .................. yes
FontConfig ............. yes
FreeType ............... yes (system library)
Glib ................... yes
GStreamer .............. yes (1.0)
GTK theme .............. yes
HarfBuzz ............... yes (bundled copy)
Iconv .................. yes
ICU .................... yes
Image formats:
GIF .................. yes (plugin, using bundled copy)
JPEG ................. yes (plugin, using system library)
PNG .................. yes (in QtGui, using system library)
journald ............... no
libinput................ yes
mtdev .................. yes (system library)
Networking:
getaddrinfo .......... yes
getifaddrs ........... yes
IPv6 ifname .......... yes
libproxy.............. yes
OpenSSL .............. yes (loading libraries at run-time)
NIS .................... yes
OpenGL / OpenVG:
EGL .................. yes
OpenGL ............... yes (OpenGL ES 2.0+)
OpenVG ............... no
PCRE ................... yes (bundled copy)
pkg-config ............. yes
PulseAudio ............. yes
QPA backends:
DirectFB ............. no
EGLFS ................ yes
EGLFS i.MX6....... . no
EGLFS KMS .......... no
EGLFS Mali ......... no
EGLFS Raspberry Pi . yes
EGLFS X11 .......... no
LinuxFB .............. yes
XCB .................. yes (system library)
EGL on X ........... no
GLX ................ yes
MIT-SHM ............ yes
Xcb-Xlib ........... yes
Xcursor ............ yes (loaded at runtime)
Xfixes ............. yes (loaded at runtime)
Xi ................. no
Xi2 ................ yes
Xinerama ........... yes (loaded at runtime)
Xrandr ............. yes (loaded at runtime)
Xrender ............ yes
XKB ................ no
XShape ............. yes
XSync .............. yes
XVideo ............. yes
Session management ..... yes
SQL drivers:
DB2 .................. no
InterBase ............ no
MySQL ................ no
OCI .................. no
ODBC ................. yes (plugin)
PostgreSQL ........... no
SQLite 2 ............. yes (plugin)
SQLite ............... yes (plugin, using bundled copy)
TDS .................. yes (plugin)
tslib .................. yes
udev ................... yes
xkbcommon-x11........... yes (bundled copy, XKB config root: /usr/share/X11/xkb)
xkbcommon-evdev......... no
zlib ................... yes (system library)
**Qt Configuration for Raspberry Pi 2
Configure summary
Building on: linux-g++ (x86_64, CPU features: mmx sse sse2)
Building for: devices/linux-rasp-pi2-g++ (arm, CPU features: neon)
Platform notes:
- Also available for Linux: linux-kcc linux-icc linux-cxx
qmake vars .......... styles += mac fusion windows QT_CFLAGS_GLIB = -pthread -I/opt/rpi/sysroot/usr/include/glib-2.0 -I/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf/glib-2.0/include QT_LIBS_GLIB = -L/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf -lgthread-2.0 -pthread -lrt -lglib-2.0 QT_CFLAGS_PULSEAUDIO = -D_REENTRANT -I/opt/rpi/sysroot/usr/include/glib-2.0 -I/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf/glib-2.0/include QT_LIBS_PULSEAUDIO = -L/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf -lpulse-mainloop-glib -lpulse -lglib-2.0 QMAKE_CFLAGS_FONTCONFIG = -I/opt/rpi/sysroot/usr/include/freetype2 QMAKE_LIBS_FONTCONFIG = -L/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf -lfontconfig -lfreetype QMAKE_INCDIR_LIBUDEV = QMAKE_LIBS_LIBUDEV = -ludev QMAKE_LIBINPUT_VERSION_MAJOR = 0 QMAKE_LIBINPUT_VERSION_MINOR = 19 QMAKE_INCDIR_LIBINPUT = /opt/rpi/sysroot/usr/local/include QMAKE_LIBS_LIBINPUT = -L/opt/rpi/sysroot/usr/local/lib -linput QMAKE_LIBXI_VERSION_MAJOR = 1 QMAKE_LIBXI_VERSION_MINOR = 6 QMAKE_LIBXI_VERSION_PATCH = 1 QMAKE_X11_PREFIX = /usr DEFINES += QT_NO_XKB QMAKE_XKB_CONFIG_ROOT = /usr/share/X11/xkb QMAKE_CFLAGS_XCB = QMAKE_LIBS_XCB = -L/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf -lxcb-sync -lxcb-xfixes -lxcb-render -lxcb-randr -lxcb-image -lxcb-shm -lxcb-keysyms -lxcb-icccm -lxcb-shape -lxcb sql-drivers = sql-plugins = odbc sqlite sqlite2 tds qmake switches .........
Build options:
Configuration .......... accessibility accessibility-atspi-bridge alsa audio-backend c++11 clock-gettime clock-monotonic compile_examples concurrent cross_compile cups dbus egl eglfs eglfs_brcm enable_new_dtags evdev eventfd fontconfig full-config getaddrinfo getifaddrs glib gstreamer-1.0 harfbuzz iconv icu inotify ipv6ifname large-config largefile libinput libproxy libudev linuxfb medium-config minimal-config mremap mtdev neon nis opengl opengles2 openssl pcre png posix_fallocate pulseaudio qpa qpa reduce_exports release rpath shared small-config system-freetype system-jpeg system-png system-zlib tslib use_gold_linker xcb xcb-glx xcb-plugin xcb-render xcb-xlib xinput2 xkbcommon-qt xlib xrender
Build parts ............ libs examples
Mode ................... release
Using sanitizer(s)...... none
Using C++11 ............ yes
Using gold linker....... yes
Using new DTAGS ........ yes
Using PCH .............. no
Target compiler supports:
Neon ................. yes
Qt modules and options:
Qt D-Bus ............... yes (loading dbus-1 at runtime)
Qt Concurrent .......... yes
Qt GUI ................. yes
Qt Widgets ............. yes
Large File ............. yes
QML debugging .......... yes
Use system proxies ..... no
Support enabled for:
Accessibility .......... yes
ALSA ................... yes
CUPS ................... yes
Evdev .................. yes
FontConfig ............. yes
FreeType ............... yes (system library)
Glib ................... yes
GStreamer .............. yes (1.0)
GTK theme .............. no
HarfBuzz ............... yes (bundled copy)
Iconv .................. yes
ICU .................... yes
Image formats:
GIF .................. yes (plugin, using bundled copy)
JPEG ................. yes (plugin, using system library)
PNG .................. yes (in QtGui, using system library)
journald ............... no
libinput................ yes
mtdev .................. yes (system library)
Networking:
getaddrinfo .......... yes
getifaddrs ........... yes
IPv6 ifname .......... yes
libproxy.............. yes
OpenSSL .............. yes (loading libraries at run-time)
NIS .................... yes
OpenGL / OpenVG:
EGL .................. yes
OpenGL ............... yes (OpenGL ES 2.0+)
OpenVG ............... no
PCRE ................... yes (bundled copy)
pkg-config ............. yes
PulseAudio ............. yes
QPA backends:
DirectFB ............. no
EGLFS ................ yes
EGLFS i.MX6....... . no
EGLFS KMS .......... no
EGLFS Mali ......... no
EGLFS Raspberry Pi . yes
EGLFS X11 .......... no
LinuxFB .............. yes
XCB .................. yes (system library)
EGL on X ........... no
GLX ................ yes
MIT-SHM ............ yes
Xcb-Xlib ........... yes
Xcursor ............ yes (loaded at runtime)
Xfixes ............. yes (loaded at runtime)
Xi ................. no
Xi2 ................ yes
Xinerama ........... yes (loaded at runtime)
Xrandr ............. yes (loaded at runtime)
Xrender ............ yes
XKB ................ no
XShape ............. yes
XSync .............. yes
XVideo ............. yes
Session management ..... yes
SQL drivers:
DB2 .................. no
InterBase ............ no
MySQL ................ no
OCI .................. no
ODBC ................. yes (plugin)
PostgreSQL ........... no
SQLite 2 ............. yes (plugin)
SQLite ............... yes (plugin, using bundled copy)
TDS .................. yes (plugin)
tslib .................. yes
udev ................... yes
xkbcommon-x11........... yes (bundled copy, XKB config root: /usr/share/X11/xkb)
xkbcommon-evdev......... no
zlib ................... yes (system library)
Tuesday, May 6, 2014
FFmpeg gstreamer plugin on Ubuntu 14.04
EDIT 02.25.2015: It seems to be missing even in Ubuntu 14.10. But probably the quickest way to install is:
sudo add-apt-repository ppa:mc3man/gstffmpeg-keep
sudo apt-get update
sudo apt-get install gstreamer0.10-ffmpeg
END EDIT
I was trying to develop an application that uses gstreamer 0.10 on Ubuntu 14.04 and I noticed this runtime error message:
"No decoder available for type 'video/x-h264, stream-format=(string)avc, alignment=(string)au, level=(string)3, profile=(string)main, codec_data=(buffer)014d401effe10015274d401ea9181b07bcde00d4040406db0ad7bdf01001000428de09c8, width=(int)854, height=(int)480, framerate=(fraction)24/1, pixel-aspect-ratio=(fraction)1/1, parsed=(boolean)true'."
This is because it seems that the gstreamer 0.10 ffmpeg plugin is missing in 14.04. This also makes my Qt code fail it seems, as it uses 0.10 for the Qt Multimedia module. It used to be sufficient to install ubuntu-restricted-extras until 13.10, but it seems something has changed in 14.04. I really couldn't find that plugin anywhere soI simply built that from the sources here. Luckily it also contains the ffmpeg sources and builds those statically it seems.
Download the package, extract and:
./configure make make install
You'll probably need to install the usual build-essentials, gstreamer0.10, libgstreamer0.10, libgstreamer-plugins-base0.10-dev etc... It may fail with an error on a macro like this:
./libavcodec/get_bits.h: In function 'skip_bits': ./libavcodec/get_bits.h:387:1: warning: variable 're_cache' set but not used [-Wunused-but-set-variable] libavcodec/x86/h264_qpel_mmx.c: Assembler messages: libavcodec/x86/h264_qpel_mmx.c:1294: Error: operand type mismatch for `cmp' libavcodec/x86/h264_qpel_mmx.c:1294: Error: operand type mismatch for `cmp' libavcodec/x86/h264_qpel_mmx.c:1298: Error: operand type mismatch for `cmp' libavcodec/x86/h264_qpel_mmx.c:1298: Error: operand type mismatch for `cmp' libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp' libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp' libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp' make[1]: *** [libavcodec/x86/dsputil_mmx.o] Error 1
If that happens just apply the patch here. Place the plugin libgstffmpeg.so into /usr/lib/x86_64-linux-gnu/gstreamer-0.10, or wherever you have your gstreamer plugins and you're done. Bye! ;-)
sudo add-apt-repository ppa:mc3man/gstffmpeg-keep
sudo apt-get update
sudo apt-get install gstreamer0.10-ffmpeg
END EDIT
I was trying to develop an application that uses gstreamer 0.10 on Ubuntu 14.04 and I noticed this runtime error message:
"No decoder available for type 'video/x-h264, stream-format=(string)avc, alignment=(string)au, level=(string)3, profile=(string)main, codec_data=(buffer)014d401effe10015274d401ea9181b07bcde00d4040406db0ad7bdf01001000428de09c8, width=(int)854, height=(int)480, framerate=(fraction)24/1, pixel-aspect-ratio=(fraction)1/1, parsed=(boolean)true'."
This is because it seems that the gstreamer 0.10 ffmpeg plugin is missing in 14.04. This also makes my Qt code fail it seems, as it uses 0.10 for the Qt Multimedia module. It used to be sufficient to install ubuntu-restricted-extras until 13.10, but it seems something has changed in 14.04. I really couldn't find that plugin anywhere soI simply built that from the sources here. Luckily it also contains the ffmpeg sources and builds those statically it seems.
Download the package, extract and:
./configure make make install
You'll probably need to install the usual build-essentials, gstreamer0.10, libgstreamer0.10, libgstreamer-plugins-base0.10-dev etc... It may fail with an error on a macro like this:
./libavcodec/get_bits.h: In function 'skip_bits': ./libavcodec/get_bits.h:387:1: warning: variable 're_cache' set but not used [-Wunused-but-set-variable] libavcodec/x86/h264_qpel_mmx.c: Assembler messages: libavcodec/x86/h264_qpel_mmx.c:1294: Error: operand type mismatch for `cmp' libavcodec/x86/h264_qpel_mmx.c:1294: Error: operand type mismatch for `cmp' libavcodec/x86/h264_qpel_mmx.c:1298: Error: operand type mismatch for `cmp' libavcodec/x86/h264_qpel_mmx.c:1298: Error: operand type mismatch for `cmp' libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp' libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp' libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp' make[1]: *** [libavcodec/x86/dsputil_mmx.o] Error 1
If that happens just apply the patch here. Place the plugin libgstffmpeg.so into /usr/lib/x86_64-linux-gnu/gstreamer-0.10, or wherever you have your gstreamer plugins and you're done. Bye! ;-)
Labels:
ffmpeg,
gstreamer,
Multimedia,
Qt,
QtMultimedia
Subscribe to:
Posts (Atom)