Objet : Discussions sur le logiciel libre
Archives de la liste
- From: Pierre ESTREM <peterpan31 AT free.fr>
- To: Linux 31 <linux-31 AT culte.org>
- Subject: Re: [Linux-31] Capture avec avconv
- Date: Sun, 29 Sep 2019 03:09:27 +0200
Bonjour Aymeric et le reste du Monde,
Ta commande dessous a fonctionné puis je ne sais pourquoi, elle plante inexorablement.
ffmpeg -f pulse -ac 2 -thread_queue_size 512 -i alsa_output.pci-0000_00_1b.0.analog-stereo.monitor -f pulse -ac 2 -thread_queue_size 512 -i alsa_input.usb-AKM_AK5370-00-AK5370.analog-mono -f x11grab -r 25 -s 1920x1080 -i :0.0 -filter_complex [0:a][1:a] amix=inputs=2 [audio] ; [2:v] format=yuv420p [video] -map a -map [video] -c:v libx264 -preset ultrafast capture.mp4
Son retour, l'erreur en toute fin :
ffmpeg version 2.6.9 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 4.9.2 (Debian 4.9.2-10+deb8u1)
configuration: --prefix=/usr --extra-cflags='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security ' --extra-ldflags='-Wl,-z,relro' --enable-shared --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable-stripping --enable-libvpx --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-librtmp --enable-avfilter --enable-libfreetype --enable-libvo-aacenc --disable-decoder=amrnb --enable-libvo-amrwbenc --enable-libaacplus --libdir=/usr/lib/i386-linux-gnu --disable-vda --enable-libbluray --enable-libcdio --enable-gnutls --enable-frei0r --enable-openssl --enable-libass --enable-libopus --enable-fontconfig --enable-libpulse --disable-mips32r2 --disable-mipsdspr1 --disable-mipsdspr2 --enable-libvidstab --enable-libzvbi --enable-avresample --disable-htmlpages --disable-podpages --enable-libutvideo --enable-libfdk-aac --enable-libx265 --enable-libiec61883 --enable-vaapi --enable-libdc1394 --disable-altivec --shlibdir=/usr/lib/i386-linux-gnu
libavutil 54. 20.100 / 54. 20.100
libavcodec 56. 26.100 / 56. 26.100
libavformat 56. 25.101 / 56. 25.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 11.102 / 5. 11.102
libavresample 2. 1. 0 / 2. 1. 0
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
Guessed Channel Layout for Input Stream #0.0 : stereo
Input #0, pulse, from 'alsa_output.pci-0000_00_1b.0.analog-stereo.monitor':
Duration: N/A, start: 1569718264.806948, bitrate: 1536 kb/s
Stream #0:0: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
Guessed Channel Layout for Input Stream #1.0 : stereo
Input #1, pulse, from 'alsa_input.usb-AKM_AK5370-00-AK5370.analog-mono':
Duration: N/A, start: 1569718264.818249, bitrate: 1536 kb/s
Stream #1:0: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
[x11grab @ 0x84e2840] Stream #0: not enough frames to estimate rate; consider increasing probesize
Input #2, x11grab, from ':0.0':
Duration: N/A, bitrate: N/A
Stream #2:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1920x1080, 25 fps, 25 tbr, 1000k tbn, 25 tbc
Output pad "default" with type audio of the filter instance "Parsed_amix_0" of amix not connected to any destination
Une idée ?
--
pierre esq
Le 27/09/2019 à 10:47, Aymeric a écrit :
Hello,
Étrange effectivement que le micro soit vu comme une entrée stéréo avec un nom
"mono" dedans et je me doute qu'il est bien en mono !
Du coup je ne pense pas que tu ai besoin de changer le format pour le forcer
en stéréo.
La vidéo est en yuv444p, je pense que tu peux la réduire en yuv420p sans
problème, au niveau qualité tu ne verra pas la différence est ça améliorera
la lecture avec les lecteurs, et ça va sûrement réduire l'usage CPU :)
Il y'a aussi un problème avec le thread_queue_size qui doit être aussi liée
au fait que ton CPU n'arrive pas à suivre et qui cause la désynchro ou les
coupures, on peut essayer de l'augmenter mais je ne suis pas sûr que ça aide
vraiment.
Donc je dirais :
ffmpeg -f pulse -ac 2 -thread_queue_size 512 -i
alsa_output.pci-0000_00_1b.0.analog-stereo.monitor -f pulse -ac 2
-thread_queue_size 512 -i alsa_input.usb-AKM_AK5370-00-AK5370.analog-mono -f
x11grab -r 25 -s 1920x1080 -i :0.0 -filter_complex '[0:a][1:a] amix=inputs=2
[audio] ; [2:v] format=yuv420p [video]' -map [audio] -map [video] -c:v
libx264 -preset ultrafast capture.mp4
Autre idée, si c'est bien un problème de CPU qui n'arrive pas à suivre,
est-ce que tu peux installer le paquet vainfo et exécuter la commande
suivante :
vainfo | grep -i EncSlice
Si tu as des lignes avec VAProfileH264 tu peux tester ta capture comme ça
suivante, ça utilisera le processeur graphique pour faire l'encodage, qui
permettra de faire du temps réel sans soucis :
ffmpeg -vaapi_device /dev/dri/renderD128 -f pulse -ac 2 -i
alsa_output.pci-0000_00_1b.0.analog-stereo.monitor -f pulse -ac -i
alsa_input.usb-AKM_AK5370-00-AK5370.analog-mono -f x11grab -r 25 -s 1920x1080
-i :0.0 -filter_complex '[0:a][1:a] amix=inputs=2 [audio] ; [2:v]
format=nv12;hwupload [video]' -map [audio] -map [video] -c:v h264_vaapi -qp
18 capture.mp4
Dans tous les cas donne les retours complets des commandes :)
A+
Aymeric
Le 25 septembre 2019 22:59:29 GMT+02:00, Pierre ESTREM<linux-31 AT culte.org> a
écrit :
Bonsoir,Aymeric
Le micro est en mono !
La ligne qui lui correspond fait un enregistrement en 2 canaux.
Bizarre ou normal ?
Effectivement c'est mieux avec des simples quotes :
avconv -f pulse -i alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
-f
pulse -i alsa_input.usb-AKM_AK5370-00-AK5370.analog-mono
-filter_complex
'[1:a] aformat=channel_layouts=stereo [mic] ; [0:a] [mic]
amix=inputs=2'
-f x11grab -r 15 -s 1920x1080 -i :0.0 -vcodec libx264 -preset ultrafast
capture.mkv
Ca marche avec le format mkv et avi.
Avec .mp4 VLC n'affiche RIEN et dit RIEN.
J'ai joint le nohup.out associé...
Je dois encore vérifié si j'ai des déphasages... ils ne manqueront pas
à
mon avis...
Merci
pierre estrem
Le 25/09/2019 à 10:40, Aymeric a écrit :
Bonjour,commande dans les quotes ne fonctionnera pas.
Je pense qu'il te manque des quotes pour les filtres, en tout cas la
-filter_complex '[1:a] .... etc ... inputs=2'que tu peux le fournir ?
Sinon, si elle plante, elle doit afficher un message d'erreur, est-ce
Tu devrais rester avec le format mp4 qui est quand même plus moderneest mieux que avi, surtout pour du codec H264.
Le mix est effectivement en 48kHz mais est-ce que le flux d'entréel'ai lui aussi ?
Tu peux donner le retour complet de la commande ffmepg, ça permettrad'avoir des informations.
Aymeric.ESTREM<linux-31 AT culte.org> a écrit :
Le 25 septembre 2019 02:06:47 GMT+02:00, Pierre
[1:a]Bonjour,
Ce sont deux flux :
- le flux audio 2 canaux 48 Khz 128 Kb/s constant (mix du micro et
speakers que tu m'as recommandé).
- le flux vidéo (h264)
Voir résultat de mediainfo en PJ.
La commande "avconv -f pulse -i
alsa_output.pci-0000_00_1b.0.analog-stereo.monitor -f pulse -i
alsa_input.usb-AKM_AK5370-00-AK5370.analog-mono -filter_complexe
alsa_output.pci-0000_00_1b.0.analog-stereo.monitoraformat=channel_layouts=stereo [mic] ; [0:a] [mic] amix=inputs=2 -f
x11grab -r 15 -s 1920x1080 -i :0.0 -vcodec libx264 -preset ultrafast
capture.avi" plante.
Donc avec :
avconv -f pulse -i
et-f
pulse -i alsa_input.usb-AKM_AK5370-00-AK5370.analog-mono
-filter_complexe amix=inputs=2 -f x11grab -r 15 -s 1920x1080 -i :0.0
-vcodec libx264 -preset ultrafast capture.avi
cela marcherait, mais j'ai un décalage des sources mic et speakers
"grandsvidéo trop important.
Le but des vidéos : des démos logicielles pour présenter à de
:0.0débutants".
Je n'ai pas encore essayé le tout (audio + video) en "raw" et 60 Hz.
Aurais-je alors des choses synchrones ???
Merci
pierre estrem
Le 24/09/2019 à 09:20, Aymeric a écrit :
Le 23 septembre 2019 01:00:46 GMT+02:00, PierreESTREM<linux-31 AT culte.org> a écrit :
m'aBonsoir,
Merci pour ta commande car elle m'a aidé, bien que l'option "-af"
alsa_output.pci-0000_00_1b.0.analog-stereo.monitorprovoqué une erreur.
J'ai fait ceci :
$ avconv -f pulse -i
-f pulse -i alsa_input.usb-AKM_AK5370-00-AK5370.analog-mono
-filter_complex amix=inputs=2 -f x11grab -r 15 -s 1920x1080 -i
idem.-vcodec libx264 -preset ultrafast -y capture.mp4
Cela fonctionne presque.
J'ai des coupures courtes (pas de son) par intermitence.
C'est pour cela que j'ai baissé le "rate" à 15 fps, mais c'est
audioUne astuce pour que le son soit fluide ?Je pense que c'est un problème d'échantillonnage, les deux flux
44.1kHzne doivent pas avoir les mêmes fréquences d'échantillonnage.
Est-ce que tu peux vérifier que les deux flux audio sont ben
[0:a]oou 48kHz ?
Peux tu essayer pour déjà avoir les deux flux en stéréo:
-filter_complexe '[1:a] aformat=channel_layouts=stereo [mic] ;
écrit :[mic] amix=inputs=2'
pas deJ'ai essayé aussi "amerge=inputs=2" et franchement je ne remarque
plus approprié :)différence avec "amix"...amix : mixe plusieurs entrée audio dans une seule sortie audio.
mix et merge ne signifient-ils pas tout deux "mélanger" ?
amerge : mixe plusieurs entrée audio dans un seul flux multi piste.
La différence est subtile mais dans ton cas je pense que amix est
Aymeric.
Merci
pierre estrem
Le 22/09/2019 à 19:18, Aymeric (via linux-31 Mailing List) a
-ywrote:On 21/09/2019 02:25, Pierre ESTREM (via linux-31 Mailing List)
30Je ne parviens pas à faire de ces 2 commandes 1 seule commande.
Pour les speakers :
$ avconv -f pulse -i
alsa_output.pci-0000_00_1b.0.analog-stereo.monitor -f x11grab -r
-s
1920x1080 -i :0.0 -vcodec libx264 -preset ultrafast -threads 4
-yalsa_input.usb-AKM_AK5370-00-AK5370.analog-monospeakers.mp4
Pour le mic :
$ avconv -f pulse -i
-strappe-f x11grab -r 30 -s 1920x1080 -i :0.0 -vcodec libx264 -preset
ultrafast -threads 4 -y mic.mp4
Si je réunis les 2 commandes l'enregistrement du mic passe à la
(en position 2) :
$ avconv -f pulse -i
alsa_output.pci-0000_00_1b.0.analog-stereo.monitor -f pulse -i
alsa_input.usb-AKM_AK5370-00-AK5370.analog-mono -f x11grab -r 30
1920x1080 -i :0.0 -vcodec libx264 -preset ultrafast -threads 4
unspeakers-mic.mp4Salut,
Comment n'en faire qu'une ligne ?
Il te manque un filtre audio pour regrouper les flux audio dans
butseul
ou il faudrait changer le codec audio de sortie pour supporter du
multipiste comme ac3, dts (mais je ne pense pas que ça soit ton
'[a:0]alsa_output.pci-0000_00_1b.0.analog-stereo.monitorrecherché).
https://ffmpeg.org/ffmpeg-filters.html#amerge-1
Pas testé, mais un truc du genre devrait faire l’affaire:
ffmpeg -f pulse -i
-f
pulse -i alsa_input.usb-AKM_AK5370-00-AK5370.analog-mono -af
défaut-vcodec[a:1] amerge=inputs=2' -f x11grab -r 30 -s 1920x1080 -i :0.0
faitlibx264 -preset ultrafast -threads 4 -y speakers-mic.mp4
Sinon tu n’as normalement pas besoin de l’option -threads ça le
tout seul.selected
""
threads integer (decoding/encoding,video)
Set the number of threads to be used, in case the
codec implementation supports multi-threading.
[...]
Default value is auto
""
A+
PS : Il me semblait que ffmpeg était revenu dans Ubuntu par
etAymeric
Aymericque la "guerre" avconv/ffmpeg était finie…
-- Aymeric
- Re: [Linux-31] Capture avec avconv, (suite)
- Re: [Linux-31] Capture avec avconv, Pierre ESTREM, 21/09/2019
- Re: [Linux-31] Capture avec avconv, g hillartin, 21/09/2019
- Re: [Linux-31] Capture avec avconv, Aymeric, 22/09/2019
- Re: [Linux-31] Capture avec avconv, Aymeric, 22/09/2019
- Re: [Linux-31] Capture avec avconv, Pierre ESTREM, 23/09/2019
- Re: [Linux-31] Capture avec avconv, Aymeric, 24/09/2019
- Re: [Linux-31] Capture avec avconv, Pierre ESTREM, 25/09/2019
- Re: [Linux-31] Capture avec avconv, Aymeric, 25/09/2019
- Re: [Linux-31] Capture avec avconv, Pierre ESTREM, 25/09/2019
- Re: [Linux-31] Capture avec avconv, Aymeric, 27/09/2019
- Re: [Linux-31] Capture avec avconv, Pierre ESTREM, 29/09/2019
- Re: [Linux-31] Capture avec avconv, g hillartin, 29/09/2019
- Re: [Linux-31] Capture avec avconv, Aymeric, 29/09/2019
- Re: [Linux-31] Capture avec avconv, Pierre ESTREM, 30/09/2019
- Re: [Linux-31] Capture avec avconv, Aymeric, 29/09/2019
- Re: [Linux-31] Capture avec avconv, Pierre ESTREM, 21/09/2019
Archives gérées par MHonArc 2.6.19+.