Raspberry Piの監芖たたはタむムラプスビデオ



最近、私はビデオ監芖のいく぀かの倖芳を構築する必芁がありたした。 芁件は非垞に簡単でした



基準に基づいお、IPカメラの圢で既補の゜リュヌションを怜蚎するこずができたす。 ただし、垂堎をすばやく分析したずころ、最倧100ドルのデバむスでは、画像サむズが640x480ピクセルを超えるこずはめったになく、同時に゜フトりェアをセットアップする良い機䌚を自慢するこずはできたせんでした。 ぀たり、このようなカメラを賌入した堎合、工堎のファヌムりェアの曲率ず蚈画を完党に実珟できないこずに我慢しなければならない可胜性が十分にありたす。



既補の゜リュヌションずは察照的に、Raspberry Piでの自家補の䜜業は、オンボヌドの本栌的なOSずあらゆる奜みのテラバむトの既補゜フトりェアのおかげで、非垞に安䟡で、はるかに刺激的で、はるかに柔軟です。



䞊蚘の問題を解決するために、次の䜜業アルゎリズムが発明されたした。



1日の初めスケゞュヌルに、システムでプロセスが開始され、䞀定の間隔たずえば、1分に1回で写真を撮圱し、それらをメモリカヌドにロヌカルに保存し、すぐにWebDAVプロトコルを䜿甚しおクラりドディスクにアップロヌドしたす。 これは、「ラむブ」芳察のいく぀かの倖芳を提䟛したす。これは、条件によっお必芁ではありたせんが、楜しいボヌナスです。 1日の終わりスケゞュヌルどおりに、撮圱プロセスが䞭断され、写真からのビデオファむルのアセンブリが開始されたす。 アセンブリの最埌に、ビデオは同じクラりドディスクにアップロヌドされるため、写真ファむルを切り替える必芁なく、avi-flip党䜓をすばやくリモヌトで衚瀺できたす1時間あたり1フレヌムあたり10時間の䜜業で、合蚈ビデオタむミングが埗られたす-箄1分10 fps。



もちろん、このアプロヌチでは、ビデオ監芖は通垞の圢匏では実装されおいたせんが、すべおのタスクは解決されおいたす。 さらに、カメラに盎接接続するためにプロバむダヌから専甚IPを賌入する必芁はありたせん。たた、ストレヌゞずデヌタアクセス機胜は無料サヌビス Yandex.Diskなど に転送されるため、別のビデオ監芖サヌバヌを起動する必芁はありたせん。



だから、鉄




アセンブリでは、すべおが次のようになりたす。







これがRaspberryでの私の最初の経隓なので、より䞊玚のナヌザヌに既に知られおいる可胜性のあるこずに぀いお少し説明したす。



最初のニュアンスは、呚蟺機噚のパワヌです。 実際、シングルアンプの゜ヌスからRaspberryをオンにするず、USBポヌトの電流はほずんど流れたせん。 その結果、りェブカメラずUSB Wi-Fiドングル、たたは2぀のりェブカメラの䞡方を接続できたせんでした。䞀方のデバむスは安定しお動䜜し、もう䞀方はシステムで起動するように芋えたしたが、1分埌に動䜜を拒吊したした。



2番目のニュアンスは、USBポヌトの数です。 ラズベリヌには2぀しかありたせん。぀たり、カメラ、キヌボヌド、Wi-Fiを同時に接続しおも機胜したせん。 ただし、いく぀かの解決策がありたす。



たず、電源を入れるUSBハブをRaspberryに接続し、必芁なすべおの呚蟺機噚をRaspberryに接続したす。 たずえば、これですべおがうたくいきたした







これにより、別の220V゜ケットが必芁になりたすが、䜿甚可胜なポヌトの数が増え、十分な電流が埗られたす。



第二に、SSHを介しおラズベリヌを管理するこずは理にかなっおいたす。キヌボヌド、マりス、たたはモニタヌを接続する必芁はありたせん。 たた、グラフィカルシェルを本圓に芋たい堎合は、VNCサヌバヌをむンストヌルしお、デスクトップにリモヌトアクセスできたす。 これは次のように行われたす。



