使用ffmpeg捕获桌面音频

我想知道如何才能捕获桌面音频(意味着没有麦克风!)。

我正在使用此命令:

$ 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 

我可以用另一个应用程序捕获麦克风,但我需要麦克风音频在不同的文件中。 我只想捕获桌面音频!

pavucontrol

在此处输入图像描述

  1. 安装pavucontrol
  2. 使用ffmpeg开始录制(请参阅下面的示例命令)。
  3. 启动pavucontrol
  4. 转到录制选项卡,您会在其中找到ffmpegLavf56.15.102 (或类似)。
  5. 将音频捕获从内部音频模拟立体声更改为内部音频模拟立体声 监听

现在它应该记录系统和应用程序音频而不是麦克风。

此设置将被记住。 下次要使用ffmpeg进行捕获时,它将自动开始录制系统音频。 如果要还原此项, pavucontrol再次使用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 

您还可以录制到压缩MP3(具有您选择的比特率),例如:

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