猫がお留守番中何をしているのか知るために、ラズパイとwebカメラを使用して、猫が動いたら動画記録し、それをtwitterにuploadするようにしました。
-
インストールしたアプリやライブラリ
- motion(動体検出用)
- ffmpeg(motionでできた動画ファイルをtwitterに合う形にフォーマット変換するため)
- インストールは自前コンパイルが必要なので、以下を参考にした
- twython(楽してtweetするため)
-
処理概要
- motionで動体検出
- 動体検出したら、動画で記録するようにします。
- twitterにuploadするためには、エンコード、コンテナを規定範囲内で作る必要があるが、motionで一旦録画したのち、あとでffmpegで好きなフォーマットに変換することとしたため、とりあえずmpeg4でエンコードとした。解像度は、とりあえず640x320、20fpsとした。
- on_movie_endからpython script()を呼び出して、あとはtwitter投稿までそこで処理させる。
-python script()での処理。- 第一引数に、生成された動画ファイルのfull pathが渡ってくる。
- ffmpegでaviファイルをh264の動画、オーディオなし、mp4コンテナに変換。
- 一定サイズ以上のファイルをtwitterにuploadする
- 一定時間以上たった古いファイルを削除。(お掃除)
- ffmpegでの変換はこんな感じ
- ffmpeg -i hoge.avi -vcodec libx264 -an -f mp4 piyo.mp4
- 第一引数に、生成された動画ファイルのfull pathが渡ってくる。
- motionで動体検出