Contenu | Rechercher | Menus

Annonce

Le forum rencontre en ce moment quelques soucis de charge, il est possible qu'une erreur soit affichée quand vous postez un message, ne rechargez pas la page au risque de poster une seconde fois votre message

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".

#1 Le 24/02/2013, à 11:30

GLC: Enregistrement sonore microphone

Bonjour à tous,

Depuis quelques temps je recherchais un bon logiciel de capture audio et vidéo, et je suis finalement tombé sur ce qui semble être une petite merveille: GLC. Pour le débutant que je suis, ça m'a fait un peu peur au début (pas d'interface graphique...), mais au final, ça va! C'est le meilleur enregistreur trouvé pour le moment.

Je me suis concocté un petit fichier bash pour éviter d'avoir à retaper les mêmes commandes régulièrement. Ça marche plutôt bien, j'ai fait un mélange de commandes issus de tutos/forums/etc et ça fait exactement ce que je veux! (j'ai même un peu amélioré le script avec mes maigres connaissances en bash). Tout ce que je veux, donc, ou presque... Le seul truc qui me fait défaut, c'est l'enregistrement du son issu du microphone: après quelques recherches, je trouve pas mals de trucs (barbares), des noms que je ne connaissais pas (Alsa?! Quécécé??), bref, le bonheur!^^

C'est pourquoi je viens requérir votre aide pour compléter mon script bash. Je n'y connais pas grand chose, donc merci d'être indulgents! J'ai fait mon maximum avant de recourir à votre aide.

Voilà mon script actuel:

#!/bin/sh/
DEFAULT="video_`date +%d-%m-%Y_%H:%M:%S`"
PROJECT=${1:-$DEFAULT} 
cd "$HOME/Vidéos/"
if [ -d "GLC Recordings" ]
then
cd "GLC Recordings"
else
mkdir "GLC Recordings"
fi
mkdir $PROJECT
cd $PROJECT
glc-capture -o $PROJECT-stream.glc [MON PROGRAMME]
glc-play $PROJECT-stream.glc -a 1 -o $PROJECT-audio.wav
glc-play $PROJECT-stream.glc -o - -y 1 | mencoder -demuxer y4m - -ovc x264 -x264encopts qp=18:pass=1 -of avi -audiofile $PROJECT-audio.wav -oac mp3lame -o $PROJECT.avi
qp=18:pass=2 -of avi -o $PROJECT.avi
mkdir ".tmp"
mv $PROJECT-audio.wav .tmp/
mv $PROJECT-stream.glc .tmp/

Merci d'avance! smile

EDIT: J'ai une autre question, au passage. Est-ce normal que la vidéo finale soit légèrement assombrie avec ce script?

Dernière modification par xou816 (Le 24/02/2013, à 12:45)

Hors ligne

#2 Le 08/03/2013, à 17:34

Re : GLC: Enregistrement sonore microphone

bonjour

bon j'ai eu le même problème j'avais besoin d'enregistrer un de mes appli et recordmydestkop ne fonctionne pas
j'ai découvert GLC et ça marche parfaitement smile ( je n'utilise pas de micro)
merci pour ton script xou816 je l'ai repris et je l'ai un peu amélioré

je fais des fois des petit script mais je ne sais pas vraiment les bonnes pratique donc en passant si j'ai fais de grosse bourde dans mon script merci de me le dire pour que je m'ameliore

#!/bin/bash
## Script pour automatiser les taches d'enregistrement via GLC
## Version 1.1 by xou816 && Gp974
## voir http://forum.ubuntu-fr.org/viewtopic.php?id=1207671
## Usage ./GLCSreenCast.sh NomProjet ProgrammeAExecuter

DEFAULT="ScreenCast_`date +%d-%m-%Y_%H:%M:%S`"
PROJECT=${1:-$DEFAULT}
Erreur="\033[31m"
Warning="\033[33m"
Succees="\033[32m"
Normal="\033[0m"
Date="date +%H:%M:%S"
if [ $# -lt 2 ] 
then
	echo -e "Nombre de parametre incorrect !\nUsage ./GLCSreenCast.sh NomProjet ProgrammeAExecuter"
	exit 1
fi
#cd "$HOME/Vidéos/"
if [ -d "$HOME/Vidéos/GLC Recordings" ]
then
	cd "$HOME/Vidéos/GLC Recordings" && mkdir $PROJECT && cd $PROJECT 2>> GLC.log
else
	mkdir "$HOME/Vidéos/GLC Recordings" && mkdir $HOME/Vidéos/GLC Recordings/$PROJECT && cd $HOME/Vidéos/GLC Recordings/$PROJECT 2>> GLC.log
fi
if [ $? -eq 1 ]
then
	echo -e "[`$Date`]Erreur creation dossier[$Erreur Echec $Normal]\n Consulter GLC.log pour plus de détails"
	echo -e "[`$Date`]Erreur creation dossier:$PROJECT dans $HOME/Vidéos/ Ajuster les droits ecriture et lecture  et verifiez que le dossier n'existe pas puis recommencer" >> GLC.log
	exit 1	
fi

echo -e "[`$Date`]Debut Enregistrement\nLancement de:$2\nEnregistrement dans:$PROJECT" >> GLC.log
echo -e "[`$Date`]Debut Enregistrement\nLancement de:$2\nEnregistrement dans:$PROJECT"
glc-capture -o $PROJECT-stream.glc -s $2 2>> GLC.log
if [ $? -eq 0 ]
then
	echo -e "[`$Date`]Capture Ok\nDebut encodage a partir de:$PROJECT-stream.glc" >> GLC.log
	echo -e "[`$Date`]Capture Ok\nDebut encodage a partir de:$PROJECT-stream.glc"
else
	echo -e "[`$Date`]Erreur Capture[$Erreur Echec $Normal]\n Consulter GLC.log pour plus de détails"
	echo -e "[`$Date`]Erreur Capture" >> GLC.log
	exit 1
fi

echo -e "[`$Date`]Extraction son:$PROJECT-audio.wav" >> GLC.log
echo -e "[`$Date`]Extraction son:$PROJECT-audio.wav"
glc-play $PROJECT-stream.glc -a 1 -o $PROJECT-audio.wav
echo -e "[`$Date`]Encodage en cours fichier destination:$PROJECT.mp4" >> GLC.log
echo -e "[`$Date`]Encodage en cours fichier destination:$PROJECT.mp4"
if [ -e $PROJECT-audio.wav ]
then
	echo -e "[`$Date`]Fichier de son:$PROJECT-audio.wav:[ok]" >> GLC.log
	echo -e "[`$Date`]Fichier de son:$PROJECT-audio.wav:[ok]"
	glc-play $PROJECT-stream.glc -o - -y 1 | ffmpeg -i - -i $PROJECT-audio.wav -acodec libmp3lame -ab 128k -ac 2 -vcodec libx264 -vpre slow -crf 22 -threads 0 "$PROJECT.mp4" 2>> GLC.log
else
	echo -e "[`$Date`]Pas de fichier son[warning]" >> GLC.log
	echo -e "[`$Date`]Pas de fichier son[$Warning warning $Normal]"
	glc-play $PROJECT-stream.glc -o - -y 1 | ffmpeg -i - -an -vcodec libx264 -vpre slow -crf 22 -threads 0 "$PROJECT.mp4" 2>> GLC.log
fi
if [ $? -eq 0 ]
then
	echo -e "[`$Date`]Encodage complet emplacement fichier:$HOME/Vidéos/$PROJECT/$PROJECT.mp4 [Reusite] \n Nettoyage..." >> GLC.log 
	echo -e "[`$Date`]Encodage complet emplacement fichier:$HOME/Vidéos/$PROJECT/$PROJECT.mp4 [$Succees Reusite $Normal] \n Nettoyage..."
	rm $PROJECT-stream.glc
	echo -e "[`$Date`]Nettoyage ok\nFin script\n\n\n" >> GLC.log
	echo -e "[`$Date`]Nettoyage ok\nFin script"
	exit 0
else
	echo -e "[`$Date`]Erreur Encodage [Echec]\n" >> GLC.log
	echo -e "[`$Date`]Erreur Encodage [$Erreur Echec $Normal]\n Consulter GLC.log pour plus de détails"
	exit 1
fi

Autre chose il y a un moyen de rediriger mes message dans un fichier et sur la sortie standard en même temps ? ( ça m’éviterai les copier coller)

merci
GP974


Ubunteros depuis 10.04
Fixe : i7 i930@2.8ghz | 8go ddr3 |Gtx 570@nvidia-319-dev | Agilty3(120go) | Ubuntu 12.04.2 & 13.04 & W$ 7
Portable(asus N75SF) : i5 2410@2.3ghz | 6go ddr3  | IntelHD3000/GT555m@Primus(3.2.1) | Vertex2(180go)| Ubuntu 13.04 & 12.04.2 & 13.10
Stop windows8 !

Hors ligne

#3 Le 09/03/2013, à 07:34

Re : GLC: Enregistrement sonore microphone

Aaaaah un collègue réunionnais en plus!
Ravi d'avoir pu aider, j'imaginais plutôt le contraire mais bon^^
Il faudra que j'essaye ton script, j'ai l'impression que je vais apprendre pas mal de trucs sur le bash au passage (comme je l'ai précisé au début, je suis plutôt débutant et donc mon script était assez... brouillon).
Merci en tout cas!

Hors ligne

#4 Le 09/05/2013, à 11:42

Re : GLC: Enregistrement sonore microphone

Petit up (désolé) pas forcément pour le problème (enfin, si vous avez une réponse, je suis preneur! big_smile) mais plutôt pour partager mon script GLC.
J'en suis assez content et je l'ai amélioré avec un petit programme bien sympa, zenity (et aussi notify-send):

#!/bin/bash/
for i in "$@"; do
	case $i in
	    -p=*|--project=*)
	    ARG_PROJECT=${i#*=}

	    ;;
	    -a=*|--application=*)
	    ARG_APPLICATION=${i#*=}
	    ;;
	    *)
	            # unknown option
	    ;;
	esac
done
DEFAULT="video_`date +%d-%m-%Y_%H:%M:%S`"
WINDOW="GLC"
cd "$HOME/Vidéos/"
if [ -d "GLC Recordings" ]
then
cd "GLC Recordings"
else
mkdir "GLC Recordings"
fi
if [ "$ARG_PROJECT" = "" ]; then
	PROJECT="$DEFAULT"
	PROJECT=$(zenity --entry --title="$WINDOW" --entry-text="$DEFAULT" --text="Project name:")
	while [ -d "$PROJECT/" ]
	do
		if [ -d "$PROJECT/" ]
		then
			zenity --error --title="$WINDOW" --text="The project already exists."
		fi
		PROJECT=$(zenity --entry --title="$WINDOW" --entry-text="$DEFAULT" --text="Project name:")
	done
else
	PROJECT="$ARG_PROJECT"
fi
mkdir "$PROJECT"
cd "$PROJECT"
if [ "$ARG_APPLICATION" = "" ]; then
	APPLICATION=""
	while [ "$APPLICATION" = "" ]
	do
		APPLICATION=$(zenity --entry --title="$WINDOW" --text="Application to record:")
	done
else
	APPLICATION="$ARG_APPLICATION"
fi
notify-send "GLC started! Press SHIFT + F8 to start recording."
glc-capture -o "$PROJECT"-stream.glc ${APPLICATION}
if [ -f "$PROJECT"-stream.glc ]
then
	(
	echo "33"
	echo "# Extracting audio..."; glc-play "$PROJECT"-stream.glc -a 1 -o "$PROJECT"-audio.wav; sleep 1
	echo "66"
	echo "# Converting to AVI..."; glc-play "$PROJECT"-stream.glc -o - -y 1 | mencoder -demuxer y4m - -ovc x264 -x264encopts qp=18:pass=1 -of avi -audiofile "$PROJECT"-audio.wav -oac mp3lame -o "$PROJECT".avi
	echo "99"
	echo "# Cleaning..."; sleep 1
	echo "100"
	echo "# Done!"
	mkdir ".tmp"
	mv "$PROJECT"-audio.wav .tmp/
	mv "$PROJECT"-stream.glc .tmp/
	mv divx2pass.log .tmp/
	) | zenity --progress \
	--title="$WINDOW" \
	--text="Exporting video..." \
	--percentage=0
	if [ "$?" = -1 ] ; then
		zenity --error \
		--text="Aborting."
	fi
	notify-send "GLC video exportation complete!"
	zenity --info --title="$WINDOW" --text="Video exported to $HOME/Vidéos/GLC Recordings/$PROJECT/!"
else
	zenity --error --title="$WINDOW" --text="No video found."
	cd ..
	rm -rf "$PROJECT/"
fi

Voilà! Bonne journée à tous!

EDIT: petite modif' pour l'utilisation en ligne de commande, à savoir: sh glc-gui.sh <projet> <application>
EDIT 2: à présent ça s'utilise comme ça: sh glc-gui.sh -p=<projet> -a=<application> ou sh glc-gui.sh --project=<projet> --application=<application>

Dernière modification par xou816 (Le 10/05/2013, à 12:17)

Hors ligne

Haut de page ↑