Захоплення ТОЛЬКО аудіо на робочому столі за допомогою ffmpeg


13

Я хочу знати, як я можу захоплювати лише звук на робочому столі (це означає, що немає мікрофона!)

Я використовую цю команду:

$ 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

Я можу робити мікрофон за допомогою іншого додатка, але мені потрібно, щоб звук мікрофона знаходився в іншому файлі. Я хочу лише захопити настільний аудіо!


@LordNeckbeard я поставив консольний вихід на pastebin: pastebin.com/9GSZ1eTr
Elderzz

Відповіді:


12

павуконтроль

введіть тут опис зображення

  1. Встановити pavucontrol.
  2. Почніть запис із ffmpeg(див. Приклад команд нижче).
  3. Старт pavucontrol.
  4. Перейдіть на вкладку Запис і там знайдете ffmpegабо Lavf56.15.102(або подібне).
  5. Змініть захоплення звуку з внутрішнього аналогового стерео аудіо на монітор внутрішнього аудіо аналогового стерео .

Тепер він повинен записувати системний та додатковий аудіо замість мікрофона.

Цей параметр запам'ятається. Наступного разу, коли ви захочете зробити знімок ffmpeg, він автоматично почне записувати аудіосистему. Якщо ви хочете відновити це, скористайтеся pavucontrolзнову, щоб повернутися до входу мікрофона.

Вищенаведений текст був адаптований з HOWTO: Screencasting на Linux .

приклад команд ffmpeg

лише аудіо

ffmpeg -f pulse -i default output.wav

із захопленням екрана

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

Чи буде цей запис без втрат?
Anmol Singh Jaggi

@AnmolSinghJaggi № -crf 18є втратою, а також є втрати через перетворення RGB на YUV 4: 2: 0 перетворення кольорового простору.
llogan

Ні, я говорив лише про частину аудіо.
Анмол Сінгх Джаггі

1
@AnmolSinghJaggi Так, звук повинен бути без втрат.
логін

2
Якщо ви не хочете перемикати джерело вручну, ви можете скористатися командою, pactl list sorucesщоб визначити внутрішню назву джерела монітора, а потім використовувати -f pulse -i NAMEзамість default, наприклад, -f pulse -i alsa_output.pci-0000_00_1f.3.analog-stereo.monitorточне ім'я буде відрізнятися від системи до системи.
regnarg

1

Ви також можете записувати на стиснутий MP3 (зі швидкістю передачі на ваш вибір), наприклад:

ffmpeg -f alsa -ac 2 -i default -acodec libmp3lame -ab 320k ouput.mp3
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.