Hi, I’m building my custom docker-jitsi-meet from the official repo to implement the multiple jibri sip gateway.
I can invite multiple sip video clients in the meet and see them in the chrome.
The problem is
- My sip client can hear the audio from meet, but the meet cannot hear the audio from remote sip client. I captured the audio stream use tcpdump, the audio acturely transported to the jibri as video does.
- I want to know how the audio stream be transported in the jibri sip archtecture. About pulseaudio , ALSA, and ffmpeg and the config in the pjsua.conf.
- I could only set
--capture-dev=17
(the alsa [default]) then the remote sip client can hear the audio. But how to set the--playback-dev
? I tried almost all 32 devices and cannot hear it. - The jibri instance always muted in the meet, jicofo log shows the AudioMuted=true&IsJibri=true…when jibri joined. Is it the same problem?
#The jibri.conf(default one) shows the ffmpeg audiosource is pulse, the command is
ffmpeg -re -f x11grab -r 60 -s 1920x1080 -i :0 -f x11grab -r 60 -s 1280x720 -i :1 -map 0 -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video1 -map 1 -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video0`
#Audio Device List
Found 32 devices
0: ALSA [lavrate] (1/1)
1: ALSA [samplerate] (1/1)
2: ALSA [speexrate] (1/1)
3: ALSA [jack] (0/0)
4: ALSA [oss] (0/0)
5: ALSA [pulse] (1/1)
6: ALSA [upmix] (1/1)
7: ALSA [vdownmix] (1/1)
8: ALSA [amix] (0/1)
9: ALSA [asnoop] (1/0)
10: ALSA [aduplex] (1/1)
11: ALSA [bmix] (0/1)
12: ALSA [bsnoop] (1/0)
13: ALSA [bduplex] (1/1)
14: ALSA [pjsua] (1/1)
15: ALSA [pjcap] (1/1)
16: ALSA [pjply] (1/1)
17: ALSA [default] (1/1)
18: ALSA [hw:CARD=Loopback,DEV=0] (1/1)
19: ALSA [hw:CARD=Loopback,DEV=1] (1/1)
20: ALSA [plughw:CARD=Loopback,DEV=0] (1/1)
21: ALSA [plughw:CARD=Loopback,DEV=1] (1/1)
22: ALSA [sysdefault:CARD=Loopback] (1/1)
23: ALSA [front:CARD=Loopback,DEV=0] (1/1)
24: ALSA [surround21:CARD=Loopback,DEV=0] (1/1)
25: ALSA [surround40:CARD=Loopback,DEV=0] (1/1)
26: ALSA [surround41:CARD=Loopback,DEV=0] (1/1)
27: ALSA [surround50:CARD=Loopback,DEV=0] (1/1)
28: ALSA [surround51:CARD=Loopback,DEV=0] (1/1)
29: ALSA [surround71:C
1:OK
# my .asoundrc
pcm.amix { [0/4993]
type dmix
ipc_key 219345
slave.pcm "hw:0,0,0"
}
pcm.asnoop {
type dsnoop
ipc_key 219346
slave.pcm "hw:1,1,0"
}
pcm.aduplex {
type asym
playback.pcm "amix"
capture.pcm "asnoop"
}
pcm.bmix {
type dmix
ipc_key 219347
slave.pcm "hw:1,0,0"
}
pcm.bsnoop {
type dsnoop
ipc_key 219348
slave.pcm "hw:0,1,0"
}
pcm.bduplex {
type asym
playback.pcm "bmix"
capture.pcm "bsnoop"
}
pcm.pjsua {
type plug
slave.pcm "bduplex"
}
pcm.pjcap {
type plug
slave.pcm "hw:0,1,0"
}
pcm.pjply {
type plug
slave.pcm "hw:1,0,0"
}
pcm.!default {
type plug
slave.pcm "aduplex"
}
#pulse audio (the default, I never change )
.include /etc/pulse/default.pa [0/5000]
# Load the virtual sink and set it as default
load-module module-virtual-sink sink_name=jibri-loop
set-default-sink jibri-loop
# set the monitor of the jibri-loop sink to be the default source
set-default-source jibri-loop.monitor
# my pjsua.conf
--capture-dev=17
--playback-dev=16
--video
--vcapture-dev=1
#--rec-file /config/out.wav
#--no-color
--color
--log-level=5
--app-log-level=6
--auto-update-nat 0
--disable-stun
#--stun-srv=rcs.runaiot.sh
#--proxy
--no-tcp
--dis-codec GSM
--dis-codec H263
--dis-codec iLBC
--dis-codec G722
--dis-codec speex
--dis-codec pcmu
--dis-codec pcma
--dis-codec opus
#--add-codec pcmu
#--add-codec pcma
#--add-codec speex
--add-codec G722
#--add-codec opus
--add-codec H264
--no-vad
--ec-tail 0
--quality 10
--max-calls=1
--auto-keyframe=30
#--no-stderr
--rtp-port=19900
--log-file /config/logs/pjsua.log
--id xxxxx
--registrar xxxxx
--realm *
--username xxxx
--password xxxxx
@emrah Could you please explain this, thanks a lot.