How to Choose and Use a Raspberry Pi Camera


Last update: June 2020 • 32 • 4.5

The Raspberry Pi is equipped with two DSI and CSI ports (Display Serial Interface and Camera Serial Interface) allowing you to connect a screen or camera specifically designed for it. Indeed, connecting a USB camera will never provide the same quality and image framerate as with the dedicated port.

How to Choose and Use a Raspberry Pi Camera - Raspberry Lab

Prerequisites

En plus d'un Raspberry Pi, you will need a compatible camera for this tutorial. There are 4 main models. To help you make your choice, here is a comparison:

freenove official element14 weewooday
Model Caméra Raspberry Pi
Freenove
Caméra Raspberry Pi Rev 2.1
Marque OFFICIELLE
Caméra Raspberry Pi Rev 2.1
element14
Caméra vision nocturne pour Raspberry
Weewooday
Resolution 5 Megapixels
2592 x 1944 pixels
8 Megapixels
3280 × 2464 pixels
8 Megapixels
3280 × 2464 pixels
5 Megapixels
2592 x 1944 pixels
Sensor N/A Sony IMX219-8 Sony IMX219-8 OV5647
Max Video Resolution 1080p @30fps | 720p @60fps
480p @90fps
1080p @30fps | 720p @60fps
480p @90fps
1080p @30fps | 720p @60fps
480p @90fps
1080p @30fps | 720p @60fps
480p @90fps
Amazon Rating 4.3 4.4 3.6
Price ~13€ ~44€ ~30€ ~20€
More info
freenove official
Model Caméra Raspberry Pi
Freenove
Caméra Raspberry Pi Rev 2.1
Marque OFFICIELLE
Resolution 5 Megapixels
2592 x 1944 pixels
8 Megapixels
3280 × 2464 pixels
Sensor N/A Sony IMX219-8
Max Video Resolution 1080p @30fps | 720p @60fps
480p @90fps
1080p @30fps | 720p @60fps
480p @90fps
Amazon Rating 4.3 4.4
Price ~13€ ~13€
More info
element14 weewooday
Model Caméra Raspberry Pi Rev 2.1
element14
Caméra vision nocturne pour Raspberry
Weewooday
Resolution 8 Megapixels
3280 × 2464 pixels
5 Megapixels
2592 x 1944 pixels
Sensor Sony IMX219-8 OV5647
Max Video Resolution 1080p @30fps | 720p @60fps
480p @90fps
1080p @30fps | 720p @60fps
480p @90fps
Amazon Rating 3.6
Price ~30€ ~20€
More info

Prices given for information only, observed on 01/20/2021.

Now that the module choice is made, let's move on to its use.

Connecting the Camera

Connecting the camera to the Raspberry is very simple. It has its own connector (slot). It is located between the Ethernet port and the HDMI output. Follow the images to properly connect the camera.

Branchement caméra - présentation Branchement caméra

Raspberry Preparation

Now that everything is properly connected, we need to make some settings on the Raspberry side. First, we need to activate the camera interface. To do this, nothing complicated. Enter the following command in the terminal.

sudo raspi-config

Once in the menu, use the arrow keys and the Enter key to navigate between menus.
Go to Interfacing Options then to Camera. Finally, select Yes when asked for activation confirmation and to restart the Raspberry.

raspi-config menu
raspi-config enable camera
raspi-config enable camera

To apply the changes, restart the Raspberry Pi.

sudo reboot



Before continuing...

Camera Detection

Before continuing, here is a command to check if the camera is properly detected:

vcgencmd get_camera

If the displayed line is not supported=1 detected=1, check:

  • That the camera is properly connected,
  • That the camera interface is properly enabled.

If detected is still not 1 after these checks, restart the Raspberry Pi and try to update it:

sudo apt-get update
sudo apt-get upgrade

The camera should now be detected.

Taking a Photo

A. Via Terminal

Let's get to the point! The first thing we're going to do with this camera is take photos. To do this, enter the following commands:

cd
mkdir Camera
raspistill -o ~/Camera/image.jpg -q 100

The first two commands create a folder in the home directory. The third line takes a photo and stores it in the previously created folder.
The raspistill command accepts several arguments, here are the most important:

All arguments can be found by entering raspistill --help in the terminal

To view the taken image, two possibilities:

B. In Python

Taking photos through the terminal is a good start but... it's not great yet. It is much more practical for potential projects to be able to take photos directly inside a Python script. To do this, there is the picamera library. This library is normally installed by default on the Raspberry but nothing prevents checking. So let's run the command:

