diff --git a/HowtoFFmpeg.md b/HowtoFFmpeg.md new file mode 100644 index 00000000..06703bab --- /dev/null +++ b/HowtoFFmpeg.md @@ -0,0 +1,92 @@ +--- +categories: video audio stream flux +title: Howto FFmpeg +... + +[FFmpeg](http://ffmpeg.org) est un outil en CLI permettant d'enregistrer, convertir et streamer des flux vidéos et audio. + +* Statut de la page : nouvelle. +* [Documentation officielle](https://ffmpeg.org/ffmpeg.html) +* [Wiki officiel](https://trac.ffmpeg.org/wiki) + + +# Installer FFmpeg + +~~~ +# apt install ffmpeg +~~~ + + +# Utiliser FFmpeg + +## Syntaxe générale + +La syntaxe de la commande est la suivante : + +~~~ +$ ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ... +~~~ + +On passe en option plusieurs flux d'entrée et de sortie. Les flux d'entrée sont ré-encodés et redirigés vers les sorties (en fonction des options). + +Chaque flux d'entrée est déclaré d'abord avec ses options et un `-i ` final (« URL » est à prendre au sens large). + +Idem pour chaque flux de sortie, mais sans le `-i`. + + +## Lister les formats et les codecs supportés + +~~~ +$ ffmpeg -formats +~~~ + +On peut aussi lister les codecs pour l'encodage et le décodage avec : + +~~~ +$ ffmpeg -decoders +$ ffmpeg -encoders +~~~ + + +## Enregistrer du son à partir d'un micro + +Pour la capture audio, on utilise les flux fournis par le serveur de son [PulseAudio](https://www.freedesktop.org/wiki/Software/PulseAudio/), qui fait le lien avec les pilotes ALSA des périphériques audio. + +Lister les flux PulseAudio, et identifier le numéro de périphérique de votre micro : + +~~~ +$ pactl list short sources | grep input +~~~ + +Puis lancer un enregistrement (voir [Lister les formats et les codecs supportés](https://wiki.evolix.org/HowtoFFmpeg#lister-les-formats-et-les-codecs-support%C3%A9s) pour les formats supportés en sortie) : + +~~~ +$ ffmpeg -f pulse -i +$ # Par exemple : +$ ffmpeg -f pulse -i 1 output.wav +~~~ + +Utiliser `Ctrl+c` pour stopper l'enregistrement. + + +## Enregistrer une vidéo à partir d'un affichage Xorg + +Pour la capture vidéo, on utilise les flux fournis fournis par le serveur graphique [Xorg](https://www.x.org/wiki/). + +Lister les écrans connectés et identifier la taille (par exemple `2560x1080`) et le décalage (par exemple `+2560+0`) de l'écran à enregistrer : + +~~~ +$ xrandr | grep -E "[[:space:]]connected" +~~~ + +Puis lancer un enregistrement (voir [Lister les formats et les codecs supportés](https://wiki.evolix.org/HowtoFFmpeg#lister-les-formats-et-les-codecs-support%C3%A9s) pour les formats supportés en sortie) : + +~~~ +$ ffmpeg -f x11grab -video_size -i :0.0 +$ # Par exemple : +$ ffmpeg -f x11grab -video_size 2560x1080 -i :0.0+2560+0 output.webm +~~~ + +Utiliser `Ctrl+c` pour stopper l'enregistrement (la clôture prend un peu de temps pour l'encodage, ne pas forcer l'arrêt en faisant 2 fois `Ctrl+c`). + +