[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Linux-31] Avis sur ce script de capture audio/vidéo



bonsoir,

Mon script fonctionne.
Je le lance avec un raccourci-clavier.
Je le stoppe avec un autre raccourci-clavier qui exécute "pkill avconv".
Mais j'ai des questions...

#!/bin/bash

#### Capture vidéo de l'écran et des E/S  audio et de la vue de la webcam si présente

#### Mettre le volume du microphone à 100%
amixer -q set -D pulse Capture unmute
amixer -q set -D pulse Capture 100%

#### Mettre à fond le volume des haut-parleurs
amixer -q -D pulse sset Master unmute
amixer -q -D pulse sset Master 100%

#### Résolution de l'écran
Res=`xrandr | grep "^.*\*+.*$" | tr -s ' ' | cut  -d ' ' -f2`

#### Nom de la sortie audio active
Speakers="`pactl list short sources | grep -E '^.*alsa_output\..*$' | grep -E '(RUNNING|IDLE)' | cut -f2`"

#### Nombre de canaux pour la sortie audio
Speakers_ch="`pactl list short sources | grep $Speakers | sed -n 's/^.* \([1-9]\)ch .*$/\1/p'`"

####  Tableau des entrées audio et de leurs nombre de canaux
Mic=( `pactl list short sources | sed -n 's/^.*\(alsa_input\.[^\t]\+\).* \([1-9]\)ch.*$/\1\t\2/p'` )

#### Nombre d'entrées audio
let "Nb_inputs = ${#Mic[@]} / 2"

#### Nombre de sources audio
let "Nb_audio = $Nb_inputs + 1"

#### Ligne des paramètres des entrées audio à passer à avconv
Inputs=""
for (( i=0 ; i<$Nb_inputs; i++ ))
do
    Inputs="$Inputs -f pulse -ac ${Mic[`expr 2 \* $i + 1`]} -i ${Mic[`expr 2 \* $i`]}"
done

#### Affichage de la vue de la webcam  USB si présente (en 320x240)
if [ -c "/dev/video0" ]; then
    avplay -f video4linux2 -framerate 30 -video_size qvga /dev/video0&
fi

avconv \
-loglevel error \
-async 1 \
$Inputs \
-f pulse -ac $Speakers_ch \
-i $Speakers \
-filter_complex amix=inputs=$Nb_audio \
-f x11grab -r 25 -s $Res -i $DISPLAY \
-c:v libx264 -preset ultrafast \
"$HOME/Vidéos/capture-`date '+%Y-%m-%d-at-%H:%M:%S'`.mp4"

pkill avplay

#### Fin

J'aimerais savoir comment améliorer la qualité de la piste audio résultante du mixage.

En outre les lignes relatives au microphone n'ont aucun effet (ni avec "Capture ni "Mic") et que ce soit avec un microphone jack 3.5mm ou microphone USB.
Où fais-je les erreurs ?
3
Note:
La commande "pactl list short sources" affiche pour le microphone :
3    alsa_input.pci-0000_00_1b.0.analog-stereo module-alsa-card.c    s16le 2ch 48000Hz    SUSPENDED

N'hésitez pas critiquer ces lignes svp.

Je vous remercie.
--
pierre estrem