DEV Community

Remy Jacquand
Remy Jacquand

Posted on • Edited on

Streamer une capture vidéo de sa webcam avec VLC

Dans cette note, je vais énumérer les étapes afin de streamer une webcam depuis VLC. Dans un premier temps, je détaillerai comment capturer la vidéo de la webcam avec VLC et ensuite comment l'envoyer dans un flux HTTP par l'interface graphique et, finalement, en ligne de commande dans le but de l'intégrer dans un projet annexe.

note à moi même :
Toute l'opération se passe dans un environnement Linux. Pour Windows, c'est sensiblement la même chose. Cependant, mes essais sous Windows 11 n'ont pas pu aboutir à cause du problème suivant :
dshow:// non accéssible

Depuis l'interface graphique de VLC

La capture vidéo

Pour capturer le flux vidéo de la webcam, ouvrir VLC et rendez-vous sur Média > Ouvrir un périphérique de capture (Ctrl+C)

Dans cette fenêtre, l'onglet "Périphérique de capture" est sélectionné.

Puis, configure les options suivantes:

  • Sélectionner "Video Camera" dans "Capture mode"
  • Nom du périphérique vidéo > /dev/video0
  • Nom du périphérique audio > hw:0,0
  • Standard vidéo > Tous

Ces options correspondent à mon système actuel est peuvent être différente en fonction des versions du soft.

Terminer la configuration en cliquant sur le bouton "Lire" en bas de la fenêtre.

ouvrir media capture

Stream vidéo

Afin de Streamer sa webcam depuis VLC
Media > Stream (ou Ctrl+s)

Sélectionner l'onglet "Périphérique de capture"

La configuration à adopté est la même que la capture de vidéo.

Puis cliquer sur "Stream"

ouvrir media stream

Valider la fenêtre suivante "Source", valider sans changer les options.

configure source stream

Ensuite, dans la fenêtre "Destination setup", sélectionner la destination "HTTP" et cliquer sur "Ajouter". Un onglet HTTP va s'ajouter avec le paramétrage du port souhaité (par defaut 8080) ainsi que le chemin d'accès (par défaut /)

selection flux http stream

configure flux http stream

Dans la fenêtre correspondant à l'encodage, sélectionner le profil MP4.

configure transcodage stream

Pour finir, dans la fenêtre des options, appuyer simplement sur le bouton stream.

configure flux sortie stream

Votre stream est en cours et accessible à l'adresse IP de la machine sur le port sélectionné précédemment.

En ligne de commande

Voici de manière brève la commande correspondant à mon besoin et à la configuration effectué précédemment.

vlc -vvv v4l2:///dev/video0 --sout '#transcode{vcodec=h264,acodec=mpga,vb=800,ab=128}:standard{access=http,mux=flv,dst=:8080}'
Enter fullscreen mode Exit fullscreen mode

En quelques mots:

  • vvv : verbose
  • v4l2:///dev/video0 : la capture de ma webcam
  • --sout : paramètre de sortie de video
  • #transcode{vcodec=h264,acodec=mpga,vb=800,ab=128} : encodage
  • :standard{access=http,mux=flv,dst=:8080} : ouverture http + format de la vidéos + adresse d'accès

Fonctionnalités optionnelles

Ajouter un filigrane

Certaines options sont persistante et peuvent être configuré via l'interface graphique en amont.

Pour ajouter un logo en filigrane des vidéos, il faut ouvrir VLC et faire "clic droit"> outils > effets et filtres (Ctrl+e)

Sélectionner Effets vidéos dans le premier menu d'onglet et Incrustation dans le second.

Cocher la case Ajouter un logo puis parcourir vos dossiers pour sélectionner le logo souhaité.

Ajout filigrane

Voila, le logo sera posé sur votre vidéo chaque fois que VLC sera utilisé.

Limiter la durée de la diffusion

Afin de déterminer un temps de diffusion, il est nécessaire d'utiliser la commande timeout:

timeout 10 vlc -vvv v4l2:///dev/video0 --sout '#transcode{vcodec=h264,acodec=mpga,vb=800,ab=128}:duplicate{dst=http{mux=flv,dst=:8080}, dst=file{dst=/home/remy/Vidéos/video.mp4, no-overwrite}, dst=display{delay=6000}}'
Enter fullscreen mode Exit fullscreen mode

Dans cette exemple, je diffuse dans un flux http en local, j'enregistre dans un fichier et j'affiche le retour de la webcam durant 10 secondes.

Source:

Top comments (0)