alsa enregistrer la sortie audio
Le
Christophe PEREZ

Bonjour,
Je cherche Í enregistrer la sortie audio de ma carte son, sans toutefois
me résoudre Í la solution du branchement jack de la sortie sur l'entrée
ligne.
J'utilise ALSA, et ma config actuelle est :
defaults.pcm.card 0
defaults.pcm.device 0
ctl.equal {
type equal;
}
pcm.plugequal {
type equal;
slave.pcm "plug:dmix";
}
pcm.asymed {
type asym
playback.pcm "plugequal"
capture.pcm "hw:1,0"
}
pcm.!default {
type plug
slave.pcm "asymed"
}
Aujourd'hui, mon besoin est avec simplescreenrecorder, mais je ne pense
pas que ce soit spécifique Í l'usage. Demain, je peux avoir le même
besoin pour une autre utilisation.
Quelqu'un aurait-il connaissance d'une solution qui ne soit pas une usine
Í gaz, par exemple en adaptant mon .asoundrc ?
Merci d'avance.
Je cherche Í enregistrer la sortie audio de ma carte son, sans toutefois
me résoudre Í la solution du branchement jack de la sortie sur l'entrée
ligne.
J'utilise ALSA, et ma config actuelle est :
defaults.pcm.card 0
defaults.pcm.device 0
ctl.equal {
type equal;
}
pcm.plugequal {
type equal;
slave.pcm "plug:dmix";
}
pcm.asymed {
type asym
playback.pcm "plugequal"
capture.pcm "hw:1,0"
}
pcm.!default {
type plug
slave.pcm "asymed"
}
Aujourd'hui, mon besoin est avec simplescreenrecorder, mais je ne pense
pas que ce soit spécifique Í l'usage. Demain, je peux avoir le même
besoin pour une autre utilisation.
Quelqu'un aurait-il connaissance d'une solution qui ne soit pas une usine
Í gaz, par exemple en adaptant mon .asoundrc ?
Merci d'avance.
J'ai ajouté le module snd-aloop Í mon noyau. Chargé avec
modprobe snd-aloop pcm_substreams=1
Maintenant il me faut adapter ma conf avec :
pcm.multi {
type route;
slave.pcm {
type multi;
slaves.a.pcm "output";
slaves.b.pcm "loopin";
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.!default { type plug slave.pcm "multi" }
pcm.output { type hw card <Your Output Device Name> }
pcm.loopin { type plug slave.pcm "hw:Loopback,0,0" }
pcm.loopout { type plug slave.pcm "hw:Loopback,1,0" }
(selon https://trac.ffmpeg.org/wiki/Capture/
ALSA#Recordaudiofromanapplication)
Mais pour l'instant, je coince.
J'ai ça dans ma config ALSA, qui m'a servi par le passé :
#
# Usage:
# ALSA_PCM=dump-to-file
# ALSA_PCM=dump-to-file:/tmp/gotcha.wav
# ALSA_PCM=dump-to-file:/tmp/gotcha.wav,intel-raw
# ALSA_DUMP_FILE=/tmp/alsa.wav
# ALSA_DUMP_PCM=intel-raw
#
pcm.dump-to-file {
@args [ F S ]
@args.F {
type string default
{ @func getenv vars [ ALSA_DUMP_FILE ]
default "|~/fichiers/config/asoundrc_dumper" }
}
@args.S {
type string default
{ @func getenv vars [ ALSA_DUMP_PCM ] default "default-playback" }
}
type file
file $F
format "wav"
slave.pcm $S
}
Bon, cette config alsa ne fonctionne pas tel quel chez moi, donc inutile
de tenter de
Par contre, j'ai trouve sur
https://unix.stackexchange.com/questions/310164/create-virtual-device-in-
asoundrc-file
une config fonctionnelle :
pcm.!default {
type asym
playback.pcm "LoopAndReal"
capture.pcm "hw:1,0"
}
pcm.LoopAndReal {
type plug
slave.pcm mdev
route_policy "duplicate"
}
pcm.mdev {
type multi
slaves.a.pcm pcm.MixReale
slaves.a.channels 2
slaves.b.pcm pcm.MixLoopback
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
}
pcm.MixReale {
type dmix
ipc_key 1024
slave {
pcm "hw:0,0"
rate 48000
periods 128
period_time 0
period_size 1024 # must be power of 2
buffer_size 8192
}
}
pcm.MixLoopback {
type dmix
ipc_key 1025
slave {
pcm "hw:Loopback,0,0"
rate 48000
periods 128
period_time 0
period_size 1024 # must be power of 2
buffer_size 8192
}
}
Qu'il me faudrait intégrer Í ma config utilisant le pluqin equalizer...
Mais lÍ , ça semble totalement dépasser mes capacités...
Ah c'est gentil, mais en fait, j'aurais du plutÍ´t utiliser le terme
capturer au lieu de enregistrer, parce que je ne souhaite pas directement
l'enregistrer, mais plutÍ´t y avoir accès en enregistrement, Í
sélectionner au besoin.
C'est ce que semble permettre le module snd-aloop, mais il faut adapter
la config, et surtout, que je parvienne Í l'adapter Í mon usage avec le
plugin equal.
(plus détaillé dans mon autre post)
usage.
Tu peux confirmer ou infirmer stp ?
Aucune idée, je ne connais pas, désolé.
Pas de mal, merci.