Armadilloフォーラム

gstreamerのインストール方法について

kominami

2016年11月2日 16時33分

お世話になっております。

gstreamerのインストール方法について、お知恵をお借りしたく存じます。
目的と経緯を以下に記載します。

■目的
・gstreamerのsplitmuxsinkを使用したい
⇒gstreamerの1.5以降のプラグインのgoodに含まれていることが分かった
⇒現在armadilloにはgstreamer1.0.8が入っている
⇒gstreamerを1.6.4にバージョンアップしたい

■行ったこと
1. 下記URLからgstreamerのソースを取得
https://gstreamer.freedesktop.org/src/
・gstreamer-1.6.4.tar.xz
・gst-plugins-base-1.6.4.tar.xz
・gst-plugins-good-1.6.4.tar.xz

2. gstreamer-1.6.4をATDEでクロスコンパイル
[ATDE ~]# cd gstreamer-1.6.4
[ATDE ~]# ./configure --prefix=/home/atmark/gst1.6.4/ --host=arm-linux-gnueabihf --disable-introspection CC=arm-linux-gnueabihf-gcc
[ATDE ~]# make
[ATDE ~]# make install

3. /home/atmark/gst1.6.4以下をユーザランドに含め、バージョンアップを確認
[armadillo ~]# gst-launch-1.0 --version
gst-launch-1.0 version 1.6.4
GStreamer 1.6.4
Unknown package origin

4. gst-plugiins-base-1.6.4をATDEでクロスコンパイル
[ATDE ~]# cd gst-plugiins-base-1.6.4
[ATDE ~]# ./configure --prefix=/home/atmark/gst1.6.4/ --host=arm-linux-gnueabihf --disable-introspection CC=arm-linux-gnueabihf-gcc

~省略~
checking for GST... no
configure: Requested 'gstreamer-1.0 >= 1.6.4' but version of GStreamer is 1.0.8
configure: error: no gstreamer-1.0 >= 1.6.4 (GStreamer) found
⇒ここで困っています

■困っている内容
おそらく、ATDEにgstreamer1.6.4の本体が見当たらないと言われているようですが、
クロスコンパイルしているので/home/atmark/gst1.6.4/の中を見てほしいと思っています。

どうにか/home/atmark/gst1.6.4/を確認するように指定する方法はないでしょうか?

また、試しにATDEの方にgstreamer1.6.4をインストールしてみたのですが、
エラーメッセージは変わらず1.0.8が入っているようだと言われているようです。

どこの何を確認してgstreamerの1.0.8が入っていると言われているか分かる方法はございますか?

また、そもそも私が行ったgstreamerのクロスコンパイルの方法に不備はないでしょうか?

お心当たりや以前gstreamerをインストールした際にどのように行ったかなどの情報をお持ちであれば、
ご教授・ご指摘いただけると幸いです。

以上、何卒よろしくお願いいたします。

コメント

kominami

2016年11月4日 11時08分

その後少し進展があり、報告いたします。

> [ATDE ~]# ./configure --prefix=/home/atmark/gst1.6.4/ --host=arm-linux-gnueabihf --disable-introspection CC=arm-linux-gnueabihf-gcc
>
> ~省略~
> checking for GST... no
> configure: Requested 'gstreamer-1.0 >= 1.6.4' but version of GStreamer is 1.0.8
configureファイルを読んで、
./configure --prefix=/home/atmark/gst1.6.4/ --host=arm-linux-gnueabihf --disable-introspection CC=arm-linux-gnueabihf-gcc GST_CFLAGS=/home/atmark/gst1.6.4/include/gstreamer-1.0/ GST_LIBS=/home/atmark/gst1.6.4/lib GST_NET_CFLAGS=/home/atmark/gst1.6.4/include/gstreamer-1.0/ GST_NET_LIBS=/home/atmark/gst1.6.4/lib GST_BASE_CFLAGS=/home/atmark/gst1.6.4/include/gstreamer-1.0/ GST_BASE_LIBS=/home/atmark/gst1.6.4/lib GST_CONTROLLER_CFLAGS=/home/atmark/gst1.6.4/include/gstreamer-1.0/ GST_CONTROLLER_LIBS=/home/atmark/gst1.6.4/lib
とすることでMakefileを作成することができました。
(LIBSとCFLAGSに指定したら全部そこのフォルダを確認してくれないかと思ったのですが、それはダメでした)