sudo apt-get install python3-picamera

This time, the library is definitely installed. Let's start by creating a simple Python script that takes and saves a photo (with the date as filename).

Set the resolution?

The camera.resolution line is not mandatory. However, if not specified, the chosen resolution will be 1920x1080, and the photo quality will be very poor (especially in low light). If you want the best possible photo quality, then specify:

  • camera.resolution = (2592, 1944) if you have a 5 MP camera,
  • camera.resolution = (3280, 2464) if you have an 8 MP camera.
Photo upside down?

Rotate a Photo

Depending on how your camera is positioned, the captured image may be upside down. To correct this, add this after the line "camera=PiCamera()":

camera.hflip = True
camera.vflip = True

Which gives the following code:


Other options that can be added in the same place are available for photography enthusiasts, here is a list:

Recording a Video

A. Via Terminal

Now that we master photo taking, let's look at video. To record a 10-second video (10,000 ms) with the filename video.h264, just enter the following command.

raspivid -o video.h264 -t 10000

The options for this command are the same as for photos (like hf and vf for example).

Problem: most video players won't be able to read the .h264 format. For this reason, we will install the MP4Box library which will allow us to convert videos to MP4 format. To install MP4Box, just enter this command:

sudo apt-get install -y gpac

Once the software is installed, run this to convert the file:

MP4Box -add video.h264 video.mp4

The video file is now playable on all devices.

B. In Python

As with photos, let's see how to record videos in Python. If you haven't installed the picamera library as described above (in the In Python section of Taking a Photo), then go back in the article to follow the procedure. Otherwise, we can directly move to the code.
Here is a script that allows you to capture a video in Python and convert it to MP4 automatically:

Information

How to turn off the camera LED?

If you want your camera LED to stay off even when it is in use, just modify the /boot/config.txt file by adding the line disable_camera_led=1 at the end.

Reminder - Edit a file in the terminal:

sudo nano /boot/config.txt

This is where this tutorial ends. All the basics of use are here, but other tutorials around the camera will surely come out (Video surveillance...). The only limit will be imagination!

Read next

Article image

Get temperature with a DS18B20 sensor


Article image

7" touchscreen LCD: test, installation and settings






Ce tutoriel vous a plu ?

starstarstarstarstar

4.5/5 | 51 votes




Commentaires

32 commentaires publiés.

Anonyme, le 09/09/2023 à 21h21
Bonjour,

Lorsque j'autorise le port caméra a fonctionner, je reboot et lors du reboot, le bureau ne s'affiche plus sur mon VNC viewer, si je me connecte en SSH et désactive la camera, alors le bureau s'affiche à nouveau. J'ai une caméra avec infrarouge automatique de chez electreeks.de et elle fonctionne lorsque je tape la commande : libcamera-still -o test.jpg.

pouvez vous m'aider?
Anonyme, le 04/04/2023 à 17h08
Bonjour, j'ai un problème lorsque j'entre la commande raspistill -o~/Camera/image.jpg -q 100, j'ai le message suivant qui s'affiche : Camera control callback cmd : No data reveived from sensor. Check all connections, including the Sunny one the camera board sudo apt-get install python3-picamera.
Pourriez-vous m'éclairer s'il vous plait.
Anonyme, le 14/01/2021 à 12h21
je suis tres content avec votre tuto qui me de choisir le camera rev comme le camera d'un drone audiovisuel en tout je voulais utiliser raspberry pi pour la prise des images et de svideos au lieu de gimbal pour un drone audiovisuel
Anonyme, le 06/12/2020 à 20h45
Merci pour ce tuto.
Grace à vous j'ai pu installer ma première camera sur mon rpi très facilement
Anonyme, le 22/04/2020 à 10h11
Bonjour,
Je souhaiterai faire un nichoir connecté. Mon problème choix de la caméra. Elle doit prendre des photos vidéos couleur lumière jour et avoir une vision nocturne pour la nuit , quelle bascule automatiquement nuit des que luminosité faible. Que me conseillez vous? La caméra sera environ à 20, 30 cm max des oiseaux. Cordialement jcw
Raspberry Lab, le 27/04/2020 à 16h31
Bonjour @Anonyme,
Dans votre cas, cettecaméra à vision nocture semble être la plus adaptée. D'après la description, elle passe en mode nuit automatiquement. Je ne l'ai pas personnellement testé mais je pense qu'elle fonctionne comme celle de ce tuto.

N'hésitez pas à partager votre retour sur le choix que vous avez effectué ! :)

