Como posso instalar o GStreamer gst-omx?

16

Durante a semana passada, tive os momentos mais difíceis tentando fazer com que o plugin gst-omx trabalhasse com o gstreamer no Raspberry PI.

Gostaria de saber se alguém aqui fez isso e poderia me mostrar como?

Instalei o wheezy conforme a git://git.collabora.co.uk/git/user/gkiagia/gst-omx0.10-debian.gitnecessidade de uma versão de teste do gstreamer.

O Gstreamer está funcionando bem na framboesa usando os plugins normais, portanto, não há aceleração de hardware.

Depois de instalar o gst-omx, ele aparece na lista negra do gstreamer e estou completamente paralisado, pois meu conhecimento do Linux é muito limitado, portanto a depuração é impossível para mim.

user185955
fonte
Você pode elaborar um pouco? O que não funciona?
Jivings
Além disso, você pode nos dizer para que precisa disso? Talvez haja uma alternativa melhor que você possa usar.
Jivings
2
Tudo o que preciso é de um player de vídeo / áudio em linha de comando. Para que, de dentro do meu código, eu possa chamá-lo e apontá-lo para um arquivo de mídia, deixá-lo tocar e retornar ao código. Eu acho que o complicou demais e eu deveria estar tentando mesclar o hello_video com o exemplo hello_audio. Eu pensei que o gstreamer seria mais fácil porque é uma estrutura em vez de aprender a codificar OpenIL, mas eu não acho que a estrutura ainda esteja lá.
user185955
Eu acho que você precisa olhar para esta questão! raspberrypi.stackexchange.com/questions/100/...
Jivings
1
O problema com o omxplayer é que leva muito tempo para carregar um vídeo, enquanto o exemplo hello_video faz isso quase que instantaneamente. Vou precisar reproduzir muitos vídeos em sucessão rápida, um após o outro, se eu fosse usar o omx player, teria grandes lacunas entre os arquivos que não funcionam. É por isso que estou procurando usar o gstreamer ou, de alguma forma, mesclar hello_audio e hello_video ... Porque mal codificarei os vídeos por mim mesmo, sempre será o mesmo codec.
user185955

Respostas:

8

Detalhes da publicação no fórum do Raspberry Pi

Obtenha e instale o rpi-update, se necessário

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

Atualize para os pacotes e firmware mais recentes

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

Obtenha a fonte gst-omx do ramo de framboesa

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

Instale os pacotes Gstreamer e os pacotes necessários para criar o omx

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

Gere automaticamente o script configure, configure, faça e instale gst-omx

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

Configure o ambiente gst-omx para o usuário 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 as ferramentas do GStreamer

sudo apt-get install gstreamer0.10-tools

Verifique se o gst-omx foi instalado corretamente.

Se tiver o seguinte comando, deverá mostrar estes plug-ins:

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

Problemas com plug-ins omxmpeg na lista negra

Há um conflito com omx e gstreamer-plugins-bad, portanto, a seguir, limpei a lista negra:

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

Ativar o plug-in omxh264enc para codificação de hardware h.264

Até agora, este plug-in parece estar quebrado, mas aqui está como ativá-lo. Adicione o seguinte 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
Unkle George
fonte
De acordo com um usuário anon, o nome da ramificação git mudou; portanto, em Obter fonte gst-omx da ramificação raspberry , git clone -b raspberrydeve ser git clone -b 0.10. Eu não confirmei isso.
goldilocks
Como posso usar o gstreamer para enviar vídeo para o nginx-rtmp a partir do moudule da câmera CSI?
WillyWonka
4

Adicione esta linha de repo ao /etc/apt/sources.list

deb http://vontaene.de/raspbian-updates/ . a Principal

Então simplesmente ....

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

Esse repositório de terceiros é hospedado por um membro dos fóruns do Pi . Eles compilam as versões mais recentes do projeto gst-omx e publicam os arquivos lá.

Você pode verificar se ele reconheceu os recursos de hardware do Pi usando este comando

gst-inspect-1.0 | grep omx

insira a descrição da imagem aqui

Piotr Kula
fonte
1
A partir de agora, este é o método mais rápido e fácil. Compilar como descrito abaixo na resposta de Unkle George não funcionou para mim, pois algumas representações estavam desatualizadas.
PTS
4

A partir de abril de 2015, os repositórios Raspbian incluem o GStreamer 1.2 e os plugins OpenMAX; portanto, a maneira mais fácil é a resposta do ppumkin, mas sem edição /etc/apt/sources.list:

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

depois verifique com:

gst-inspect-1.0 | grep omx
M. Rubio-Roy
fonte
Eu não tenho gstreamer1.0no repositório. Como adiciono?
shrx
Não existe um pacote gstreamer1.0, mas o apt-get deve usá-lo como uma expressão regular e baixar todos os pacotes gstreamer1.0 .... Não apt-cache search ^gstreamer1.0exibirá qualquer pacote?
Rubio-Roy
Ele encontra pacotes relacionados ao gstreamer, eu apenas pensei que deveria haver um gstreamer1.0pacote deb real que incluísse todos os pacotes básicos do gstreamer.
shrx