Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 14/02/2015, à 17:22

le_cheveulu

[PAS ENCORE RESOLU] ffmpeg ALSA buffer Xrun

Salut,

J'essaye d'enregistrer ma webcam et du son en même temps. Or de temps en temps le message ALSA buffer Xrun apparaît pendant l'enregistrement. Ces erreurs provoquent des décalages entre l'image et le son pendant l'enregistrement.

Sur le lien suivant ffmpeg, il est préconisé d'augmenter la taille du buffer ALSA (constante ALSA_BUFFER_SIZE_MAX). Malheureusement je ne vois pas comment m'y prendre. Je comprend qu'il faut compiler quelque chose en changeant une valeur dans un fichier, mais que compiler exactement et comment?

Merci pour votre aide.

A+

Dernière modification par le_cheveulu (Le 20/02/2015, à 16:35)

Hors ligne

#2 Le 14/02/2015, à 17:54

Braun

Re : [PAS ENCORE RESOLU] ffmpeg ALSA buffer Xrun

Bonjour,
Ne serait-ce pas la ligne :

#define ALSA_BUFFER_SIZE_MAX

dans le fichier :

/usr/include/alsa/alsa-audio.h

Par contre, quoi compiler, je ne sais pas.

Hors ligne

#3 Le 14/02/2015, à 19:59

le_cheveulu

Re : [PAS ENCORE RESOLU] ffmpeg ALSA buffer Xrun

En fait je n'ai pas le fichier /usr/include/alsa/alsa-audio.h. En faisant une petite recherche, je n'ai d'ailleurs aucun fichier alsa-audio.h.

Hors ligne

#4 Le 16/02/2015, à 15:42

le_cheveulu

Re : [PAS ENCORE RESOLU] ffmpeg ALSA buffer Xrun

Bon en fouillant quelque peu, je crois que l'augmentation du buffer n'a pas d'effet. J'ai trouvé une solution sur un forum. Tous les utilisateurs qui ont rencontré ce problème de buffer (y compris moi) ont remarqué que faire un enregistrement séparé du son et de l'image n'occasionne aucun problème (probablement du au fait que la taille du buffer est suffisant pour un seul enregistrement). L'idée consiste donc à enregistrer séparément le son et l'image avec deux processus de ffmpeg puis de les recoller.

Voilà un script qui fait ce travail (fonctionne chez moi) qu'il faudra modifier en fonction de vos paramètres d'entrées (voir dans les commentaires du script) :

#!/bin/bash
# enregistrement séparé son et image ffmpeg

# enregistrement video : remplacer /dev/video2 par l'adresse de votre webcam

ffmpeg -y -f v4l2  -i /dev/video2 -vcodec copy -acodec copy vid.avi 2> /dev/null &
vidPID=$!

# enregistrement audio : remplacer hw:1,0 par votre entrée audio

ffmpeg -y -f alsa -ac 1 -i hw:1,0 aud.wav 2> /dev/null &
audPID=$!

read -p "saisir le nom de la video avec extension pour arrêter (par exemple video.avi) : " out

kill -n 2 $audPID
kill -n 2 $vidPID

echo "enregistrement dans $out"

# collage des fichiers audio et video.
# L'option -async est importante pour la synchronisation car les enregistrements ne partent pas forcément en même temps

ffmpeg -async 1 -i aud.wav -i vid.avi -acodec copy -vcodec copy $out

rm aud.wav
rm vid.avi

Voilou!

Hors ligne

#5 Le 20/02/2015, à 16:40

le_cheveulu

Re : [PAS ENCORE RESOLU] ffmpeg ALSA buffer Xrun

Je ré-ouvre le topic. En effet la solution proposée sous forme de script ne fonctionne pas. Il y a encore des décrochages audio avec ffmpeg. Par contre la solution de coller audio+video avec ffmpeg préserve la synchronisation ce qui est une bonne chose. Comme je soupçonne ffmpeg de bugger avec ALSA, je vais tenter avec un autre enregistreur audio : "arecord". Je vais faire des tests en remplaçant la ligne

ffmpeg -y -f alsa -ac 1 -i hw:1,0 aud.wav 2> /dev/null &

par

arecord -D hw:1,0 -f S16_LE aud.wav 2> /dev/null &

Si quelqu'un a des idées autres...

Hors ligne

#6 Le 20/02/2015, à 19:45

erresse

Re : [PAS ENCORE RESOLU] ffmpeg ALSA buffer Xrun

Bonsoir,
Est-ce à dire que tu as installé conjointement "ffmpeg" et "avconv" ? N'y a-t-il pas incompatibilité entre ces deux applications (vu que avconv est censé remplacer ffmpeg dans les distributions basées sur Debian) ?


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#7 Le 20/02/2015, à 20:39

le_cheveulu

Re : [PAS ENCORE RESOLU] ffmpeg ALSA buffer Xrun

Oui les deux sont installés. D'ailleurs j'ai essayé de faire des enregistrements avec avconv avec la commande suivante :

avconv -y -f alsa -i hw:1,0 -acodec copy -f v4l2  -i /dev/video2 -vcodec copy -acodec copy vid.avi

et j'obtiens le même type d'erreur qu'avec ffmpeg (c'est à dire ALSA buffer Xrun).

J'ai fait des enregistrements audio avec Audacity qui ne posent aucun problème, c'est donc qu'il y a moyen d'enregistrer l'audio proprement. Malheureusement audacity en ligne de commande je n'ai pas trouvé. C'est pourquoi je vais tenter une solution avec arecord. Mais si tu as mieux comme solution, je suis preneur.

Dernière modification par le_cheveulu (Le 20/02/2015, à 20:40)

Hors ligne

#8 Le 21/02/2015, à 17:37

le_cheveulu

Re : [PAS ENCORE RESOLU] ffmpeg ALSA buffer Xrun

J'ai testé "arecord" et le son est mauvais, je ne sais pas pourquoi...

J'ai essayé de fixer le buffer de ffmpeg via :

ffmpeg -y -f alsa -bufsize 64k -ac 1 -i hw:1,0 aud.wav

Ca semble régler le problème du son, mais ça reste à confirmer.

MAIS voila que j'ai un autre problème : l'enregistrement vidéo se bloque au bout d'une à deux minutes. J'ai déjà rencontré cette difficulté mais là c'est arrivé à chaque test... J'ai d'ailleurs le même problème lorsque j'enregistre avec VLC (raison pour laquelle je l'ai laché).

C'est désespérant.

Hors ligne