¿Cómo puedo instalar GStreamer gst-omx?

16

He tenido el momento más difícil durante la última semana tratando de hacer que el complemento gst-omx funcione con gstreamer en Raspberry PI.

Me pregunto si alguien aquí lo ha hecho y podría mostrarme cómo.

He instalado wheezy ya que git://git.collabora.co.uk/git/user/gkiagia/gst-omx0.10-debian.gitnecesita una versión de prueba de gstreamer.

Gstreamer está funcionando bien en la frambuesa utilizando los complementos normales, por lo que no hay aceleración de hardware.

Una vez que instalo el gst-omx, aparece en la lista negra de gstreamer y estoy completamente atascado ya que mi conocimiento de Linux es muy limitado, por lo que la depuración es imposible para mí.

usuario185955
fuente
¿Puedes elaborar un poco? ¿Qué no funciona?
Jivings
Además, ¿puede decirnos para qué necesita esto? Quizás haya una mejor alternativa que puedas usar.
Jivings
2
Todo lo que necesito es un reproductor de video / audio de línea de comando. Para que desde mi código pueda llamarlo y apuntarlo hacia un archivo multimedia, dejar que se reproduzca y luego volver al código. Creo que lo he complicado demasiado y debería intentar fusionar hello_video con el ejemplo hello_audio. Pensé que gstreamer sería más fácil porque es un marco en lugar de aprender a codificar OpenIL, pero no creo que el marco esté allí todavía.
user185955
¡Creo que lo que debes mirar es esta pregunta! raspberrypi.stackexchange.com/questions/100/…
Jivings
1
El problema con omxplayer es que lleva mucho tiempo cargar un video, mientras que el ejemplo hello_video lo hace casi instantáneamente. Tendré que reproducir muchos videos en una sucesión rápida, uno tras otro, si tuviera que usar omx player tendría grandes espacios entre archivos que no funcionarían. Es por eso que estoy buscando usar gstreamer o fusionar de alguna manera hello_audio y hello_video ... Debido a que codificaré los videos por mí mismo, siempre será el mismo códec.
user185955

Respuestas:

8

Detalles de la publicación del foro de Raspberry Pi

Obtenga e instale rpi-update si es necesario

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

Actualice a los últimos paquetes y firmware

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

Obtenga la fuente gst-omx de la rama de frambuesa

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

Instale los paquetes de Gstreamer y los paquetes necesarios para compilar omx

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

Genere automáticamente el script de configuración, configure, cree e instale gst-omx

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

Configure el entorno gst-omx para el usuario pi

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

Instale las herramientas GStreamer

sudo apt-get install gstreamer0.10-tools

Verifique que gst-omx se haya instalado correctamente.

Si tiene el siguiente comando, debería mostrar estos complementos:

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

Problemas con los complementos omxmpeg en la lista negra

Hay un conflicto con omx y gstreamer-plugins-bad, por lo que lo siguiente borró la lista negra:

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

Habilite el complemento omxh264enc para la codificación de hardware h.264

Este complemento, hasta ahora, parece estar roto, pero aquí está cómo habilitarlo. Agregue lo siguiente a $ 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
George tobillo
fuente
Según un usuario anon, el nombre de la rama git ha cambiado, por lo que en Get gst-omx source from the raspberry branch , git clone -b raspberrydebería ser git clone -b 0.10. No he confirmado esto.
Ricitos de oro
¿Cómo puedo usar gstreamer para enviar videos a nginx-rtmp desde el módulo de cámara CSI?
WillyWonka
4

Agregue esta línea de repositorio en /etc/apt/sources.list

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

Entonces simplemente ...

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

Ese repositorio de terceros está alojado por un miembro fuera de los foros de Pi . Recopilan las últimas versiones del proyecto gst-omx y publican los archivos allí.

Puede verificar si reconoció las capacidades de hardware de Pi usando este comando

gst-inspect-1.0 | grep omx

ingrese la descripción de la imagen aquí

Piotr Kula
fuente
1
A partir de ahora este es el método más rápido y fácil. Compilar como se describe a continuación en la respuesta de Unkle George no funcionó para mí ya que algunas dependencias estaban desactualizadas.
PTS
4

A partir de abril de 2015, los repositorios de Raspbian incluyen GStreamer 1.2 y los complementos OpenMAX, por lo que la forma más fácil es la respuesta de ppumkin pero sin editar/etc/apt/sources.list :

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

luego verifique con:

gst-inspect-1.0 | grep omx
M. Rubio-Roy
fuente
No tengo gstreamer1.0en el repositorio. ¿Cómo lo agrego?
shrx
No hay un paquete gstreamer1.0 pero apt-get debería usarlo como una expresión regular y descargar todos los paquetes gstreamer1.0 ... ¿ apt-cache search ^gstreamer1.0Muestra algún paquete?
M. Rubio-Roy
Sí encuentra paquetes relacionados con gstreamer, solo pensé que debería haber un gstreamer1.0paquete deb real que incluyera todos los paquetes básicos de gstreamer.
shrx