Bonne journée,
Raspberry Lab.
Anonyme, le 12/04/2020 à 11h21
Bravo pour ce tuto, Il est très clair. J'ai rencontré quelques pb mineurs qui m'ont permis de me donner confiance dans le projet en trouvant les solutions.
Vite la suite ! :)
Anonyme, le 06/04/2020 à 10h17
Bonjour,
Quelle est la longueur maxi de la nappe entre le module cam et le Raspberry ?

Cordialement
Anonyme, le 03/12/2019 à 16h27
Bonjour,
je débute sur raspberry, je voudrais savoir si en utilisant une camera USB (webcam), ce programme fonctionnera normal, sinon, est-ce que vous pouvez m'aider
Merci :)
Raspberry Lab, le 03/12/2019 à 17h04
Bonjour,
non, ce tutoriel ne s'adresse qu'aux caméras qui se branchent sur le port dédié du Raspberry Pi (cabre plat). Il y a possibilité de faire fonctionner une Webcam USB sur Raspberry Pi, mais le programme ne sera pas du tout le même. Je vous invite à chercher sur Google, il y a un certain nombre de tutos sur le sujet.

Par exemple ICI.

Bonne journée,
RaspberryLab.
Anonyme, le 31/08/2019 à 16h54
Bonjour
Merci pour le tuto mais je souhaite me renseigner sur un autre sujet même si il ne cadre pas avec ce trio.
Mon problème concerne l'utilisation de raspi3 B+ avec arduino
Alors comment récupérer les donner issues de la carte arduino à partir du port USB de raspi3 pour les utiliser en python quand par
Exemple:je souhaite utiliser arduino avec capteur de température du corps et puis envoyer la température à la carte raspi3. Alors quand la température dépasse le seuil prévu,je vais allumer la caméra avec raspi3 comme vous l'avez montré dans ce tuto.
Prière de me répondre svp.
Raspberry Lab, le 31/08/2019 à 17h35
Bonjour,
Ce tutoriel devrait vous intéresser !

Bonne journée !
Anonyme, le 01/08/2019 à 07h57
Bonjour,

Merci pour ce tuto, tout fonctionne à merveille.
Mais il y a un truc que je n'ai pas compris c'est la parti du script en Python! Ou faut-il rédiger ces lignes? dans un fichier qu'il faut éditer? dans un émulateur particulier?

D'autre part je voulais savoir si c'est possible d'utiliser cette caméra au fil de l'eau. C'est à dire se connecter à un instant T et visionner en live le flux vidéo.
Et cerise sur le gâteau, j'utilise Jeedom est-ce que cela pourrait ce faire dans Jeedom car il y a un plugin "camera" mais c'est pour les caméras connectées en réseau au rapsi.

Merci
Bonne continuation.
Anonyme, le 26/07/2019 à 11h54
bonjour, je souhaiterai programmer sur le Raspberry un lancement de la vidéo avec enregistrement automatiquement. Par exemple, tous les vendredis à 22h00, la caméra s'allume, enregistre et s’éteint à le même jour à 23h00. Est-ce possible ? Merci
Anonyme, le 01/08/2019 à 12h26
Bonjour,
Pour enregistrer de 22 à 23h je dirais : créer un script qui enregistre pendant 1 heure (reprendre l'exemple) et le lancer via cron à 22h (crontab -e puis rajouter une ligne 0 22 * * * /chemin_absolu_vers_le_script/nom_du_script
Ça devrait fonctionner...
Anonyme, le 28/04/2019 à 17h00
Je rencontre le même problème et je n'arrive pas à le résoudre non plus , ni moi ni mon prof d'ISN . Avez vous trouvé une solution ?
Anonyme, le 18/04/2019 à 17h02
Bonjour, j'ai une pi Camera de 5 mp compatible avec mon raspberry pi, j'arrive a voir une vidéo mais celle-ci est pas assez fluide pour pouvoir détecter un mouvement.Je ne comprend pas pourtant il est donné sa la doc technique que la caméra avec une fenêtre de 640*480 elle tourne a 90 fps alors que pas du tous.
J'aimerais savoir si cela vient du programme exécuter ou de raspberry( c'est un raspberry pi 3 de 2011) Merci de m'aider (j'en ai besoin pour mon bac :))
Anonyme, le 22/03/2019 à 16h02
Bonjour
Pour un projet très important j'ai besoin de capturer une image avec la caméra et ensuite de traiter cette image avec un programme. Malheureusement je n'arrive même plus a prendre de photo ou de vidéo avec la caméra. Elle est détectée mais je pense que le dossier n'est pas envoyé au bon endroit, et lorsque j'essaie la commande cd mkdir cela m'indique qu'il n'y a aucun fichier ou dossier de ce type.
Comment faire ?
Merci d'avance
Alexandre.
Anonyme, le 05/04/2019 à 21h36
n'y aurait-il pas un problème de droit en écriture ?
Anonyme, le 07/03/2019 à 14h20
Bonjour,
Tout ça semble facile, mais comment déclencher la prise de photo/video à partir de deux broches GPIO ?
C'est sûrement possible !
Merci
Anonyme, le 26/02/2019 à 16h46
Bonjour,
Au top, ce petit tuto m'aide beaucoup dans ma compréhension de tout ça !
Comment faire pour ajouter du son à la vidéo ?
Merci,
Jérémy L
Raspberry Lab, le 27/02/2019 à 17h22
Bonjour JeremyL,
Merci pour votre retour !
Concernant le son, je vois deux possibilités. On peut soit utiliser un capteur que l'on connecte aux GPIOs (type celui-ci. Sinon il existe des micros qui se connectent directement au Raspberry en USB mais je pense que la première solution est meilleure pour que la caméra et le micro fonctionnent ensemble et en simultané.
Je ne propose actuellement pas de tuto sur les microphones sur le site mais je pense que l'idée d'en faire un est bonne, je vais essayer de le faire dès que possible (malheureusement je suis très occupé en ce moment..).
D'autres tutos doivent déjà être écrit sur le sujet en cherchant sur Google.

