LinuxForum.Fans
Тема

[НЕРЕШАЕМО] Захват и запись звука в связке ALSA+Jack

Автор: Dr_House 14 сообщений 6744 просмотров
#320206

Привет всем.

Поставил все нужные пакеты, настроил, но записи звука не происходит. Просто тишина. Подскажите что еще забыл настроить.

Дело в том, что у меня интеграшка ALC883 и с alsa запись звуков из системы невозможно. Есть только варианты: Pulseaudio или Jack.

#320208

Похоже что у меня нет поддержки realtime
Команда

text
setcap cap_ipc_lock,cap_sys_nice=ep /usr/bin/jackd

выдает лишь

text
bash: setcap: команда не найдена

Может быть в этом всё дело?

Создавал файл /etc/security/limits.conf

text

@audio          -  rtprio                   99
@audio          -  nice                    -10
@audio          -  memlock             unlimited
#320215

а что альса не воспроизводит звук, там в микшере надо нужную комбинацию устройств захвата подобрать не? ИМХО не проще ли ffmpeg'ом писать, если честно jack у меня последний раз работал ещё в 13.0, а после неё чего-то вменяемого от него добиться было невозможно уже.
вот как-то так это выглядит:

text

ffmpeg -vol 4000 -f alsa -async 1 -ac 2 -i hw:0,0 -sameq -acodec libmp3lame -ab 96k out1.mp3

пишет то что звучит в колонках(при условии что в микшере настроено правильно) только практически без усиления, звук слабенький, при желании можно множитель к кодеку приписать, но это уж на любителя...
тыц

#320217
text
ffmpeg -vol 4000 -f alsa -async 1 -ac 2 -i hw:0,0 -sameq -acodec libmp3lame -ab 96k out1.mp3

А работает ли это с hda-intel ? поскольку StereoMix у меня отсутствует.

#320218
"Dr House⇓" написал:
А работает ли это с hda-intel ? поскольку StereoMix у меня отсутствует.

не стоит считать себя уникальным, hda-intel проще перчислить где его нет, чем где он есть, погляди лучше моё видео...

#320221
gramozeka написал:
[quote="Dr House⇓"]А работает ли это с hda-intel ? поскольку StereoMix у меня отсутствует.

не стоит считать себя уникальным, hda-intel проще перчислить где его нет, чем где он есть, погляди лучше моё видео...[/quote]

Возможно у вас есть настроенный .asoundrc, так как я попытался сделать как на видео, capture установил на line, всё выкрутил на максимум, но звук не записался. Запускал amarok.

#320223
"Dr House⇓" написал:
Возможно у вас есть настроенный .asoundrc

нет, всё штатно через кеды:

text

$ cat $HOME/.kde/share/apps/kmix/profiles/ALSA.HDA_Intel.1.default.xml

<?xml version="1.0" encoding="utf-8"?>

<soundcard driver="ALSA" version = "0:0" name = "*" type = "*" generation = "2" >

<profile id="ALSA.HD-Audio_Generic.1.default" name="HD-Audio Generic"/> <product vendor="Any Vendor" name="Generic Soundcard" />

<control id="^Master:0$" subcontrols="*" show="simple" /> <control id="^Front:0$" subcontrols="*" show="simple" /> <control id="^Surround:0$" subcontrols="*" show="simple" /> <control id="^Center:0$" subcontrols="*" show="simple" /> <control id="^LFE:0$" subcontrols="*" show="simple" /> <control id="^PCM:0$" subcontrols="*" show="simple" /> <control id="^CD:0$" subcontrols="*" show="simple" /> <control id="^Headphone:0$" subcontrols="*" show="simple" /> <control id="^Mic.*:0$" subcontrols="*" show="simple" /> <control id="^DAC:0$" subcontrols="*" show="simple" /> <control id="^ADC:0$" subcontrols="*" show="simple" /> <control id="^.*$" subcontrols="*" show="extended" mandatory="true" />

