4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ACCESSAdvent Calendar 2015

Day 3

GStreamer1.0をUbuntu 12.04 で使いたくなったら

Posted at

この記事はACCESS Advent Calendar 3日目の記事です。

こんにちは ACCESS開発本部IoT開発部の加藤 (@aKenjiKato ) です。

Ubuntu 12.04で公式には提供されていないGStreamer1.0を使いたくなることってありますよね。ありますよね

tarballからビルドするのもありですが、Pluginに対応するパッケージを手動で入れる必要があるので、結構面倒です。

幸い、UbuntuにはPPAという野良レポジトリのホスティングサービスがありまして、
GStreamerを配っているPPAレポジトリを使えば行けます。途中までは

このページを見ると大抵のものは提供されているように見えるのですが、
実は欠けているものがあります。

  • gst-plugins-good1.0
  • 開発向けパッケージ (-devで終わるもの)

前者はパッケージのビルドエラーです。ビルドエラーは以下のページからわかります。

後者は単にPPAが提供していないためです。これがいらない人もいるでしょう。

まずはパッケージのビルドエラーから参りましょう。

ビルドエラーのログは以下から取得できます。
https://launchpad.net/~gstreamer-developers/+archive/ubuntu/ppa/+build/5341254

見るべきは以下の箇所です。

configure: Requested 'libpulse >= 2.0' but version of libpulse is 1.1
configure: *** These plugins will not be built: pulseaudio
dh_install: gstreamer1.0-pulseaudio missing files (debian/tmp/usr/lib/*/gstreamer-1.0/libgstpulse.so), aborting
make: *** [binary-install/gstreamer1.0-pulseaudio] Error 2

どうやら、PulseAudioのバージョンが古いことが原因のようです。

解決するにはPulseAudioのバージョンを最新に上げる必要がありますが、Ubuntu 12.04はPulseAudio 1.1までしか提供していません。

そこでやはりPPAです。PulseAudio2.0を提供するPPAがあります。
https://launchpad.net/~ubuntu-audio-dev/+archive/ubuntu/ppa

これをインストールすればビルドエラーは解消...できないのです
このPPAもまた開発用パッケージを提供していないのです。

これを解決するため、パッケージの再ビルドを行います。

パッケージのビルドは、パッケージの元になる*.dscファイルを入手することで行えます。
*.dscファイルは、PPAのページから入手できます。

*.dscファイルが入手出来たら、あとはテンポよくコマンドを叩いていくだけです。

# 再ビルドに必要なツールをインストール
sudo apt-get -y install devscripts

# PPAの追加
sudo add-apt-repository -y ppa:ubuntu-audio-dev/ppa
sudo apt-get update

# pulseaudioをビルドするために必要なパッケージをインストール
sudo apt-get -y build-dep pulseaudio

# 作業用ディレクトリの確保
mkdir tmp
cd tmp

# dscファイルの取得
dget -u https://launchpad.net/~ubuntu-audio-dev/+archive/ubuntu/ppa/+files/pulseaudio_2.0-0ubuntu1%7Eprecise2.dsc

# dget した時点で pulseaudio-2.0 ができているのでその中へ移動
cd pulseaudio-2.0/

# ビルド
dpkg-buildpackage -r -uc -b
cd ..

# パッケージのインストール
dpkg -i *.deb

これでめでたく PulseAudio 2.0 がインストールできました。

次はgst-plugins-good1.0そして開発用パッケージですが、両方とも結局パッケージの再ビルドで作成できます。
同じようにやってみましょう。

# PPAの追加
sudo -E add-apt-repository -y ppa:gstreamer-developers/ppa
sudo apt-get update

# 各パッケージを再ビルドするために必要なパッケージをインストール
sudo apt-get -y build-dep gstreamer1.0
sudo apt-get -y build-dep gst-plugins-base1.0
sudo apt-get -y build-dep gst-plugins-good1.0
sudo apt-get -y build-dep gst-plugins-ugly1.0
sudo apt-get -y build-dep gst-libav1.0

# 作業用ディレクトリの確保
mkdir tmp
cd tmp

# dscファイルの取得
dget -u https://launchpad.net/~gstreamer-developers/+archive/ubuntu/ppa/+files/gstreamer1.0_1.2.1-1%7Eubuntu12.04.1%7Egstdev1.dsc
dget -u https://launchpad.net/~gstreamer-developers/+archive/ubuntu/ppa/+files/gst-plugins-base1.0_1.2.1-2ubuntu1%7Eubuntu12.04.1%7Egstdev1.dsc
dget -u https://launchpad.net/~gstreamer-developers/+archive/ubuntu/ppa/+files/gst-plugins-good1.0_1.2.1-1ubuntu1%7Eubuntu12.04.1%7Egstdev1.dsc
dget -u https://launchpad.net/~gstreamer-developers/+archive/ubuntu/ppa/+files/gst-plugins-ugly1.0_1.2.1-1%7Eubuntu12.04.1%7Egstdev1.dsc
dget -u https://launchpad.net/~gstreamer-developers/+archive/ubuntu/ppa/+files/gst-libav1.0_1.0.8-1%7Eubuntu12.04.1%7Eppa1.dsc 

# 各ディレクトリを回ってパッケージをビルドしていく

cd gstreamer1.0-1.2.1/
dpkg-buildpackage -r -uc -b
cd ..

cd gst-plugins-base1.0-1.2.1/
dpkg-buildpackage -r -uc -b
cd ..

cd gst-plugins-good1.0-1.2.1/
dpkg-buildpackage -r -uc -b
cd ..

cd gst-plugins-ugly1.0-1.2.1/
dpkg-buildpackage -r -uc -b
cd ..

cd gst-libav1.0-1.0.8/
dpkg-buildpackage -r -uc -b
cd ..

# インストール
sudo dpkg -i *.deb

これでGStreamer1.0がUbuntu 12.04で使えるようになりました!

明日も @aKenjiKato です。
よろしくお願いいたします。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?