LINUX.ORG.RU

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

ZenitharChampion ★★★★★
()

Попробуй добавить alsa loopback и цепляйся к нему. Это уже как «панацея Дейкстры» — добавление уровня косвенности.

alegz ★★★★
()
Ответ на: комментарий от superuser

https://trac.ffmpeg.org/ticket/615

Суть в чём. Записываешь видео с экрана:

ffmpeg -f alsa -ac 2 -i pulse -f x11grab -r 30 -s 1920x1080 -i :0.0 -acodec pcm_s16le -vcodec libx264 -preset ultrafast -threads 0 output.mkv

Всё нормально. А если попробовать вместо пульсы использовать ALSA:

ffmpeg -f alsa -ac 2 -i hw:0 -f x11grab -r 30 -s 1920x1080 -i :0.0 -acodec pcm_s16le -vcodec libx264 -preset ultrafast -threads 0 output.mkv

Постоянно возникает ошибка «ALSA buffer xrun». В результате, в готовом видео есть рассинхрон звука и видео.

Я лично для себя нашёл несколько нестандартных решений этой проблемы. Но включение PulseAudio реально проще. Включил, записал видео, выключил. Как-то так.

ZenitharChampion ★★★★★
()
Ответ на: комментарий от ZenitharChampion

У меня пишет нормально так

ffmpeg -y -loglevel error -vaapi_device /dev/dri/renderD128 -f x11grab -framerate 60 -video_size 1920x1080 -i :0.0+0,0 -f alsa -ac 2 -i RECLOOPBACK -vf format=nv12,hwupload -c:v h264_vaapi -qp 18 -c:a aac /tmp/video.mkv
Если VAAPI нет, пробуй так:
ffmpeg -y -loglevel error -f x11grab -framerate 60 -video_size 1920x1080 -i :0.0+0,0 -f alsa -ac 2 -i RECLOOPBACK -c:v libx264 -qp 18 -c:a aac /tmp/video.mkv

RECLOOPBACK - это что ищет ТС

