前回のコラム『Raspberry Pi専用カメラモジュールで遊ぼう part 1』では、カメラモジュールで制止画を撮影する方法を説明しましたが、今回は動画について説明していきたいと思います。
カメラモジュールを使用するには、まずはじめにRaspberry Piのファームウェアを最新のものにアップデートする必要があります。セットアップ手順はpart 1(第5回)のコラムをご覧ください。
Raspberry Pi専用のカメラモジュールでは1080p(1920x1080ピクセル)で動画を撮影することができます。Raspberry Piの場合、USB接続のWebカメラでは320x240ピクセルでさえカクカクした動画になってしまうことがありますが、このカメラモジュールを使えば非常に滑らかな動画の撮影が可能になります。
動画の撮影にはraspividコマンドを使用します。-oオプションで保存したいファイル名を指定します。-tオプションは撮影する秒数の指定で、単位はミリ秒です(1000=1秒)。10秒撮影する場合は-t 10000と指定します。
撮影した動画をRaspberry Piに接続したディスプレイで再生するには、omxplayerコマンドで表示させることができます。omxplayerの引数にファイル名を指定するだけでRaspberry Piのディスプレイ上で再生され、1080pの動画であってもとても滑らかに再生できるのが特徴です。
omxplayerはとても便利です。デスクトップ環境を使用していなくても動画を画面に出力できるので、コマンドラインから容易に動画の再生ができます。特にshell scriptと組み合わせて、自動的に動画を再生するようなシステムを作るときに便利です。
raspividコマンドは標準では1080p(1920x1080ピクセル)で撮影されますが、高解像度なぶん、たった10秒間撮影しただけでも20MBものファイルサイズになってしまいます。解像度を下げればファイルサイズも小さくなりますので、保存する画面サイズを変更したい場合は-w(横)と-h(縦)オプションで変更してみるとよいでしょう。
-bオプションでビットレートを変更することができます。たとえば10MBits/sにしたい場合は-b 10000000とします。
raspividコマンドにはこのほかにも画質の調整オプションがあったり、エフェクト機能などもありますので、詳しくは引数を付けずにraspividコマンドを実行してHELPを見てみてください。
またffmpegをインストールすれば、カメラの映像を動画配信サービスにも配信することができます。動画の配信は配信サービスがやってくれますので、何百人が同時にアクセスしてきても視聴することができます。
以下はカメラのH.264形式の映像をFLV形式に変換してUstreamに送信する例です。(RTMP URLとストリームキーはご自身の番組のものに書き換えてください)
次回のコラムではGPIOポートにボタンを取り付けて”デジカメ”の作成に挑戦します。
カメラモジュールを使用するには、まずはじめにRaspberry Piのファームウェアを最新のものにアップデートする必要があります。セットアップ手順はpart 1(第5回)のコラムをご覧ください。
Raspberry Pi専用のカメラモジュールでは1080p(1920x1080ピクセル)で動画を撮影することができます。Raspberry Piの場合、USB接続のWebカメラでは320x240ピクセルでさえカクカクした動画になってしまうことがありますが、このカメラモジュールを使えば非常に滑らかな動画の撮影が可能になります。
動画の撮影にはraspividコマンドを使用します。-oオプションで保存したいファイル名を指定します。-tオプションは撮影する秒数の指定で、単位はミリ秒です(1000=1秒)。10秒撮影する場合は-t 10000と指定します。
$ raspivid -o video.h264 -t 10000
撮影した動画をRaspberry Piに接続したディスプレイで再生するには、omxplayerコマンドで表示させることができます。omxplayerの引数にファイル名を指定するだけでRaspberry Piのディスプレイ上で再生され、1080pの動画であってもとても滑らかに再生できるのが特徴です。
$ omxplayer video.h264
omxplayerはとても便利です。デスクトップ環境を使用していなくても動画を画面に出力できるので、コマンドラインから容易に動画の再生ができます。特にshell scriptと組み合わせて、自動的に動画を再生するようなシステムを作るときに便利です。
raspividコマンドは標準では1080p(1920x1080ピクセル)で撮影されますが、高解像度なぶん、たった10秒間撮影しただけでも20MBものファイルサイズになってしまいます。解像度を下げればファイルサイズも小さくなりますので、保存する画面サイズを変更したい場合は-w(横)と-h(縦)オプションで変更してみるとよいでしょう。
$ raspivid -o video.h264 -t 10000 -w 640 -h 480
-bオプションでビットレートを変更することができます。たとえば10MBits/sにしたい場合は-b 10000000とします。
$ raspivid -o video.h264 -t 10000 -b 10000000
raspividコマンドにはこのほかにも画質の調整オプションがあったり、エフェクト機能などもありますので、詳しくは引数を付けずにraspividコマンドを実行してHELPを見てみてください。
またffmpegをインストールすれば、カメラの映像を動画配信サービスにも配信することができます。動画の配信は配信サービスがやってくれますので、何百人が同時にアクセスしてきても視聴することができます。
以下はカメラのH.264形式の映像をFLV形式に変換してUstreamに送信する例です。(RTMP URLとストリームキーはご自身の番組のものに書き換えてください)
#!/bin/sh
RTMP_URL="rtmp://x.xxxxxxxx.fme.ustream.tv/ustreamVideo/xxxxxxxx"
STREAM_KEY="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
raspivid -o - -t 99999999 -w 352 -h 288 \
| avconv -f h264 -i - \
-b 800k \
-f flv "$RTMP_URL/$STREAM_KEY flashver=FME/3.0\20(compatible;\20FMSc/1.0)"
次回のコラムではGPIOポートにボタンを取り付けて”デジカメ”の作成に挑戦します。