ffmpeg est un excellent outil. Il nécessite de bonnes performances matérielles mais donnera des vidéos de qualité.
Pour l'installer, vous connaissez la chanson :
# pkg_add ffmpeg
Tout d'abord, nous avons besoin d'en savoir un peu plus sur notre webcam. Après
l'avoir branchée, tapez dmesg
pour voir par exemple :
uvideo0 at uhub2 port 2 configuration 1 interface 0 "Logitech product 0x0825" rev 2.00/0.12 addr 3 video0 at uvideo0
Cela nous indique que la webcam est disponible via /dev/video0
. Afin de
pouvoir s'en servir sans être super-utilisateur, modifiez les permissions :
# chmod 666 /dev/video0
Une fois que ceci est connu, nous avons besoin de savoir quels formats propose notre webcam. Tapez alors ceci :
$ ffmpeg -f v4l2 -list_formats all -i /dev/video0
Vous obtiendrez un résultat comme :
[video4linux2,v4l2 @ 0x2d76dd93800] Raw : yuyv422 : YUYV : 640x480 160x120 176x144 320x176 320x240 352x288 432x240 544x288 640x360 752x416 800x448 800x600 864x480 960x544 960x720 1024x576 1184x656 1280x720 1280x960 [video4linux2,v4l2 @ 0x2d76dd93800] Compressed: mjpeg : MJPEG : 640x480 160x120 176x144 320x176 320x240 352x288 432x240 544x288 640x360 752x416 800x448 800x600 864x480 960x544 960x720 1024x576 1184x656 1280x720 1280x960
Cela nous indique la liste des résolutions possibles et les formats vidéos associés.
Maintenant, nous allons configurer le serveur qui va se charger de diffuser la vidéo.
Copions le fichier de configuration dans /etc/ffserver.conf
:
# cp /usr/local/share/examples/ffmpeg/ffserver.conf /etc/ffserver.conf
Nous pouvons maintenant éditer ce fichier pour l'adapter à nos besoins. Je recopie ci-dessous le fichier sans les commentaires :
HTTPPort 8090 HTTPBindAddress 0.0.0.0 MaxHTTPConnections 2000 MaxClients 1000 MaxBandwidth 1000 CustomLog - <Feed feed1.ffm> File ./feed1.ffm FileMaxSize 1G ACL allow 127.0.0.1 # Acces seulement en local à ce fichier </Feed> <Stream webcam.webm> Feed feed1.ffm Format webm # Audio settings NoAudio # Video settings VideoCodec libvpx VideoSize 320x240 # Video resolution VideoFrameRate 25 # Video FPS AVOptionVideo flags +global_header AVOptionVideo cpu-used 0 AVOptionVideo qmin 5 AVOptionVideo qmax 35 AVOptionAudio flags +global_header PreRoll 15 StartSendOnKey </Stream> <Stream status.html> # Server status URL Format status # Only allow local people to get the status ACL allow localhost ACL allow 192.168.0.0 192.168.255.255 </Stream> <Redirect index.html> # Just an URL redirect for index # Redirect index.html to the appropriate site URL http://www.ffmpeg.org/ </Redirect>
Notez que le serveur écoute par défaut sur le port 8090, il faudra donc penser à l'ouvrir dans le parefeu.
Afin de lancer la diffusion, saisissez la commande suivante :
ffmpeg -f v4l2 -video_size 320x240 -i /dev/video0 http://localhost:8090/feed1.ffm
Pour regarder votre flux, ouvrez un navigateur à l'adresse suivante :
http://chezmoi.tld:8090/webcam.webm
Pour obtenir des informations sur le flux,
Vous pouvez aussi consulter la page http://chezmoi.tld:8090/status.html