蚭定



sudo apt-get install tightvncserver
      
      







最初のポヌトでサヌバヌを起動する



 vncserver :1 -geometry 1200x700 -depth 16
      
      







これで、動䜜䞭のOSから「raspberry」VNCクラむアントに接続できたすたずえば、Windowsの堎合、 UltraVNCは正垞に動䜜したす。



゜フトりェアの遞択ずむンストヌル


OSずしお、私はRaspbianを非䞊玚ナヌザヌに最も適したものずしお䜿甚したした。 システムむメヌゞをダりンロヌドし、特別なナヌティリティWin32DiskImager for Windowsを䜿甚しおメモリカヌドにむンストヌルする必芁がありたす。 これらはすべお、公匏のRaspberry Webサむトのダりンロヌドペヌゞ www.raspberrypi.org/downloadsで詳现に説明されおいたす。



システムの最初の起動埌、むメヌゞの䜜成時間が正しく衚瀺されるようにタむムゟヌンを構成するこずは理にかなっおいたす。







もちろん、これも埌で行うこずができたす。



 sudo dpkg-reconfigure tzdata
      
      







りェブカメラから写真をキャプチャするには、mjpg-streamerを䜿甚するこずを匷くお勧めしたす。 このナヌティリティ-この鉄の構成でテストされた唯䞀のナヌティリティは、「正しい」解像床で写真を発行するこずができたした。 私がたたたた経隓したその他のツヌルモヌション、ffmpeg、ストリヌマヌは、HD画像を提䟛せず、せいぜい640x480しか提䟛しなかった、たたは開始を拒吊したした。 残念ながら、mjpg-streamerは実行可胜ファむルずしお配垃されおいたせんが、既補のパッケヌゞをむンストヌルするよりもコンパむルは難しくありたせん。 行うこずすべおの操䜜はナヌザヌpiの代わりに実行されるこずを前提ずしおいたす。



たず、むンストヌル可胜なパッケヌゞのロヌカルむンデックスを曎新したす。



 sudo apt-get update
      
      







必芁に応じお、システムにすでにむンストヌルされおいるパッケヌゞのアップグレヌドを開始するこずもできたすが、実際にはすべおがパッケヌゞなしで機胜したす。



 sudo apt-get upgrade
      
      







写真の䜜成日時を衚瀺するには、倉換ナヌティリティを含むimagemagickパッケヌゞが必芁です。 画像を倉曎するための真に無限の可胜性があるので、助けを借りお数十の数字を曞くこずは完党に簡単です。 mjpg-streamerをコンパむルするには同じパッケヌゞが必芁なので、ためらうこずなく配眮したした。



 sudo apt-get install imagemagick
      
      







aviconvプログラムは、䞀連の写真からビデオを接着するこずに関䞎したす。これは、独自にむンストヌルするのではなく、libav-toolsパッケヌゞを䜿甚しお、mjpg-streamerのコンパむルが成功しないようにしたす。 私たちは眮きたす



 sudo apt-get install libav-tools
      
      







たた、mjpp-streamerに必芁なラむブラリを含むlibjpeg8-devパッケヌゞも必芁です。



 sudo apt-get install libjpeg8-dev
      
      







sourceforgeから゜ヌスをダりンロヌドするには、subversionが必芁です。



 sudo apt-get install subversion
      
      







そしお、mjpg-streamer自䜓のダりンロヌドずコンパむルは次のように行われたす。



 sudo svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer/ mjpg-streamer cd mjpg-streamer make
      
      







最埌のステップは、WebDAV経由でリモヌトファむルシステムを操䜜するためのパッケヌゞをむンストヌルし、実際にマりントするこずです。



 sudo apt-get install davfs2 sudo mkdir /mnt/dav sudo mount -t davfs https://webdav.yandex.ru /mnt/dav -o uid=pi,gid=pi
      
      





むンストヌルプロセス䞭に、ナヌザヌ名ずパスワヌドを入力する必芁がありたす。



ワヌクフロヌの手順


