Как записать аудио из приложения

Я пытаюсь записать свой экран и аудио от моих докладчиков, использующих ffmpeg. Это хорошо работает на моей башне ПК с Ubuntu 18.04, но не работает с помощью моего ThinkPad.

На башне ПК это хорошо работает с помощью https://trac.ffmpeg.org/wiki/Capture/Desktop (от https://trac.ffmpeg.org/wiki/Capture/Desktop). Но если я использую ноутбук, та же команда записывает звук от моего микрофона, который приводит к в большой степени уменьшенному качеству звука.

arecord -l возвраты

arecord -l
**** Liste der Hardware-Geräte (CAPTURE) ****
Karte 3: PCH [HDA Intel PCH], Gerät 0: ALC3232 Analog [ALC3232 Analog]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0

и aplay -l возвраты:

aplay -l
**** Liste der Hardware-Geräte (PLAYBACK) ****
Karte 2: HDMI [HDA Intel HDMI], Gerät 3: HDMI 0 [HDMI 0]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 2: HDMI [HDA Intel HDMI], Gerät 7: HDMI 1 [HDMI 1]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 2: HDMI [HDA Intel HDMI], Gerät 8: HDMI 2 [HDMI 2]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 2: HDMI [HDA Intel HDMI], Gerät 9: HDMI 3 [HDMI 3]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 2: HDMI [HDA Intel HDMI], Gerät 10: HDMI 4 [HDMI 4]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 3: PCH [HDA Intel PCH], Gerät 0: ALC3232 Analog [ALC3232 Analog]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0

Попытка установить вход как с ffmpeg -video_size 1368x768 -framerate 25 -f x11grab -i :0.0+0,0 -f alsa -i hw:0,0 -ac 2 output.mkv (так hw:0,0 который должен в моем opinition быть устройством по умолчанию), результаты по ошибке:

ALSA lib pcm_hw.c:1713:(_snd_pcm_hw_open) Invalid value for card
[alsa @ 0x55931414d3e0] cannot open audio device hw:0,0 (No such file or directory)

Если я использую https://trac.ffmpeg.org/wiki/Capture/ALSA#Recordaudiofromanapplication, так вызов sudo modprobe snd-aloop pcm_substreams=1, добавить

# .asoundrc
pcm.!default { type plug slave.pcm "hw:Loopback,0,0" }

кому: /etc/asound.conf, измените мое устройство вывода на так обратную петлю через настройки GUI и работайте ffmpeg -f alsa -ac 2 -ar 44100 -i hw:Loopback,1,0 out.wav это записывает совершенно корректное аудио. Но если я работаю ffmpeg -video_size 1368x768 -framerate 25 -f x11grab -i :0.0+0,0 -f alsa -ac 2 -ar 44100 -i hw:Loopback,1,0 output.mkv, это просто записывает экран и некоторые очень редкие маленькие шумы.

Существует ли обходное решение для этого, или там другой путь состоит в том, чтобы записать мой экран и аудио?

0
задан 13 July 2018 в 06:36

2 ответа

Одним решением, которое я нашел, является принятый ответ от Получения ТОЛЬКО настольного аудио с ffmpeg: Установка pavucontrol, начните записывать с ffmpeg -video_size 1280x1024 -framerate 25 -f x11grab -i :0.0 -f pulse -vcodec mpeg2video -thread_queue_size 512 -ac 2 -t 02:00:00 -i default (или безотносительно), перейдите в pavucontrol, выберите Recorings и изменение Lavf56.15.102 (или безотносительно) к Monitor of Internal Audio Analog Stereo. Работавший для меня.

Я приму ответ, который может сделать это без использования pavucontrol для изменения записи каждого перезапуска.

0
ответ дан 28 October 2019 в 08:43

Очень полезный ответ можно найти здесь: https://unix.stackexchange.com/a/489522

В переводе на ваш случай это может выглядеть следующим образом:

A="$(pacmd list-sources | grep -PB 1 "analog.*monitor>" | head -n 1 | perl -pe 's/.* //g')"
ffmpeg -video_size 1280x1024 -framerate 25 -f x11grab -i :0.0 -f pulse -vcodec mpeg2video -thread_queue_size 512 -ac 2 -t 02:00:00 -i "$A"
0
ответ дан 15 July 2020 в 18:41

Другие вопросы по тегам:

Похожие вопросы: