#!/bin/bash

#### Capture vidéo de l'écran et des entrées audio

#### Activer le microphone
amixer -q set Capture cap

#### Mettre à fond le volume des haut-parleurs
amixer -q 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=""
i=0
while  [ $i -le $Nb_inputs ]
do
	Inputs="$Inputs -f pulse -ac ${Mic[`expr $i + 1`]} -i ${Mic[i]}"
	let "i += 2"
done

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" &