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

Pavucontrol

여기에 이미지 설명을 입력하십시오

  1. 설치하십시오 pavucontrol.
  2. 로 녹화를 시작하십시오 ffmpeg(아래 예제 명령 참조).
  3. 시작하십시오 pavucontrol.
  4. 로 이동 기록 탭을 찾을 수 있습니다 ffmpeg또는 Lavf56.15.102(또는 유사)이 나와.
  5. 오디오 캡처를 변경 내부 오디오 아날로그 스테레오모니터 내부의 오디오 아날로그 스테레오 .

이제 마이크 대신 시스템 및 응용 프로그램 오디오를 녹음해야합니다.

이 설정이 기억됩니다. 다음에로 캡처하려는 경우 ffmpeg시스템 오디오 녹음이 자동으로 시작됩니다. 이를 되돌리려면 pavucontrol다시 사용 하여 마이크 입력으로 다시 변경하십시오.

위의 텍스트는 HOWTO : Linux의 Screencasting에서 수정되었습니다 .

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 2016 년

@AnmolSinghJaggi No. -crf 18는 손실이 있으며 RGB에서 YUV 4 : 2 : 0 색 공간 변환으로 인해 손실이 있습니다.
llogan

아니요, 오디오 전용 부분에 대해서만 이야기했습니다.
Anmol Singh Jaggi 2016 년

1
@AnmolSinghJaggi 예, 오디오는 손실이 없어야합니다.
llogan

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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.