superuser ★★★★☆
()
Ответ на: комментарий от superuser
 0 [MU900          ]: USB-Audio - MU900
                      MU900 MU900 at usb-0000:00:02.0-2, full speed
 1 [NVidia_1       ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0xfe024000 irq 22
 2 [NVidia         ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0xfbffc000 irq 16
 3 [Loopback       ]: Loopback - Loopback
                      Loopback 1

rustzz
() автор топика
Ответ на: комментарий от superuser

> RECLOOPBACK

Что это? А как включить?

У меня на стационарном компе есть Creative SB Live! 5.1, и там можно ОДНОВРЕМЕННО зависывать вывод на колонки, и микрофон. Это штатная возможность.

А вот на встроенном звуке HDA Intel такой фичи нету ( Я так понимаю, loopback позволяет это всё-таки сделать?

ZenitharChampion ★★★★★
()
Ответ на: комментарий от superuser
null
    Discard all samples (playback) or generate zero samples (capture)
default
    Default Audio Device
sysdefault
    Default Audio Device
default:CARD=MU900
    MU900, USB Audio
    Default Audio Device
sysdefault:CARD=MU900
    MU900, USB Audio
    Default Audio Device
front:CARD=MU900,DEV=0
    MU900, USB Audio
    Front output / input
surround21:CARD=MU900,DEV=0
    MU900, USB Audio
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=MU900,DEV=0
    MU900, USB Audio
    4.0 Surround output to Front and Rear speakers
surround41:CARD=MU900,DEV=0
    MU900, USB Audio
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=MU900,DEV=0
    MU900, USB Audio
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=MU900,DEV=0
    MU900, USB Audio
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=MU900,DEV=0
    MU900, USB Audio
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=MU900,DEV=0
    MU900, USB Audio
    IEC958 (S/PDIF) Digital Audio Output
default:CARD=NVidia_1
    HDA NVidia, ALC662 rev1 Analog
    Default Audio Device
sysdefault:CARD=NVidia_1
    HDA NVidia, ALC662 rev1 Analog
    Default Audio Device
front:CARD=NVidia_1,DEV=0
    HDA NVidia, ALC662 rev1 Analog
    Front output / input
surround21:CARD=NVidia_1,DEV=0
    HDA NVidia, ALC662 rev1 Analog
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=NVidia_1,DEV=0
    HDA NVidia, ALC662 rev1 Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=NVidia_1,DEV=0
    HDA NVidia, ALC662 rev1 Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=NVidia_1,DEV=0
    HDA NVidia, ALC662 rev1 Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=NVidia_1,DEV=0
    HDA NVidia, ALC662 rev1 Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=NVidia_1,DEV=0
    HDA NVidia, ALC662 rev1 Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=NVidia_1,DEV=0
    HDA NVidia, ALC662 rev1 Digital
    IEC958 (S/PDIF) Digital Audio Output
hdmi:CARD=NVidia,DEV=0
    HDA NVidia, HDMI 0
    HDMI Audio Output
hdmi:CARD=NVidia,DEV=1
    HDA NVidia, HDMI 0
    HDMI Audio Output
hdmi:CARD=NVidia,DEV=2
    HDA NVidia, HDMI 0
    HDMI Audio Output
hdmi:CARD=NVidia,DEV=3
    HDA NVidia, HDMI 0
    HDMI Audio Output
default:CARD=Loopback
    Loopback, Loopback PCM
    Default Audio Device
sysdefault:CARD=Loopback
    Loopback, Loopback PCM
    Default Audio Device
front:CARD=Loopback,DEV=0
    Loopback, Loopback PCM
    Front output / input
surround21:CARD=Loopback,DEV=0
    Loopback, Loopback PCM
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=Loopback,DEV=0
    Loopback, Loopback PCM
    4.0 Surround output to Front and Rear speakers
surround41:CARD=Loopback,DEV=0
    Loopback, Loopback PCM
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Loopback,DEV=0
    Loopback, Loopback PCM
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Loopback,DEV=0
    Loopback, Loopback PCM
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Loopback,DEV=0
    Loopback, Loopback PCM
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
rustzz
() автор топика
Ответ на: комментарий от rustzz

У тебя вижу драйвер usb-звуковухи загрузился раньше чем snd_aloop. Ты это так уже настроил или вручную делал modprobe snd_aloop?

superuser ★★★★☆
()
Последнее исправление: superuser (всего исправлений: 1)
Ответ на: комментарий от superuser
 0 snd_hda_intel
 1 snd_hda_intel
 2 snd_usb_audio

не модпробил думаю нужно в ядро внедрить, а не модулем. но * не включается

rustzz
() автор топика
Ответ на: комментарий от superuser
 0 [Loopback       ]: Loopback - Loopback
                      Loopback 1
 1 [NVidia_1       ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0xfe024000 irq 22
 2 [NVidia         ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0xfbffc000 irq 16
 3 [MU900          ]: USB-Audio - MU900
                      MU900 MU900 at usb-0000:00:02.0-2, full speed
rustzz
() автор топика
Ответ на: комментарий от superuser
null
    Discard all samples (playback) or generate zero samples (capture)
default
    Default Audio Device
sysdefault
    Default Audio Device
default:CARD=Loopback
    Loopback, Loopback PCM
    Default Audio Device
sysdefault:CARD=Loopback
    Loopback, Loopback PCM
    Default Audio Device
front:CARD=Loopback,DEV=0
    Loopback, Loopback PCM
    Front output / input
default:CARD=NVidia_1
    HDA NVidia, ALC662 rev1 Analog
    Default Audio Device
sysdefault:CARD=NVidia_1
    HDA NVidia, ALC662 rev1 Analog
    Default Audio Device
front:CARD=NVidia_1,DEV=0
    HDA NVidia, ALC662 rev1 Analog
    Front output / input
default:CARD=MU900
    MU900, USB Audio
    Default Audio Device
sysdefault:CARD=MU900
    MU900, USB Audio
    Default Audio Device
front:CARD=MU900,DEV=0
    MU900, USB Audio
    Front output / input

rustzz
() автор топика
Ответ на: комментарий от superuser

не понял вопроса. микро имеет свой вывод на джек, поэтому он в списке и для аута и инпута

rustzz
() автор топика
Ответ на: комментарий от rustzz

1) Настрой чтобы индексы звуковых карт были стабильны, например так:

$ cat /etc/modprobe.d/my-snd.conf
options snd_aloop index=0
options snd_hda_intel index=1
options snd_usb_audio=2
options snd_pcsp index=5
2) Модуль snd_aloop «в автозагрузку»:
$ cat /etc/modules-load.d/my-modules.conf
snd_aloop
3) Настройка конвейеров alsa (~/.asoundrc или /etc/asound.conf):
$ cat ~/.asoundrc
pcm.multi {
    type route;
    slave.pcm {
        type multi;
        slaves.a.pcm "dmix:3,0"; # КОЛОНКИ ?
        slaves.b.pcm "dmix:Loopback,0,0";
        slaves.a.channels 2;
        slaves.b.channels 2;
        bindings.0.slave a;
        bindings.0.channel 0;
        bindings.1.slave a;
        bindings.1.channel 1;
        bindings.2.slave b;
        bindings.2.channel 0;
        bindings.3.slave b;
        bindings.3.channel 1;
    }
    ttable.0.0 1;
    ttable.1.1 1;
    ttable.0.2 1;
    ttable.1.3 1;
}
pcm.premulti {
	type plug
	slave.pcm "multi"
}
pcm.!default {
	type asym
	playback.pcm "premulti"
	# capture.pcm "RECLOOPBACK"
	capture.pcm "hw:3,0" # МИКРОФОН ?
	hint.description "DEFAULT"
}
pcm.RECLOOPBACK {
	type plug
	slave.pcm "dsnoop:Loopback,1,0"
	hint.description "RECLOOPBACK"
}
Если всё указано правильно, то звук должен работать. Иначе настраивай п.3 где КОЛОНКИ / МИКРОФОН.
4) Пробуем писать с помощью ffmpeg (исправить разрешение экрана на своё)
ffmpeg -y -loglevel error -f x11grab -framerate 60 -video_size 1920x1080 -i :0.0+0,0 -f alsa -ac 2 -i RECLOOPBACK -c:v libx264 -qp 18 -c:a aac /tmp/video.mkv
5) При использовании OBS надо будет указывать источник звука: RECLOOPBACK
Микширования с микрофона пока не делал.

