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.

Oliver Salzburg
  • 1,774
  • 1
  • 19
  • 33
user185955
  • 291
  • 1
  • 2
  • 3
  • Can you elaborate slightly? What doesn't work? – Jivings Jun 20 '12 at 09:02
  • Also, can you tell us what you need this for? Perhaps there is a better alternative you could use. – Jivings Jun 21 '12 at 09: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 Jun 21 '12 at 20:06
  • I think what you need to look at is this question! http://raspberrypi.stackexchange.com/questions/100/running-1080p-video-from-within-xorg-smoothly – Jivings Jun 21 '12 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 Jun 21 '12 at 22:52
  • The problem is hat omxplayer is the only player that will decode video using the GPU. Other players will not have the same great, unchoppy playback. – Jivings Jun 22 '12 at 08:03
  • We're discussing this issue in the Raspberry Pi forums: http://www.raspberrypi.org/phpBB3/viewtopic.php?f=38&t=6852 – tomtaylor Sep 02 '12 at 11:42

3 Answers3

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
goldilocks
  • 58,859
  • 17
  • 112
  • 227
Unkle George
  • 91
  • 1
  • 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 Jul 21 '13 at 07:51
  • How can I use gstreamer to send video to nginx-rtmp from the CSI Camera moudule?? – WillyWonka Oct 29 '13 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

Piotr Kula
  • 17,307
  • 6
  • 65
  • 104
  • 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 Mar 19 '14 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
M. Rubio-Roy
  • 568
  • 6
  • 10
  • I don't have gstreamer1.0 in the repository. How do I add it? – shrx May 03 '15 at 07: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 ? – M. Rubio-Roy May 04 '15 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 May 04 '15 at 12:02