GoProで撮った画像をiPhoneで見られるようにUbuntuで加工する(その1)
まだ3日なんですよね……すでに達成できる自信がなくなってきたんですけど(^^;
あ、明日から勤労のみなさまお疲れ様です。当方無職なのでのんびり日記などを書いて過ごさせて頂きますです。
さておき、今日は昨日の予告通り、ffmpeg を使って GoPro で撮った画像を iPhone に転送して観られるようにしたよってネタです。ひじょーにしょうもない結果になりましたスミマセン。
GoPro って?
GoPro というのはですねー、ここ数年のエクストリームスポーツ界で非常に使われるようになった小型のスチル&ビデオカメラです。
GoPro HD Helmet HERO ゴープロ ハイディフィニション ヘルメットヒーロー WCHDHH1
- 出版社/メーカー: Go pro
- 発売日: 2010/04/05
- メディア: Personal Computers
- 購入: 2人 クリック: 25回
- この商品を含むブログ (3件) を見る
んでまぁ私はホワイトウォーターカヤックなどを嗜んでおりまして、その楽しみはとても多岐に渡っており非常に魅力的な娯楽だと思ってるのでことあるごとに宣伝してるんですが、どーにもこーにも釣れる人がいませんw
きっと進め方が悪いのかなー、論より証拠で動画とか使ったほうがいいのかしらと思って、アクションカムATC-2K(だっけ)ってのを持ってたんですけど、これSDHC読んでくれないんですよね。ので1時間ぐらいしか動画取れない。さすがにツラすぎるので、eBay経由で購入しました。
んで試しどりしたのだけどだけど
いやーハイデフはやっぱ綺麗ですねー。綺麗なんですけど、ディスク食うんですわ。
手元にあるのが43分流し取りしたやつで、3.9G! ちょっと、持ち歩いてスマートフォンで見せるってわけにはいきません。これは変換してサイズ減らさないとダメですわなー。
つことで、愛用の Ubuntu 11.10 の環境で ffmpeg を使おうとしたら、「あー H.264 はコンパイル時に指定されてないんだわーゴメン!」っていわれちゃった。なんと。権利上の問題でござるかな。動画とかはこれだから色々めんどっちいよもう……。
で、色々調べたんだけど、色々考えるのめんどくさいからもう出てきたハウツーのままやっちゃえ! っていうのが今回のネタでございます。
ffmpeg と x264 の最新をビルドするよ
多分ですが、要求を満たすためには ffmpeg、といっても、Ubuntu の ffmpeg パッケージは、ffmpeg からフォークした libav を元にコンパイルされてるわけですが、まぁそれに --enable-libx264 を付けてリコンパイルすればいいだけだと思うのです。apt-get source でパッケージソース取ってきてビルドしたほうが依存関係とか考えると色々良さそう。
だけど今回はめんどくさかったので Ubuntu のフォーラムに紹介されてたやりかたをそのままトレースしました。ので、以下はこのハウツーをそのままやってるだけなので読まなくていいです。
まずは下準備
今回、ffmpeg と x264 (と libx264-dev) は checkinstall で作ったパッケージをぶち込むので競合するからあっさりとさようなら。
sudo apt-get remove ffmpeg x264 libx264-dev
んでビルドに必要なものをエイヤッと放り込む。
sudo apt-get install build-essential checkinstall git libfaac-dev libjack-jackd2-dev \ libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev \ libva-dev libvdpau-dev libvorbis-dev libx11-dev libxfixes-dev texi2html yasm zlib1g-dev
あ、ハウツーには書いてあるけど一部 multiverse にあるから enable にしておかないとダメすよみたいな。
関係ないけど Debian 系の build-essential って非常に便利で、他のディストリビューション使うと「えーとソフトをビルドするのに必要な最小構成って……?」っていちいち悩んでしまい悲しい。RH 系とか openSUSE にもこういうグループパッケージ的モノってあるのかしら。あったら教えてくだせー。
x264 のインストール
お次は x264 の最新を git で取ってきてビルドして checkinstall で入れる。おもいっきしコピペ。
cd git clone git://git.videolan.org/x264 cd x264 ./configure --enable-static make sudo checkinstall --pkgname=x264 --pkgversion="3:$(./version.sh | \ awk -F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes \ --fstrans=no --default
ここで checkinstall についてはぐぐってくださいね。曲がりなりにもパッケージのフリをしてくれるので便利便利。
ffmpeg のインストール
ハウツーの方は VP8 のライブラリ libvpx のインストールがオプションで挟まるけど今回は省略して、お次は ffmpeg の方。こちらもおもいっきしコピペ。
cd git clone git://git.videolan.org/x264 cd x264 ./configure --enable-static make sudo checkinstall --pkgname=x264 --pkgversion="3:$(./version.sh | \ awk -F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes \ --fstrans=no --default
さっきもそうだけどこの awk の使い方参考になりますね。
さてこれでうまく行くはずなので、試しに:
$ ffmpeg ffmpeg version git-2012-01-03-2ba3416, Copyright (c) 2000-2012 the FFmpeg developers built on Jan 3 2012 20:46:42 with gcc 4.6.1 configuration: --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-nonfree --enable-postproc --enable-version3 --enable-x11grab libavutil 51. 33.100 / 51. 33.100 libavcodec 53. 50.100 / 53. 50.100 libavformat 53. 29.100 / 53. 29.100 libavdevice 53. 4.100 / 53. 4.100 libavfilter 2. 57.101 / 2. 57.101 libswscale 2. 1.100 / 2. 1.100 libswresample 0. 5.100 / 0. 5.100 libpostproc 51. 2.100 / 51. 2.100 Hyper fast Audio and Video encoder usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}... Use -h to get full help or, even better, run 'man ffmpeg'
よし、--enable-libx264 ついてる!
ということで試しにエンコしたらちゃんとできました。ぱちぱち。