ラズベリーパイ3(ffmpegで自在にカメラ録画編)
ラズベリーパイがだんだん美味しくなった
今日は画像変換パッケージ(ffmpeg)をトッピングして食べてみる
ん?食レポ?、『しゅっワーと広がる感覚が何ともいえません』
早速そのレシピ
(0)Raspbianのバージョンを確認しておく
1 2 |
$ uname -a Linux raspberrypi 4.9.24-v7+ #993 SMP Wed Apr 26 18:01:23 BST 2017 armv7l GNU/Linux |
いつの間にかカーネルバージョンは4.9に上がっていた
(1)ソースからオンボードビルドに必要な開発パッケージ類をinstallする
1 2 |
$ sudo apt-get install -y libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev libsdl2-mixer-dev $ sudo apt-get install -y libfontconfig1-dev libfribidi-dev |
(2)x264のコンパイルとインストール ソースコードは作業用ディレクトリ~/Downloadsに保存する
1 2 3 4 5 6 7 8 9 |
$ cd ~/Downloads $ git clone git://git.videolan.org/x264.git # ソースコートのディレクトリへ移動し、ビルドする $ cd x264 $ ./configure --enable-static --enable-shared $ make $ sudo make install # 共有ライブラリが増えたことをOSに教える $ sudo ldconfig |
(3)ALSAライブラリをビルドする
サウンド出力のプログラミングができるALSA(Advanced Linux Sound Architecture)というライブラリを追加する
raspberry pi(raspbian)にwavファイルを再生する標準で搭載のaplayはALSAを使っている
ALSAライブラリの最新バージョンをホームページ(https://www.alsa-project.org/main/index.php/Main_Page)で確認
(本日現在v1.1.4が最新)
1 2 3 4 5 6 7 8 |
cd ~/Downloads wget ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.1.4.tar.bz2 tar xjvf alsa-lib-1.1.4.tar.bz2 # ffmpegのソースディレクトリに移動しインストール $ cd alsa-lib-1.1.4 $ ./configure --prefix=/home/pi/Downloads/ffmpeg $ make $ make install |
(4)これでx264を使う準備ができた いよいよFFmpegのソースを取得する
1 2 |
$ cd ~/Downloads $ git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg |
(5)FFmpegをビルド
1 2 3 4 5 |
$ cd ~/Downloads/ffmpeg 使用できるバージョンの確認 FFmpegではタグでリリースバージョンの指定が可能 タグの一覧を見る $ git tag -l 本日現在のリリース文ではn3.3の案内が最新 タグを見るとn3.3.1があるのでこれを使う $ git checkout refs/tags/n3.3.1 |
これを実行しなければmasterブランチが使われ最新コードのビルドができるが、開発中の不具合があるのでタグ付けされたバージョンでビルドするのが良い
(6)ビルド条件の設定
Raspberry Piのハードウエアエンコーダh264_omxを使う指定を追加 ”–enable-libx264″を追加
1 |
$ ./configure --enable-gpl --enable-nonfree --enable-libx264 --enable-mmal --enable-omx-rpi --enable-omx --enable-libfreetype --enable-libfontconfig --enable-libfribidi --extra-cflags="-I/home/pi/Downloads/ffmpeg/include" --extra-ldflags="-L/home/pi/Downloads/ffmpeg/lib" --extra-libs=-ldl |
(7)ビルドとINstall
1 2 |
$ make -j4 $ sudo make install |
(8)早速、動画撮影を実行してみる
USBカメラを設置するカンカンとUSBカメラの形状の都合から、270度傾いているので270度回転と上限逆転パラメータ
-vf vflip,transpose=3 -metadata:s:v:0 rotate=0 を指定
1 |
$ ffmpeg -f v4l2 -input_format mjpeg -framerate 30 -video_size 640x480 -i /dev/video0 -f alsa -i hw:1 -c:v h264_omx -vf vflip,transpose=3 -metadata:s:v:0 rotate=0 -b:v 3000k -c:a aac -b:a 32k -f matroska out.mkv |