superuser ★★★★☆
()
Последнее исправление: superuser (всего исправлений: 2)
Ответ на: комментарий от superuser

да, ffmpeg, ребучусь. кстати, даже если после ребута не заработает, спасибо большое за помощь. конфиг аж написал. я вообще не курю что такое dmix и т.д. вот hw понимаю что id хардов при ините

rustzz
() автор топика
Ответ на: комментарий от superuser

при открытии микшера первым показывает лупбек. музыка не проигрывается с вк, проматывается, видимо не знает куда выводить

rustzz
() автор топика
Ответ на: комментарий от superuser
null
    Discard all samples (playback) or generate zero samples (capture)
default
    DEFAULT
RECLOOPBACK
    RECLOOPBACK
sysdefault:CARD=Loopback
    Loopback, Loopback PCM
    Default Audio Device
front:CARD=Loopback,DEV=0
    Loopback, Loopback PCM
    Front output / input
surround21:CARD=Loopback,DEV=0
    Loopback, Loopback PCM
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=Loopback,DEV=0
    Loopback, Loopback PCM
    4.0 Surround output to Front and Rear speakers
surround41:CARD=Loopback,DEV=0
    Loopback, Loopback PCM
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Loopback,DEV=0
    Loopback, Loopback PCM
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Loopback,DEV=0
    Loopback, Loopback PCM
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Loopback,DEV=0
    Loopback, Loopback PCM
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
sysdefault:CARD=NVidia_1
    HDA NVidia, ALC662 rev1 Analog
    Default Audio Device
front:CARD=NVidia_1,DEV=0
    HDA NVidia, ALC662 rev1 Analog
    Front output / input
surround21:CARD=NVidia_1,DEV=0
    HDA NVidia, ALC662 rev1 Analog
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=NVidia_1,DEV=0
    HDA NVidia, ALC662 rev1 Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=NVidia_1,DEV=0
    HDA NVidia, ALC662 rev1 Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=NVidia_1,DEV=0
    HDA NVidia, ALC662 rev1 Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=NVidia_1,DEV=0
    HDA NVidia, ALC662 rev1 Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=NVidia_1,DEV=0
    HDA NVidia, ALC662 rev1 Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=NVidia_1,DEV=0
    HDA NVidia, ALC662 rev1 Digital
    IEC958 (S/PDIF) Digital Audio Output
hdmi:CARD=NVidia,DEV=0
    HDA NVidia, HDMI 0
    HDMI Audio Output
hdmi:CARD=NVidia,DEV=1
    HDA NVidia, HDMI 0
    HDMI Audio Output
hdmi:CARD=NVidia,DEV=2
    HDA NVidia, HDMI 0
    HDMI Audio Output
hdmi:CARD=NVidia,DEV=3
    HDA NVidia, HDMI 0
    HDMI Audio Output
sysdefault:CARD=MU900
    MU900, USB Audio
    Default Audio Device
front:CARD=MU900,DEV=0
    MU900, USB Audio
    Front output / input
surround21:CARD=MU900,DEV=0
    MU900, USB Audio
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=MU900,DEV=0
    MU900, USB Audio
    4.0 Surround output to Front and Rear speakers
surround41:CARD=MU900,DEV=0
    MU900, USB Audio
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=MU900,DEV=0
    MU900, USB Audio
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=MU900,DEV=0
    MU900, USB Audio
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=MU900,DEV=0
    MU900, USB Audio
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=MU900,DEV=0
    MU900, USB Audio
    IEC958 (S/PDIF) Digital Audio Output
rustzz
() автор топика
Ответ на: комментарий от rustzz

музыка не проигрывается с вк, проматывается, видимо не знает куда выводить

с какого ещё вк? звук то вообще есть?

superuser ★★★★☆
()
Ответ на: комментарий от rustzz

Я же пейсал OBS захват desktop аудио используя только alsa (комментарий)

Если всё указано правильно, то звук должен работать. Иначе настраивай п.3 где КОЛОНКИ / МИКРОФОН

Короче я уже запарился

superuser ★★★★☆
()
Последнее исправление: superuser (всего исправлений: 1)
Ответ на: комментарий от superuser

п.3 - пункт третий? конфиги такого объема не понимаю

rustzz
() автор топика
Ответ на: комментарий от superuser

ладно, не утруждайся, благодарен за помощь, попробую посмотреть фулл гайды по всем пунктам конфига

rustzz
() автор топика
Ответ на: комментарий от superuser

П.1) ошибка, исправил (ver.2) :

$ cat /etc/modprobe.d/my-snd.conf
options snd_aloop index=0
options snd_hda_intel index=1,2
options snd_usb_audio index=3
options snd_pcsp index=5
rustzz, после исправления и ребута должно заработать.
Но это если они у тебя модулями...

ZenitharChampion

superuser ★★★★☆
()
Последнее исправление: superuser (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.