web-dev-qa-db-fra.com

Capturer SEULEMENT le son du bureau avec ffmpeg

Je veux savoir comment je ne peux capturer que l'audio de bureau (c'est-à-dire pas de micro!).

J'utilise cette commande:

$ ffmpeg -f x11grab -s 1360x768 -r 30 -i :0.0 -preset ultrafast ~/Videos/out.mp4
ffmpeg version 2.4.3-1ubuntu1~trusty6 Copyright (c) 2000-2014 the FFmpeg developers
  built on Nov 22 2014 17:07:19 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
  configuration: --prefix=/usr --extra-version='1ubuntu1~trusty6' --build-suffix=-ffmpeg --toolchain=hardened --extra-cflags= --extra-cxxflags= --libdir=/usr/lib/x86_64-linux-gnu --shlibdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --enable-shared --disable-stripping --enable-avresample --enable-avisynth --enable-fontconfig --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-opengl --enable-x11grab --enable-libxvid --enable-libx265 --enable-libdc1394 --enable-libiec61883 --enable-libzvbi --enable-libzmq --enable-frei0r --enable-libx264 --enable-libsoxr --enable-openal --enable-libopencv
  libavutil      54.  7.100 / 54.  7.100
  libavcodec     56.  1.100 / 56.  1.100
  libavformat    56.  4.101 / 56.  4.101
  libavdevice    56.  0.100 / 56.  0.100
  libavfilter     5.  1.100 /  5.  1.100
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  0.100 /  3.  0.100
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  0.100 / 53.  0.100
[x11grab @ 0x16051e0] device: :0.0 -> display: :0.0 x: 0 y: 0 width: 1360 height: 768
[x11grab @ 0x16051e0] shared memory extension found
Input #0, x11grab, from ':0.0':
  Duration: N/A, start: 1444234613.435347, bitrate: 1002700 kb/s
    Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1360x768, 1002700 kb/s, 30 tbr, 1000k tbn, 30 tbc
File '/home/elderzz/Videos/out.mp4' already exists. Overwrite ? [y/N] ^A

Je peux capturer un micro avec une autre application, mais j'ai besoin que l'audio du micro se trouve dans un fichier différent. Je veux seulement capturer l'audio de bureau!

10
Elderzz

pavucontrol

enter image description here

  1. Installez pavucontrol.
  2. Commencez l’enregistrement avec ffmpeg (voir les exemples de commandes ci-dessous).
  3. Démarrez pavucontrol.
  4. Allez dans l'onglet Enregistrement et vous trouverez ffmpeg ou Lavf56.15.102 (ou similaire) énumérés ici.
  5. Modifiez la capture audio de Stéréo analogique audio interne en Moniteur de stéréophonie audio interne .

Il convient maintenant d’enregistrer le son du système et de l’application plutôt que le microphone.

Ce paramètre sera mémorisé. Lors de la prochaine capture avec ffmpeg, l'enregistrement audio du système commencera automatiquement. Si vous souhaitez revenir en arrière, utilisez à nouveau pavucontrol pour revenir à l’entrée microphone.

Le texte ci-dessus a été adapté de HOWTO: Screencasting sur Linux .

exemple de commandes ffmpeg

audio seulement

ffmpeg -f Pulse -i default output.wav

avec capture d'écran

ffmpeg -f x11grab -video_size 1360x768 -framerate 30 -i :0.0 -f Pulse -i default -preset ultrafast -crf 18 -pix_fmt yuv420p out.mkv
9
llogan

Vous pouvez également enregistrer au format MP3 compressé (avec le débit binaire de votre choix), par exemple:

ffmpeg -f alsa -ac 2 -i default -acodec libmp3lame -ab 320k ouput.mp3
1
sergy8612