その後、makeしたときに下記のエラーが発生しコンパイルできないため、
現在調査中です。
[ATDE ~]# make --debug
~省略~
This program built for x86_64-pc-linux-gnu
makefile を読み込みます...
最終ターゲットを更新中....
ファイル `all' が存在しません.
ファイル `all-am' が存在しません.
ファイル `libgsttag-1.0.la' が存在しません.
ファイル `libgsttag_1.0_la-gstvorbistag.lo' が存在しません.
ターゲット `libgsttag_1.0_la-gstvorbistag.lo' の再 make が必要です.
make[4]: ディレクトリ `/home/atmark/atmark-dist-20150918onvif/user/gstreamer/gst-plugins-base-1.6.4/gst-libs/gst/tag' に入ります
CC libgsttag_1.0_la-gstvorbistag.lo
gstvorbistag.c:39:30: fatal error: gst/gsttagsetter.h: No such file or directory
compilation terminated.
make[4]: *** [libgsttag_1.0_la-gstvorbistag.lo] エラー 1
make[4]: ディレクトリ `/home/atmark/atmark-dist-20150918onvif/user/gstreamer/gst-plugins-base-1.6.4/gst-libs/gst/tag' から出ます
make[3]: *** [tag] エラー 2
make[3]: ディレクトリ `/home/atmark/atmark-dist-20150918onvif/user/gstreamer/gst-plugins-base-1.6.4/gst-libs/gst' から出ます
make[2]: *** [all-recursive] エラー 1
make[2]: ディレクトリ `/home/atmark/atmark-dist-20150918onvif/user/gstreamer/gst-plugins-base-1.6.4/gst-libs' から出ます
make[1]: *** [all-recursive] エラー 1
make[1]: ディレクトリ `/home/atmark/atmark-dist-20150918onvif/user/gstreamer/gst-plugins-base-1.6.4' から出ます
make: *** [all] エラー 2

引き続き何か情報やご指摘などございましたら、
お知らせいただけると幸いです。

> お世話になっております。
>
> gstreamerのインストール方法について、お知恵をお借りしたく存じます。
> 目的と経緯を以下に記載します。
>
> ■目的
> ・gstreamerのsplitmuxsinkを使用したい
> ⇒gstreamerの1.5以降のプラグインのgoodに含まれていることが分かった
> ⇒現在armadilloにはgstreamer1.0.8が入っている
> ⇒gstreamerを1.6.4にバージョンアップしたい
>
> ■行ったこと
> 1. 下記URLからgstreamerのソースを取得
> https://gstreamer.freedesktop.org/src/
> ・gstreamer-1.6.4.tar.xz
> ・gst-plugins-base-1.6.4.tar.xz
> ・gst-plugins-good-1.6.4.tar.xz
>
> 2. gstreamer-1.6.4をATDEでクロスコンパイル
> [ATDE ~]# cd gstreamer-1.6.4
> [ATDE ~]# ./configure --prefix=/home/atmark/gst1.6.4/ --host=arm-linux-gnueabihf --disable-introspection CC=arm-linux-gnueabihf-gcc
> [ATDE ~]# make
> [ATDE ~]# make install
>
> 3. /home/atmark/gst1.6.4以下をユーザランドに含め、バージョンアップを確認
> [armadillo ~]# gst-launch-1.0 --version
> gst-launch-1.0 version 1.6.4
> GStreamer 1.6.4
> Unknown package origin
>
> 4. gst-plugiins-base-1.6.4をATDEでクロスコンパイル
> [ATDE ~]# cd gst-plugiins-base-1.6.4
> [ATDE ~]# ./configure --prefix=/home/atmark/gst1.6.4/ --host=arm-linux-gnueabihf --disable-introspection CC=arm-linux-gnueabihf-gcc
>
> ~省略~
> checking for GST... no
> configure: Requested 'gstreamer-1.0 >= 1.6.4' but version of GStreamer is 1.0.8
> configure: error: no gstreamer-1.0 >= 1.6.4 (GStreamer) found
> ⇒ここで困っています
>
> ■困っている内容
> おそらく、ATDEにgstreamer1.6.4の本体が見当たらないと言われているようですが、
> クロスコンパイルしているので/home/atmark/gst1.6.4/の中を見てほしいと思っています。
>
> どうにか/home/atmark/gst1.6.4/を確認するように指定する方法はないでしょうか?
>
> また、試しにATDEの方にgstreamer1.6.4をインストールしてみたのですが、
> エラーメッセージは変わらず1.0.8が入っているようだと言われているようです。
>
> どこの何を確認してgstreamerの1.0.8が入っていると言われているか分かる方法はございますか?
>
> また、そもそも私が行ったgstreamerのクロスコンパイルの方法に不備はないでしょうか?
>
> お心当たりや以前gstreamerをインストールした際にどのように行ったかなどの情報をお持ちであれば、
> ご教授・ご指摘いただけると幸いです。
>
> 以上、何卒よろしくお願いいたします。
>

