Я пытаюсь записать свой экран и аудио от моих докладчиков, использующих 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
, это просто записывает экран и некоторые очень редкие маленькие шумы.
Существует ли обходное решение для этого, или там другой путь состоит в том, чтобы записать мой экран и аудио?
Одним решением, которое я нашел, является принятый ответ от Получения ТОЛЬКО настольного аудио с 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
для изменения записи каждого перезапуска.
Очень полезный ответ можно найти здесь: 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"