[Résolu]Alsa et mixage de plusieurs sources : tout marche sauf mplayer

Alsa et mixage de plusieurs sources : tout marche sauf mplayer [Résolu] - Multimédia - Linux et OS Alternatifs

Marsh Posté le 18-01-2004 à 02:30:30    

Bonsoir tout le monde !
 
J'essaye (comme pas mal de personnes d'ailleurs) à configurer alsa de façon à ce que le mixage soft (dmix) fonctionne, pour pouvoir entendre plusieurs sources sonores en même temps. J'ai une carte son de base, qui ne gère pas ça en hard (ça serait trop beau...).
 
Après de longues heures à RTFMiser, je suis arrivé à un truc à peu près fonctionnel. Voici mon .asoundrc :
 


pcm.mixage {
    type dmix
    ipc_key 1024
    slave {
        pcm "hw:0,0"
        period_time 0
        period_size 4096
        buffer_size 16384
    }
}
 
pcm.!default {
    type plug
    slave.pcm "mixage"
}
 
ctl.mixer0 {
    type hw
    card 0
}


 
donc, dans l'ordre inverse, on a :
- le hardware
- le module "dmix" (appelé "mixage" chez moi), qui mixe les différentes sources qu'il reçoit, et envoie le résultat au hard
- le module "plug" (appelé "!default" ici), qui harmonise (ici à 48000 Hz) les fréquences des flux qu'il reçoit avant de les envoyer au dmix, pour éviter que certains sons soient lus trop lentement/rapidement
- les applis, qui envoient leur son au plug (ou alors directement au dmix si il n'y a pas de pb de vitesse de lecture)
 
J'ai ensuite configuré le plugin de sortie alsa de XMMS pour qu'il utilise le périphérique "default". Ça marche, je peux lancer plusieurs xmms, aplay et alsaplayer en même temps, ça marche nickel, et en plus ça rame pas un poil.
 
Ensuite, je me lance dans la config de mplayer. Je lance un xmms, et je tente un petit "mplayer -ao alsa9:default fichier.avi", et là, c'est le drame :
 


SDL: Samplerate: 44100Hz Channels: Stereo Format Signed 16-bit (Little-Endian)
ALSA lib pcm_hw.c:1055:(snd_pcm_hw_open) open /dev/snd/pcmC0D0p failed: Périphérique ou ressource occupé


 
Toujours avec mon xmms qui lit un morceau, je tente avec "-ao alsa9:mixage", et j'obtiens la même erreur.
 
Je coupe mon xmms et je retente (avec alsa9:mixage et alsa9:default), et ça marche dans les deux cas (mais ça rame, le son saute). Mais du coup, je ne peux plus relancer xmms/aplay/alsaplayer sans fermer mplayer...
 
Mais dans le debug de mplayer (voir ci-dessus), il y a des lignes qui parlent de SDL, et elles sont avant celles qui parlent d'alsa. C'est normal ? J'ai pourtant choisi le plugin de sortie alsa9...  
 
Parce que si mplayer utilise sdl comme plugin de sortie, c'est "normal" que ça plante, le plugin alsa de sdl déconne chez moi (mais ça, on verra plus tard :-) ).
 
Voilà, j'espère que c'est clair...
Quelqu'un a une idée ?
 
Merci d'avance pour vos réponses,


Message édité par macolu le 18-01-2004 à 16:10:51
Reply

Marsh Posté le 18-01-2004 à 02:30:30   

Reply

Marsh Posté le 18-01-2004 à 14:55:36    

J'ai finalement réussi (sans vraiment comprendre comment) à forcer mplayer à utiliser alsa directement, sans passer par sdl. Maintenant j'ai une nouvelle erreur :
 


alsa-init: requested format: 44100 Hz, 2 channels, Signed 16-bit (Little-Endian)
alsa-init: soundcard set to default  // default c le nom de mon dmix
alsa-init: unable to set periodsize: Argument invalide
Could not open/initialize audio device -> no sound.
Audio: no sound


 
qqn a une idée ?


Message édité par macolu le 18-01-2004 à 14:57:46
Reply

Marsh Posté le 18-01-2004 à 15:35:29    

Mplayer foire carrément avec alsa d'après ce que j'ai lu, vaut mieux utiliser l'émulation OSS. Et pour le dmix, tu peux lire  
http://lists.debian.org/debian-pow [...] 00716.html

Reply

Marsh Posté le 18-01-2004 à 15:56:25    

en fait j'ai trouvé : la sortie alsa de mplayer ne marche que si la period_size est à 1024. Et j'étais à 4096...
 
mais merci beaucoup pour ton lien, il m'a permis de faire marcher SDL (et donc tous les progs qui l'utilisent). Maintenant, SDL utilise bien mon dmix et pas directement le hw

Reply

Marsh Posté le 18-01-2004 à 16:10:01    

euh, un dernier petit truc : je passe l'option -srate à gmplayer à chaque fois. Je n'arrive pas à la mettre dans le ~/.mplayer/gui.conf, apparemment les paramètres à mettre dans ce fichier ne sont pas les mêmes termes que les arguments de la ligne de commande :-/

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed