GStreamer gst-omxをインストールするにはどうすればよいですか?


16

先週、Raspberry PIでgst-omxプラグインとgstreamerを連​​携させようとして、最も苦労していました。

ここの誰かがそれをやったことがあり、どのように私に教えてもらえますか?

git://git.collabora.co.uk/git/user/gkiagia/gst-omx0.10-debian.gitテストバージョンのgstreamerが必要なため、wheezyをインストールしました。

Gstreamerは通常のプラグインを使用してラズベリーで正常に動作しているため、ハードウェアアクセラレーションはありません。

gst-omxをインストールすると、gstreamerのブラックリストに載ります。Linuxの知識が非常に限られているため、デバッグが不可能なため、完全に停止しています。


少し詳しく説明していただけますか?何が機能しないのですか?
Jivings

また、これが何のために必要なのか教えてもらえますか?おそらくあなたが使用できるより良い代替手段があります。
Jivings

2
必要なのは、コマンドラインのビデオ/オーディオプレーヤーだけです。そのため、コード内からコードを呼び出してメディアファイルに向け、再生してからコードに戻ることができます。私はそれを複雑にしすぎていると思うので、hello_videoをhello_audioの例とマージしようとするべきです。gstreamerはOpenILのコーディング方法を学ぶ代わりにフレームワークであるため、簡単だと思いましたが、フレームワークがまだすべて揃っているとは思いません。
user185955

あなたが見る必要があるのはこの質問だと思います!raspberrypi.stackexchange.com/questions/100/…–
Jivings

1
omxplayerの問題は、hello_videoの例のように、ビデオをロードするのに時間がかかることです。たくさんのビデオを次々と連続して再生する必要があります。omxプレーヤーを使用する場合、ファイル間に大きなギャップがあり、機能しません。これが、私がgstreamerを使用するか、どういうわけかhello_audioとhello_videoをマージしようとしている理由です...ビデオを自分自身でエンコードしているため、常に同じコーデックになります。
user185955

回答:


8

Raspberry Piフォーラム投稿の詳細

必要に応じてrpi-updateを取得してインストールします

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

最新のパッケージとファームウェアにアップグレードする

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

raspberryブランチからgst-omxソースを入手する

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

Gstreamerパッケージ、およびomxのビルドに必要なパッケージをインストールします

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

構成スクリプトの自動生成、gst-omxの構成、作成、インストール

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

piユーザーのgst-omx環境をセットアップします

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

GStreamerツールをインストールする

sudo apt-get install gstreamer0.10-tools

gst-omxが正しくインストールされていることを確認してください。

次のコマンドがある場合、これらのプラグインが表示されます。

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

ブラックリストに登録されているomxmpegプラグインの問題

omxおよびgstreamer-plugins-badとの競合があるため、次のブラックリストをクリアしました。

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

ハードウェアh.264エンコーディングのomxh264encプラグインを有効にする

これまでのところ、このプラグインは壊れているように見えますが、有効にする方法は次のとおりです。以下を$ 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

anonのユーザーによると、gitブランチ名は変更されているため、Get rstberryブランチからgst-omxソースを取得する場合git clone -b raspberryはである必要がありますgit clone -b 0.10。私はこれを確認しませんでした。
goldilocks

gstreamerを使用して、CSIカメラモジュールからnginx-rtmpにビデオを送信するにはどうすればよいですか?
ウィリーウォンカ

4

このレポ行をに追加します /etc/apt/sources.list

deb http://vontaene.de/raspbian-updates/。メイン

その後、単に....

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

そのサードパーティのリポジトリは、Piフォーラムのメンバーによってホストされています。gst-omxプロジェクトの最新バージョンをコンパイルし、そこでファイルを公開します。

このコマンドを使用して、Piのハードウェア機能を認識したかどうかを確認できます

gst-inspect-1.0 | grep omx

ここに画像の説明を入力してください


1
現在のところ、これが最速かつ最も簡単な方法です。以下のUnkle Georgeの回答で説明されているようなコンパイルは、いくつかの依存性が古くなったため、私にとってはうまくいきませんでした。
PTS

4

2015年4月時点で、RaspbianリポジトリにはGStreamer 1.2とOpenMAXプラグインが含まれているため、最も簡単な方法はppumkinの答えですが、編集は不要/etc/apt/sources.listです。

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

次に確認してください:

gst-inspect-1.0 | grep omx

gstreamer1.0リポジトリにはありません。どうすれば追加できますか?
shrx

パッケージgstreamer1.0はありませんが、apt-getはそれを正規表現として使用し、すべてのgstreamer1.0 ...パッケージをダウンロードする必要があります。apt-cache search ^gstreamer1.0パッケージは表示されますか?
M.ルビオロイ

それはgstreamer関連のパッケージを見つけますが、gstreamer1.0すべての基本的なgstreamerパッケージを含む実際のdebパッケージがあるべきだと思いました。
shrx
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.