はじめに
今回はRaspberryPiのLite版OSでカメラ撮影をできるようにします。
私の環境はMacのため、Windowsの方は所々変わってしまうと思います。
Raspberry Piにカメラを繋げる
※まずはラズパイ本体にカメラを繋いでください。
PCからラズパイにSSH接続します。
まず行ったことは
sudo raspi-config
です。カメラ機能をONにしようと思ったんですが・・・
Interface Optionsにカメラの項目がありませんでした。
調べたところ2022年ごろからカメラの項目は削除されたようです。
写真を撮る
とりあえず写真を撮るコマンドを入力してみました。
libcamera-jpeg -o test.jpg
すると、問題なく撮影できました。
※少し補足
上記のコマンドが使用できない場合は、パッケージのインストールが必要なので、手動で必要なパッケージをインストールします。
sudo apt update sudo apt install libcamera-apps libcamera-dev v4l-utils
を実行します。
※さて戻ります。
lsコマンドで確認します。
ls
Lite版なのでここから手間が掛かりますが、撮影した写真を確認したいと思います。
確認するにはラズパイからPCに写真をコピーします。
※ここで少し手こずったので、記録としてやり方を残します。
Macのターミナルからscpでラズパイのファイルをコピーする
まずはすぐに実行できたこちらを説明します。
一度exitコマンドでSSH接続を切ります。
exit
scpコマンドでラズパイからお使いのデスクトップに写真をコピーします。
scp pi@raspberrypi.local:/home/pi/test.jpg ~/Desktop/
[scp]はSSH経由でファイルをコピーするコマンド
[pi@raspberrypi.local:]はRaspberry PiのSSH接続先(ユーザー名+ホスト名)
[/home/pi/test.jpg]はコピーしたいPi側のファイルパス
[~/Desktop/]はMac側の保存先(PCのデスクトップ)
デスクトップを確認するとコピーしたファイルが確認できます。
ターミナル上でもデスクトップに移動し、
open test.jpg
と入力すると画像が確認できます。
ラズパイからMacにscpでファイルをコピーする
次に少し手こずった方を説明します。
結論から言うとリモートログインのアクセス許可の無いユーザーで作業していたため、SSHがすぐに切断されてファイルをコピーできませんでした。(Qiitaに載せやすいようにフルネームではない別のユーザーを作ったためです)
まず、ラズパイにSSH接続している状態でscpコマンドでMacにファイルをコピーします。
scp test.jpg masanao@Masanao-Air.local:~/Desktop/
ですが、ここでSSHが切断されましたと表示されました。
IPアドレスでやっても同じだったので調べたところ次の方法で解決しました。
まずMacのシステム設定<共有<リモートログインをONにします。
そして、デフォルトでは[次のユーザーのみ]にチェックが入り[Administrators(管理者)]になっていると思います。
ここから次のどれかを行います。
-
アクセス許可を全てのユーザーにする(なんとなく不安だったのでやめました)
-
+ボタンから今のユーザーを選択して追加(こちらで問題ないと思います)
-
そのままの状態でログアウトし、管理者権限のあるユーザーでPCにログイン、システム設定<ユーザーとグループ<ユーザーを選択し、[管理を許可]にチェック(今後同じように権限がなくて弾かれることを避けるために管理者権限を付与しました。)
上記を行い、再度scpコマンドを実行します。
scp test.jpg masanao@Masanao-Air.local:~/Desktop/
デスクトップを確認すると無事にコピーができていました。
調べる中で他にもMac側の原因でMacへのSSH接続ができていない可能性や、ファイヤウォールの設定などがあるようですので、こちらの方法で上手くコピーできない場合は調べてみてください。
動画を撮る
次に動画を撮ってみます。
libcamera-vid -t 10000 -o test.h264
こちらのコマンドでは動画を.h264形式で出力します。
[-t 10000]は10秒の動画を撮影します。1000で1秒です。
作成した動画ファイルをscpコマンドでPCにコピーして確認すると、、、
・・・確認できませんでした。
.h264形式では「アプリケーションが認識できませんでした」と表示されました。
と言うわけでMP4に変換します。
ffmpeg -i test.h264 -c copy test.mp4
で変換できます。
ffmpegが入っていない場合は次のコマンドでインストールします。
sudo apt install ffmpeg
変換したファイルをscpでPCにコピーして確認すると、ちゃんと撮影できていました。
これで無事に写真と動画の撮影ができることが確認できました。
※補足 .h264と.mp4の違い
せっかく調べたので補足として記録しておきます。
特徴 | .h264 |
.mp4 |
---|---|---|
正体 | 映像の圧縮形式(コーデック) | 動画ファイルの容器(コンテナ) |
中身 | 生の映像データのみ | 映像、音声、字幕などをまとめたもの |
拡張子の例 | video.h264 |
video.mp4 |
再生のしやすさ | 再生できない環境が多い | ほとんどのメディアプレイヤーで再生可能 |
使用目的 | 一時ファイル、編集用、変換前など | 完成した動画、配信・保存・共有用 |
Raspberry Piで撮影直後は .h264 → 軽くて保存が速い
あとで .mp4に変換 → 他のデバイスやアプリで再生しやすくなる
といった感じです。
さいごに
この辺ではまだDesktopがない弊害が出ているように感じますが、この先カメラを使ったプログラムを作っている中でファイルのコピーも自動化すれば問題ないと思っています。