logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 31-12-2022 21:14:26

laurent.2
Membre
Inscription : 31-12-2022

ffmpeg capture d ecran

Bonjour,

Je cherche à capturer mon bureau en video mais aussi le son.

La video marche sans problème avec la commande :

ffmpeg -f x11grab -r 25 -s 1280x1024 -i :0.0  -vcodec libx264 -crf 0 -preset ultrafast output.mkv



Mais impossible de capturer du son. j'utilise pulse audio sous debian :

ffmpeg -f x11grab -r 25 -s 1280x1024 -i :0.0  -vcodec libx264 -crf 0 -preset ultrafast  -f pulse -ac 2 -i default output.mkv



Cordialement.

Hors ligne

#2 01-01-2023 12:21:22

Anonyme
Invité

Re : ffmpeg capture d ecran

Bonjour,

On peut essayer un truc sympa sans utiliser pulse et sans définir une résolution fixe comme 1280x1024 en utilisant slop et un curseur et alsa.

apt install slop zenity



Un script ( que je nomme ici vcr )


#!/bin/bash

OUTPUT=~/MAGNETO

theRegex='.*CARD.*'
while read -r;  do {
    [[ $REPLY =~ $theRegex ]] && {
        [[ $lst == *${BASH_REMATCH[0]}* ]] || lst+="FALSE ${BASH_REMATCH[0]} "
    }
}
done <<< $(LANG=C aplay -L)
cards=( $lst )

cards[0]="TRUE"

choice=$(zenity --list --radiolist --width=450 --height=500 \
        --title "Capture"                                           \
        --text="Sélectionnez un périphérique"                       \
        --column="Choix" --column="Périphériques" ${cards[@]})

# https://www.cyberciti.biz/faq/bash-shell-find-out-if-a-variable-has-null-value-or-not/
condition="$choice"
if [ -z "$condition" ]
then
      echo "Annulation"
exit 0
else
      echo "Choix validé"

[ -d "$OUTPUT" ] || mkdir "$OUTPUT"
size=$(slop -f "-s %wx%h -i :0.0+%x,%y")




ffmpeg -y  -guess_layout_max 0  -f alsa -thread_queue_size 512 -ac 2 -i $choice -f x11grab $size -filter:v fps=30 -acodec copy -c:v h264  -loglevel repeat+verbose "$OUTPUT/CAPTURE-[Le $(date +%d-%m-%y) à $(date +%H:%M:%S)].mkv"

fi
 



tu le rend exécutable.
sois tu le laisse dans ton bureau et tu le lance par la commande dans un terminal ./vcr ou tu le met dans /usr/local/bin et donc en commande vcr dans le terminal.


Quand  tu vas le lancer, dans une fenêtre (GUI), ça va te proposer la carte que tu veux utiliser ( je pense que lechoix par défaut devrait faire l'affaire.
Une foix ce choix fait, tu va voir un curseur apparaitre. Soit tu clique sur le Bureau ( capture totale de l'écran ), soit sur une fenêtre ou soit une portion ( lasso )

Et tout cela avec le son .

EDIT : Tes captures se trouveront dans ton home, dans le dossier MAGNETO ( les fichiers ne seront pas écrasés )


https://sd-1.archive-host.com/membres/v … 122932.mkv

Screenshot_-_122705.png

Dernière modification par Anonyme (01-01-2023 12:37:16)

#3 01-01-2023 14:29:09

vv222
Administrateur
Distrib. : Debian Sid
(G)UI : sway
Inscription : 18-11-2013
Site Web

Re : ffmpeg capture d ecran

En fouillant un peu mon historique bash, j’ai retrouvé la commande que j’utilisais pour capturer affichage et son :

ffmpeg -video_size 1280x1024 -framerate 30 -f x11grab -i "$DISPLAY" -f pulse -i 0 -c:v libx264 -crf 22 -preset ultrafast -c:a libopus -ac 2 output.mkv



La différence majeure que je vois avec ta commande, c’est l’utilisation de -i 0 plutôt que -i default. Mais mon utilisation de cette commande remonte à trop loin pour que je me rappelle si c’est vraiment une différence significative.


Jouer sous Debian ? Facile !

Ceterum censeo Barum esse delendam

Hors ligne

#4 01-01-2023 19:42:54

Anonyme-14
Invité

Re : ffmpeg capture d ecran

similaire à vv222 smile

ffmpeg -f pulse -ac 2 -i default -f x11grab -r 30 -s 1600x900 -probesize 10000000 -thread_queue_size 32 -i :0.0 -acodec aac -vcodec libx264 -preset ultrafast -threads 0 output.mp4


testé sur mon ordi portable (résolution différente) et sans les messages d'avertissements concernant la taille de probe et thread.
ça fonctionnait avant de toute façon ...

Pied de page des forums