19

Been having the toughest time over the last week trying to get gst-omx plugin working with gstreamer on the Raspberry PI.

I wonder if anyone here has done it and could show me how?

I've installed wheezy as git://git.collabora.co.uk/git/user/gkiagia/gst-omx0.10-debian.git needs a testing version of gstreamer.

Gstreamer is working fine on the raspberry using the normal plugins, so no hardware acceleration.

Once I install the gst-omx it comes up in the blacklist for gstreamer and I'm completely stuck as my linux knowledge is very limited so debugging is impossible for me.

7
  • Can you elaborate slightly? What doesn't work?
    – Jivings
    Commented Jun 20, 2012 at 9:02
  • Also, can you tell us what you need this for? Perhaps there is a better alternative you could use.
    – Jivings
    Commented Jun 21, 2012 at 9:02
  • 2
    All I need is a command line video/audio player. So that from inside my code I can call the code and point it towards a media file, let it play then return back to the code. I think i have over complicated it and I should be trying to merge the hello_video with the hello_audio example. I thought gstreamer would easier because its a framework instead of learning how to code OpenIL, but I dont think the framework is all there yet.
    – user185955
    Commented Jun 21, 2012 at 20:06
  • I think what you need to look at is this question! raspberrypi.stackexchange.com/questions/100/…
    – Jivings
    Commented Jun 21, 2012 at 21:35
  • 1
    The problem with omxplayer is that it takes a long time to load up a video, where as the hello_video example does it almost instantly. I will need to play lots of videos in quick succession one after the other, if I was to use omx player I would be having large gaps between files which wont work. This is why I'm looking to use gstreamer or somehow merge hello_audio and hello_video... Because ill be encoding the videos my self it will always be the same codec.
    – user185955
    Commented Jun 21, 2012 at 22:52

3 Answers 3

9

Details from Raspberry Pi forum post

Get and install rpi-update if necessary

sudo wget http://goo.gl/1BOfJ -O /usr/bin/rpi-update && sudo chmod +x /usr/bin/rpi-update
sudo apt-get -y install git-core

Upgrade to the latest packages and firmware

sudo apt-get update
sudo apt-get upgrade -y
sudo rpi-update
sudo reboot

Get gst-omx source from the raspberry branch

cd $HOME 
git clone -b 0.10 git://anongit.freedesktop.org/gstreamer/gst-omx

Install the Gstreamer packages, and the packages required to build omx

sudo apt-get install -y autoconf gtk-doc-tools libtool 

Autogenerate the configure script, configure, make and install gst-omx

cd gst-omx
./autogen.sh --noconfigure
./configure --prefix=/home/pi/omx
make 
make install

Set up the gst-omx environment for the pi user

cp  omx/gstomx-raspberry.conf $HOME/omx/lib/gstreamer-0.10/gstomx.conf
cd $HOME
echo -e \\n# Gstreamer environment >> .profile
echo export GST_PLUGIN_PATH=$HOME/omx/lib/gstreamer-0.10/ >> .profile
echo export GST_OMX_CONFIG_DIR=$HOME/omx/lib/gstreamer-0.10/ >> .profile
echo export LD_LIBRARY_PATH=$HOME/omx/lib/gstreamer-0.10/ >> .profile
. ./.profile

Install the GStreamer Tools

sudo apt-get install gstreamer0.10-tools

Verify that gst-omx has been installed correctly.

If it has the following command should show these plug-ins:

> gst-inspect-0.10 | grep omx
openmax  omxmpeg4videodec: OpenMAX MPEG4 Video Decoder
openmax  omxh264dec: OpenMAX H.264 Video Decoder

Problems with omxmpeg plug-ins being blacklisted

There's a conflict with omx and gstreamer-plugins-bad, so the following cleared the blacklisting:

sudo aptitude remove libgstreamer-plugins-bad0.10-0

Enable omxh264enc plugin for hardware h.264 Encoding

This plugin, so far, appears to be broken, but here's how to enable it. Add the following to $GST_OMX_CONFIG_DIR/gstomx.conf

[omxh264enc]
type-name=GstOMXH264Enc
core-name=/opt/vc/lib/libopenmaxil.so
component-name=OMX.broadcom.video_encode
rank=256
in-port-index=200
out-port-index=201
hacks=no-empty-eos-buffer;no-component-role
2
  • According to an anon user, the git branch name has changed, so under Get gst-omx source from the raspberry branch, git clone -b raspberry should be git clone -b 0.10. I did not confirm this.
    – goldilocks
    Commented Jul 21, 2013 at 7:51
  • How can I use gstreamer to send video to nginx-rtmp from the CSI Camera moudule??
    – WillyWonka
    Commented Oct 29, 2013 at 15:16
4

Add this repo line into /etc/apt/sources.list

deb http://vontaene.de/raspbian-updates/ . main

Then simply ....

sudo apt-get update
sudo apt-get install gstreamer1.0

That 3rd party repository is hosted by a member off the Pi forums. They compile the latest versions of the gst-omx project and publish the files there.

You can check if it recognised the Pi's hardware capabilities using this command

gst-inspect-1.0 | grep omx

enter image description here

1
  • 1
    As of now this the fastest and easiest method. Compiling like described below in Unkle George's answer didn't work for me as some depencyies were out of date.
    – timonsku
    Commented Mar 19, 2014 at 14:58
4

As of April 2015 Raspbian repositories include GStreamer 1.2 and the OpenMAX plugins, so the easiest way is ppumkin's answer but without editing /etc/apt/sources.list:

sudo apt-get update
sudo apt-get install gstreamer1.0

then check with:

gst-inspect-1.0 | grep omx
3
  • I don't have gstreamer1.0 in the repository. How do I add it?
    – shrx
    Commented May 3, 2015 at 7:44
  • There is no package gstreamer1.0 but apt-get should use it as a regular expression and download all gstreamer1.0... packages. Does apt-cache search ^gstreamer1.0 show any packages ? Commented May 4, 2015 at 11:58
  • It does find gstreamer-related packages, I just thought there should be an actual gstreamer1.0 deb package that included all the basic gstreamer packages.
    – shrx
    Commented May 4, 2015 at 12:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.