</soundcard>

и это :

text

cat $HOME/.kde/share/config/kmixrc

[Global] AllowDocking=true AutoStart=true AutoUseMultimediaKeys=true ConfigVersion=3 DefaultCardOnStart=ALSA.HDA_NVidia.1.default Labels=true MasterMixer=ALSA::HDA_Intel:1 MasterMixerDevice=Master:0 Menubar=true MixerIgnoreExpression=Modem Orientation=Vertical Orientation.TrayPopup=Vertical Position=0,0 Size=960,432 Soundmenu.Mixers= Tickmarks=true TrayVolumeControl=true Visible=false VolumeFeedback=false showOSD=true startkdeRestore=false

[Profiles] ALSA::HD-Audio_Generic:1=ALSA.HD-Audio_Generic.1.default ALSA::HDA_Intel:1=ALSA.HDA_Intel.1.default ALSA::HDA_NVidia:1=ALSA.HDA_NVidia.1.default

[View.ALSA.HD-Audio_Generic.1.default.ALSA::HD-Audio_Generic:1.IEC958:0] Show=false Split=false

[View.ALSA.HDA_Intel.1.default.ALSA::HDA_Intel:1.Analog_Mix:0] Show=false Split=false

[View.ALSA.HDA_Intel.1.default.ALSA::HDA_Intel:1.Auto-Mute_Mode:0.penum] Show=false

[View.ALSA.HDA_Intel.1.default.ALSA::HDA_Intel:1.CD:0] Show=true Split=false

[View.ALSA.HDA_Intel.1.default.ALSA::HDA_Intel:1.Capture:0] Show=false Split=false

[View.ALSA.HDA_Intel.1.default.ALSA::HDA_Intel:1.Capture:1] Show=false Split=false

[View.ALSA.HDA_Intel.1.default.ALSA::HDA_Intel:1.Capture:2] Show=false Split=false

[View.ALSA.HDA_Intel.1.default.ALSA::HDA_Intel:1.Center:0] Show=true Split=false

[View.ALSA.HDA_Intel.1.default.ALSA::HDA_Intel:1.Digital:0] Show=false Split=false

[View.ALSA.HDA_Intel.1.default.ALSA::HDA_Intel:1.Front:0] Show=true Split=false

[View.ALSA.HDA_Intel.1.default.ALSA::HDA_Intel:1.Front_Mic:0] Show=false Split=false

[View.ALSA.HDA_Intel.1.default.ALSA::HDA_Intel:1.Front_Mic_Boost:0] Show=false Split=false

[View.ALSA.HDA_Intel.1.default.ALSA::HDA_Intel:1.HDMI:0] Show=false Split=false

[View.ALSA.HDA_Intel.1.default.ALSA::HDA_Intel:1.Headphone:0] Show=true Split=false

[View.ALSA.HDA_Intel.1.default.ALSA::HDA_Intel:1.IEC958:0] Show=true Split=false

[View.ALSA.HDA_Intel.1.default.ALSA::HDA_Intel:1.IEC958_Default_PCM:0] Show=false Split=false

[View.ALSA.HDA_Intel.1.default.ALSA::HDA_Intel:1.Independent_HP:0.penum] Show=false

[View.ALSA.HDA_Intel.1.default.ALSA::HDA_Intel:1.Input_Source:0.cenum] Show=false

[View.ALSA.HDA_Intel.1.default.ALSA::HDA_Intel:1.Input_Source:1.cenum] Show=false

[View.ALSA.HDA_Intel.1.default.ALSA::HDA_Intel:1.Input_Source:2.cenum] Show=false

[View.ALSA.HDA_Intel.1.default.ALSA::HDA_Intel:1.LFE:0] Show=true Split=false

[View.ALSA.HDA_Intel.1.default.ALSA::HDA_Intel:1.Line:0] Show=false Split=false