at_yashi

2016年11月10日 17時46分

GStreamerの Cross buildは、面倒ですよね。
もし、さらっとやるなら Debian で self compile をおすすめします。
これなら簡単です。

Cross buildのときも、GStreamer は pkg-config を使っています。なので、
GStreamerの .pc ファイルが見つかるようにすれば、良いはずです。

PKG_CONFIG_LIBDIR を指定するか、pkg-config ではなくarm-linux-gnueabihf-pkg-config を
使うように指定してはどうでしょうか?

kominami

2016年11月11日 8時56分

ご回答ありがとうございます。

現状、Debian環境を作成し、gstreamer1.6.4がセルフコンパイルできるところまで確認しました。
これからacmh264encのコンパイルを試すところです。

教えていただいたクロスコンパイル方法も今後試してみたいと存じます。

また、問題が出ましたらアドバイスをお願いしたいと存じますので、
その際はよろしくお願い申し上げます。

> GStreamerの Cross buildは、面倒ですよね。
> もし、さらっとやるなら Debian で self compile をおすすめします。
> これなら簡単です。
>
> Cross buildのときも、GStreamer は pkg-config を使っています。なので、
> GStreamerの .pc ファイルが見つかるようにすれば、良いはずです。
>
> PKG_CONFIG_LIBDIR を指定するか、pkg-config ではなくarm-linux-gnueabihf-pkg-config を
> 使うように指定してはどうでしょうか?

kes-konishi

2016年11月14日 11時26分

KES)小西です。

今後、他の方にも参考になるかと思い追記させてください。

動作確認済みの1.6.2のセルフビルド手順です。

カーネル:linux-3.4-at17
ファームウェア:squashfs-a800-firmware-v3.02.img

----------------------------------------
パッケージ
----------------------------------------
sudo apt-get install bison
sudo apt-get install flex
sudo apt-get install libtool
sudo apt-get install autoconf

#gst-libav-1.6.2をインストールする場合
sudo apt-get install yasm

----------------------------------------
GStreamer
----------------------------------------
#gstreamer-1.6.2
wget --no-check-certificate http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.6.2.tar.xz
tar xvf gstreamer-1.6.2.tar.xz
cd gstreamer-1.6.2
./configure
make
make install
cd ..

#gst-plugins-base-1.6.2
wget --no-check-certificate http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-…
tar xvf gst-plugins-base-1.6.2.tar.xz
cd gst-plugins-base-1.6.2
./configure
make
make install
cd ..

#gst-plugins-good-1.6.2
wget --no-check-certificate http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-…
tar xvf gst-plugins-good-1.6.2.tar.xz
cd gst-plugins-good-1.6.2
./configure
make
make install
cd ..

#gst-plugins-bad-1.6.2
wget --no-check-certificate http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1…
tar xvf gst-plugins-bad-1.6.2.tar.xz
cd gst-plugins-bad-1.6.2
./configure
make
make install
cd ..

#gst-plugins-at-acm_1.0.2(このバージョンはシーク不可)
wget --no-check-certificate http://download.atmark-techno.com/armadillo-840/cross-dev/source/gst-pl…
tar xzvf gst-plugins-at-acm_1.0.2.tar.gz
cd gst-plugins-at-acm_1.0.2
cd gst-plugin
autoreconf -vfi
./configure
make
make install
cd ../../

#gst-libav-1.6.2(必要に応じてインストールすること)
wget --no-check-certificate http://gstreamer.freedesktop.org/src/gst-libav/gst-libav-1.6.2.tar.xz
tar xvf gst-libav-1.6.2.tar.xz
cd gst-libav-1.6.2
./configure
make
make install
cd ..

セルフビルドなので、その後のROMイメージ組み込みが面倒です。。。(これは別途)