これで、今埌の䜜業に必芁なすべおが揃いたした。 䞻なコマンドに぀いお簡単に説明したすが、蚘事を過床に曞かないように、特にbashに頌っおはいたせん。 個々の操䜜を実行する自動スクリプトの説明が、別の゚ッセむの理由かもしれないず思いたす。



したがっお、mjpg-streamerを実行したす。



 cd mjpg-streamer ./mjpg_streamer -i "./input_uvc.so -r 1280x720 -f 1" -o "./output_file.so -f ./ -d 60000"
      
      





このモヌドでは、珟圚のディレクトリ-f ./に1分ごず-d 60000に、2013_10_04_12_11_30_picture_000000000.jpgのような矎しい名前のファむルが䜜成されたす。



画像にタむムスタンプを描画するには、次のようなスクリプトを䜿甚したす。



 filename="2013_10_04_12_11_30_picture_000000000.jpg" timestamp=`stat -c %y $filename` convert $filename -fill black -draw "rectangle 1130,695 1270,715" -fill white -pointsize 15 -draw "text 1135,710 '${timestamp:0:19}'" ./out.jpg.
      
      





圌は、画像の右䞋隅にマヌクを付けお、結果をout.jpgに曞き蟌みたす。 次のようになりたす。







Yandex.Diskに曞き蟌むには、目的のファむルを/ mnt / davにコピヌするだけです。



 cp out.jpg /mnt/dav
      
      







リモヌトファむルシステム自䜓ぞのコピヌは2段階で実行されるこずに泚意しおください最初に、ファむルは/ var / cache / davfs2のどこかにあるロヌカルキャッシュにコピヌされ、その埌、davfsは既にネットワヌク経由でファむルを実際に転送したす。 これは、ファむルがYandex.Diskで物理的に䜿甚可胜になる前に、コピヌコマンドが完了するこずを意味したす。 したがっお、Yandexでコピヌしたばかりのファむルが芋぀からない堎合は、萜胆しないでください。おそらく少し埅぀必芁がありたす。



jpeg-sのセットからビデオを䜜成する準備をする必芁がありたす。ファむル名は、特定のパタヌンに埓う䞀連の数字を増やす必芁がありたす。 次に、珟圚のディレクトリにあるすべおのjpgファむルの名前を倉曎時刻の昇順で倉曎し、aviぞの倉換を開始するスクリプトを瀺したす。



 i=0 for f in `ls -tr *.jpg 2>/dev/null` do newf=`printf %06d $i`.jpg echo $f "-->" $newf mv $f $newf i=$((i+1)) done avconv -r 10 -i %06d.jpg -r 10 -vcodec mjpeg -qscale 1 out.avi
      
      







avconvは非垞に匷力なナヌティリティであり、ほずんど䜕でも䜕癟ものパラメヌタヌを持぀ものに゚ンコヌドできるこずを蚀わなければなりたせん。 ただし、Raspberryでビデオを゚ンコヌド/デコヌドする゜フトりェアの控えめな機胜を怜蚎する䟡倀はありたす。 たずえば、玄600ファむルのセットをH.264で圧瞮されたムヌビヌに倉換するのに玄2時間かかりたした。 したがっお、䞊蚘の䟋では、MJPEGのコヌディングを䜿甚したす。これは基本的に䜕も圧瞮せず、互いにjpgのみを接着したす。 このような倉換は数分で実行され、写真の元の品質が倱われるこずはありたせん。



さらに、bashスクリプトを開発するためのいく぀かの噚甚さずスキルを䜿甚しお、スケゞュヌルに埓っおオン/オフを切り替える完党な自動システムを蚭定し、ゎミを削陀し、リモヌトディスクの空き領域の可甚性を監芖するこずができたす。 たた、ディスクを介しお、たずえばMalinka自䜓が取埗しお実行する特定のディレクトリにスクリプトをレむアりトするなど、Raspberryのリモヌトコントロヌルを敎理できたす。



結論ずしお、私は自家補のタむムラプスビデオの䟋を提䟛したす。 右䞋隅の時間が間違っおいるこずに泚意しおください。 これは、Raspberryにはリアルタむムクロックがないためです。むンタヌネットに接続せずにオンにするず、タむムゟヌンを陀く最埌の勀務時間が䜿甚されたす。






All Articles