[View.ALSA.HDA_Intel.1.default.ALSA::HDA_Intel:1.Line_Boost:0] Show=false Split=false

[View.ALSA.HDA_Intel.1.default.ALSA::HDA_Intel:1.Master:0] Show=true Split=false

[View.ALSA.HDA_Intel.1.default.ALSA::HDA_Intel:1.PCM:0] Show=true Split=false

[View.ALSA.HDA_Intel.1.default.ALSA::HDA_Intel:1.Rear_Mic:0] Show=false Split=false

[View.ALSA.HDA_Intel.1.default.ALSA::HDA_Intel:1.Rear_Mic_Boost:0] Show=false Split=false

[View.ALSA.HDA_Intel.1.default.ALSA::HDA_Intel:1.Side:0] Show=false Split=false

[View.ALSA.HDA_Intel.1.default.ALSA::HDA_Intel:1.Surround:0] Show=true Split=false

[View.ALSA.HDA_NVidia.1.default.ALSA::HDA_NVidia:1.IEC958:0] Show=true Split=false

[View.ALSA.HDA_NVidia.1.default.ALSA::HDA_NVidia:1.IEC958:1] Show=true Split=false

[View.ALSA.HDA_NVidia.1.default.ALSA::HDA_NVidia:1.IEC958:2] Show=true Split=false

[View.ALSA.HDA_NVidia.1.default.ALSA::HDA_NVidia:1.IEC958:3] Show=true Split=false


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

#320224

Благодарю за скриншот и конфиги. Можно еще еще ваш вывод aplay -L ?

Перезагружусь, должно помочь.

#320225
"Dr House⇓" написал:
Можно еще еще ваш вывод aplay -L ?
text

null
    Discard all samples (playback) or generate zero samples (capture)
default:CARD=Intel
    HDA Intel, AD198x Analog
    Default Audio Device
sysdefault:CARD=Intel
    HDA Intel, AD198x Analog
    Default Audio Device
front:CARD=Intel,DEV=0
    HDA Intel, AD198x Analog
    Front speakers
surround40:CARD=Intel,DEV=0
    HDA Intel, AD198x Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=Intel,DEV=0
    HDA Intel, AD198x Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Intel,DEV=0
    HDA Intel, AD198x Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Intel,DEV=0
    HDA Intel, AD198x Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Intel,DEV=0
    HDA Intel, AD198x Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Intel,DEV=0
    HDA Intel, AD198x 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
#320227

У вас AD198x Analog но у меня Realtek ALC883 Analog - это немного другой аудиочип. Соответственно, у меня это не реализовано. Так что, остается программный вариант через Pulseaudio.

#320233
Dr House написал:
У вас AD198x Analog но у меня Realtek ALC883 Analog - это немного другой аудиочип. Соответственно, у меня это не реализовано. Так что, остается программный вариант через Pulseaudio.

да какая разница какой чип, захват идет с альсы, в kmix'е кнопочка есть "настроить каналы" добавляешь нужные и всё, если бы все так было то как бы тогда играли колонки? или они не работают вообще кроме как через пульс??? Вообще пульса в Слаке это дикое уродство и извращение - как пятая нога у лошади между глаз... разберись как работает alsa\oss+ffmpeg и всё будет хорошо, а через пульсу, думается мне, захват выходного потока не организовать, если только не прибить гвоздями systemd со всеми его костылями, но тут я не советчик...

#320247
text
да какая разница какой чип, захват идет с альсы, в kmix'е кнопочка есть "настроить каналы" добавляешь нужные 

Разница есть, я настроил все так же как и вы у себя, но как результат ничего не записалось. А всё это значит, что у вас есть эта возможность, а у меня нет.

text
разберись как работает alsa\oss+ffmpeg и всё будет хорошо, а через пульсу, думается мне, захват выходного потока не организовать

