Mengambil HANYA audio desktop dengan ffmpeg


13

Saya ingin tahu bagaimana saya hanya bisa menangkap audio desktop (berarti tidak ada mic!).

Saya menggunakan perintah ini:

$ 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

Saya dapat menangkap mic dengan aplikasi lain, tetapi saya membutuhkan audio mic untuk berada di file yang berbeda. Saya hanya ingin menangkap audio desktop!


@LordNeckbeard saya meletakkan output konsol di pastebin: pastebin.com/9GSZ1eTr
Elderzz

Jawaban:


12

pavucontrol

masukkan deskripsi gambar di sini

  1. Instal pavucontrol.
  2. Mulai merekam dengan ffmpeg(lihat contoh perintah di bawah).
  3. Mulai pavucontrol.
  4. Buka tab Rekaman dan Anda akan menemukan ffmpegatau Lavf56.15.102(atau serupa) terdaftar di sana.
  5. Ubah tangkapan audio dari Internal Audio Analog Stereo ke Monitor Internal Audio Analog Stereo .

Sekarang seharusnya merekam audio sistem dan aplikasi, bukan mikrofon.

Pengaturan ini akan diingat. Lain kali Anda ingin mengabadikannya ffmpeg, secara otomatis akan mulai merekam audio sistem. Jika Anda ingin mengembalikan ini, gunakan pavucontrollagi untuk mengubah kembali ke input mikrofon.

Teks di atas diadaptasi dari HOWTO: Screencasting di Linux .

contoh perintah ffmpeg

hanya audio

ffmpeg -f pulse -i default output.wav

dengan tangkapan layar

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

Apakah rekaman ini tidak akan rugi?
Anmol Singh Jaggi

@AnmolSinghJaggi No. -crf 18lossy, dan ada juga loss karena konversi warna RGB ke YUV 4: 2: 0.
llogan

Tidak, saya hanya berbicara tentang bagian audio saja.
Anmol Singh Jaggi

1
@AnmolSinghJaggi Ya, audio harus lossless.
llogan

1
Jika Anda tidak ingin mengganti sumber secara manual, Anda dapat menggunakan perintah pactl list sorucesuntuk mencari tahu nama internal sumber monitor dan kemudian menggunakan -f pulse -i NAMEalih-alih default, misalnya -f pulse -i alsa_output.pci-0000_00_1f.3.analog-stereo.monitorNama yang tepat akan berbeda dari satu sistem ke sistem lainnya.
regnarg

1

Anda juga dapat merekam ke MP3 terkompresi (dengan bit rate pilihan Anda) seperti:

ffmpeg -f alsa -ac 2 -i default -acodec libmp3lame -ab 320k ouput.mp3
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.