Cordialement,
RaspberryLab.
Anonyme, le 30/01/2019 à 05h14
Bonjour, saurait-tu comment faire un live streaming a partir de la caméra via VLC ou autre ?
Anonyme, le 20/04/2019 à 01h44
SI vous cherchez à enregistrer des vidéos ou photographier sur de la détection de mouvement, installez le paquet motion

Anonyme, le 26/01/2019 à 08h45
Bonjour,
Tuto nickel est testé en photo et vidéo.
Avez-vous tester la possibilité de renvoyer le signal vidéo sur un émetteur wifi pour recevoir le flux vidéo en direct sur un écran équipe d'un récepteur?
si oui quel matériel et soft avez vous testé.
Merci.
Anonyme, le 10/01/2019 à 16h54
Merci ! J'ai ajouté une boucle for pour avoir plusieurs photos espacées de 0,5 seconde et c'est nickel pour mon projet de surveillance.
Par contre, pour la vidéo, juste par curiosité, j'ai la même erreur que Laurent91 : seul le fichier h264 se crée et j'ai l'erreur suivante : sh: 1: MP4Box: not found.
Raspberry Lab, le 10/01/2019 à 18h06
Salut fryd71,
Content que tout marche bien en ce qui concerne la photo !
Pour ce qui est de la vidéo, avez-vous bien installé la librairie MP4Box ? (sudo apt-get install -y gpac) ? Il doit falloir appuyer sur 'y' pour approuver l'installation. Sinon, essayez de faire un :

sudo apt-get update
sudo apt-get upgrade


Si cela ne marche toujours pas, signalez-le moi et je re-testerai le tuto sur mon Raspberry remis à zéro pour trouver la solution au plus vite.
Anonyme, le 24/01/2019 à 12h08
Effectivement je n'avais pas installé la librairie.... Merci pour ce tuto, continuez comme ça!
Raspberry Lab, le 24/01/2019 à 12h35
Merci à vous, bonne continuation sur le Raspberry !
Anonyme, le 07/11/2018 à 16h47
Bonjour,
j'ai testé l'enregistrement de la video puis sa transformation en MP4: cette dernière ne fonctionne pas.
Le fichier continue à s'enregistrer en h264.
Peux-tu me conseiller?
Merci
Raspberry Lab, le 08/11/2018 à 21h54
Salut Laurent91,
Peux-tu m'en dire plus sur ton problème ? C'est en Python ou par le terminal que tu as le soucis ? Saches que la commande qui permet de convertir le fichier h264 en mp4 conserve les deux fichiers donc peut-être ne vois tu pas le fichier mp4 ?
Anonyme, le 04/05/2018 à 07h18
Bonjour, je voudrai avoir la video sur la machine que j'utilise car mon raspberry est en hhs, comment faire pour voir les photo et le video sur l'écran que j'ai commande . Une autre procupation est d'activé la camera sans enregistré, juste voir en video sans enregistré


Commenter
Votre adresse mail ne sera pas visible sur le site.

Les commentaires sous soumis à vérification avant publication.