1. Я всегда записывал через ffmpeg+pulseaudio в Gentoo и все было ОК. А в слаке с пульсами косяки небольшие + при записи через ffmpeg звук отстает от картинки. Вот я и хотел настроить jack или саму ALSA, но как мне сказали на #gentoo и #calculate-ru - Запись звука в чистой alsa с интеграшкой Realtek HDA ALC883 невозможна без использования специального loopback-кабеля.

Так что тут либо настраивать пульсы, либо искать этот кабель, который, кстати хз как выглядит.

#320262
"Dr House⇓" написал:
Разница есть, я настроил все так же как и вы у себя, но как результат ничего не записалось.

ну что же, видимо действительно кривой девайс, вообще когда-то в давние времена, когда еще вин98 была свежайшим хитом, я сталкивался с realtek и как-то он мне сразу вызвал отрицательные чувства, так с тех времён сии поделия стараюсь обходить стороной, есть производители железа с более ровными руками.

"Dr House⇓" написал:
Так что тут либо настраивать пульсы, либо искать этот кабель, который, кстати не знаю как выглядит.

кабель там простой, 3,5 мм с оплёткой, только это тот ещё костыль, реальный, вот тут есть упоминание о нём- это не что иное как самолепная приблуда, паяется руками по месту.

P.S. хотя.., может я и несправедлив к железке, возможно трабла не в ней а в ванильном ffmpeg. У меня он собран с максимальным набором зависимостей, на slackbuilds.org как раз расписано как надо его готовить. Помимо того что сам ffmpeg нужно собирать, ему нужно собрать кучу всяких приколюх вот так выглядит скриптик который его собирает:

text

ASS=yes \
CELT=yes \
DC1394=yes \
FAAC=yes \
FREI0R=yes \
GSM=yes \
JP2=yes \
LAME=yes \
OPENAL=yes \
OPENCORE=yes \
OPENSSL=yes \
RTMP=yes \
SCHROEDINGER=yes \
SPEEX=yes \
VPX=yes \
X264=yes \
XVID=yes \
./ffmpeg.SlackBuild

а вот что написано на самом slackbuilds.org


You can enable a lot of optional (not-autodetected) features by
passing variables to the script (VAR=yes/no ./ffmpeg.SlackBuild):
ASS=yes|no (default: no), requires libass
BLURAY=yes|no (default: no), requires libbluray
CELT=yes|no (default: no), requires celt
DC1394=yes|no (default: no), requires libdc1394
FAAC=yes|no (default: no), requires faac (creates non-redistributable binary)
FREI0R=yes|no (default: no), requires frei0r
GSM=yes|no (default: no), requires gsm
JP2=yes|no (default: no), requires openjpeg
LAME=yes|no (default: yes), requires lame
OPENAL=yes|no (default: no), requires OpenAL
OPENCORE=yes|no (default: no), requires opencore-amr
OPENSSL=yes|no (default: no), creates non-redistributable binary
RTMP=yes|no (default: no), requires rtmpdump
SCHROEDINGER=yes|no (default: no), requires schroedinger
SPEEX=yes|no (default: no), requires speex
VPX=yes|no (default: no), requires libvpx
X264=yes|no (default: yes), requires x264
XVID=yes|no (default: no), requires xvidcore

Make sure to run this script in a real root shell ("su -") and that you
have either tetex or texlive installed.

All of the mentioned requirements are available from SlackBuilds.org

возможно захват и заработает если всё это собрать, надо проверять, у меня то работает, да и народ вроде тоже пробовал с положительным результатом...

#320271
"Dr House⇓" написал:
при записи через ffmpeg звук отстает от картинки.

не отстаёт если нужные ключи прицепить - пример видео

text

ffmpeg -vol 4000 -f alsa -async 1 -ac 2 -i hw:0,0 -f x11grab -s 1920x1080 -r 25 -i :0.0 -sameq -acodec libmp3lame -ab 96k out1.avi
Войдите или зарегистрируйтесь, чтобы ответить.