Streamer une capture vidéo de sa webcam avec VLC
Tags: stream, vlc, ubuntu, linux
Published: 2022-04-06 11:36:08

---
title: Streamer une capture vidéo de sa webcam avec VLC
published: true
description: Stream d'une webcam depuis VLC
tags: 
- stream
- vlc
- ubuntu
- linux
//cover_image: https://direct_url_to_image.jpg
---

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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h14h7xb4fe62lmtcp1qq.png)

## 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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d2ilo6dnb6rft7pft79e.png)

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

![configure source stream](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x5ywlnhxjnwiad8tflek.png)

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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wa7q5wt8lp3oikhv7zcd.png)

![configure flux http stream](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i7ldf0l11uyxudll84hl.png)

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

![configure transcodage stream](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6296r2wpf5gaifzgbj2l.png)

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

![configure flux sortie stream](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qwfdb2wvfc88zo8s4bwv.png)

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}'
```

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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yvguhimv4ow8ej6cn686.png)

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}}'
```

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:
- [utilisation de vlc en ligne de command](https://wiki.videolan.org/VLC_command-line_help/)
- [utilistation du stream](https://wiki.videolan.org/Documentation:Streaming_HowTo/)