SADECE ffmpeg ile masaüstü sesini yakalama


13

Sadece masaüstü sesini nasıl yakalayabileceğimi bilmek istiyorum (mikrofon yok!).

Bu komutu kullanıyorum:

$ 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

Mikrofonu başka bir uygulamayla yakalayabilirim, ancak mikrofon sesinin farklı bir dosyada olması gerekir. Sadece masaüstü sesini yakalamak istiyorum!


@LordNeckbeard konsol çıktısını pastebin'e koydum: pastebin.com/9GSZ1eTr
Elderzz

Yanıtlar:


12

pavucontrol

resim açıklamasını buraya girin

  1. Yükleyin pavucontrol.
  2. İle kaydetmeye başlayın ffmpeg(aşağıdaki örnek komutlara bakın).
  3. Başlat pavucontrol.
  4. Git Kayıt sekmesi ve bulacaksınız ffmpegya Lavf56.15.102(veya benzeri) burada listelenen.
  5. Ses yakalama değiştirme İç Ses Analog Stereo için Monitör Dahili Ses Analog Stereo .

Şimdi mikrofon yerine sistem ve uygulama sesini kaydetmelidir.

Bu ayar hatırlanacak. Bir dahaki sefere çekim yapmak istediğinizde ffmpeg, sistem sesini otomatik olarak kaydetmeye başlar. Bunu geri almak isterseniz, pavucontrolmikrofon girişine geri dönmek için tekrar kullanın.

Yukarıdaki metin NASIL belgesinden uyarlanmıştır : Linux'ta Screencasting .

örnek ffmpeg komutları

sadece ses

ffmpeg -f pulse -i default output.wav

ekran görüntüsü ile

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

Bu kayıt kayıpsız mı olacak?
Anmol Singh Jaggi

@AnmolSinghJaggi No. -crf 18kayıplıdır ve RGB'den YUV 4: 2: 0 renk uzayı dönüşümü nedeniyle de kayıp vardır.
llogan

Hayır sadece ses bölümünden bahsediyordum.
Anmol Singh Jaggi

1
@AnmolSinghJaggi Evet, ses kayıpsız olmalıdır.
llogan

2
Kaynağı manuel olarak değiştirmek istemiyorsanız pactl list soruces, monitör kaynağının dahili adını bulmak için komutu kullanabilir ve sonra -f pulse -i NAMEyerine kullanabilirsiniz default, örn -f pulse -i alsa_output.pci-0000_00_1f.3.analog-stereo.monitor. Tam ad sistemden sisteme farklılık gösterecektir.
regnarg

1

Ayrıca aşağıdaki gibi sıkıştırılmış MP3'e (seçtiğiniz bir bit hızında) kayıt yapabilirsiniz:

ffmpeg -f alsa -ac 2 -i default -acodec libmp3lame -ab 320k ouput.mp3
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.