wgbecks
Active Member
I routinely run multiple instances of rx.py (separate feeds) of op25 and liquidsoap on Pi-4B's and SFF PCs imaged with Ubuntu. You just
have to be cognizant of the need to specify unique file names and port numbers for each of the instances of op25.
You can ignore the “URL” field in your output.icecast operators as they serve no real purpose. Just configure them as an empty set
in your liquidsoap scripts. IE: url=””
The following is a dump of active python process indicating the presence of four instances of op25 running on a Raspberry Pi-4B SBC.
My preference is to utilize rx.py whereby each instance runs separately as a system service that allows me to independently control, change,
or restart any particular instance (feed) without impacting any of the others.
pi@raspberrypi-grb-4B:~ $ ps -aux | grep python
pi 20599 0.1 0.7 32468 14288 ? S Feb26 10:17 /usr/bin/python3 ./audio.py -u 23480 -x 1.25 -s
pi 20602 0.2 0.7 32468 14168 ? S Feb26 21:02 /usr/bin/python3 ./audio.py -u 23460 -x 1.25 -s
pi 22583 0.6 0.2 32468 3864 ? S Feb17 130:15 /usr/bin/python3 ./audio.py -u 23450 -x 1.25 -s
pi 22586 0.1 0.2 32468 3924 ? S Feb17 28:20 /usr/bin/python3 ./audio.py -u 23470 -x 1.25 -s
pi 25798 0.0 0.0 7444 512 pts/0 S+ 18:22 0:00 grep --color=auto python
pi 28018 22.3 5.2 600780 98948 ? Sl Feb26 1604:57 /usr/bin/python3 ./rx.py --args rtl=00000103 --gains lna:40 -T depere.tsv -q 0 -o 7500 -S 1000000 -D cqpsk -v 5 -w -u 23470 -V -M depere.json -l http:0.0.0.0:8082
pi 28069 22.4 6.3 600792 120328 ? Sl Feb26 1607:04 /usr/bin/python3 ./rx.py --args rtl=00000104 --gains lna:45 -T luxe.tsv -q -1 -o 7100 -S 1000000 -D cqpsk -v 1 -w -u 23480 -V -M luxe.json -l http:0.0.0.0:8083
pi 28126 23.4 6.0 600764 114876 ? Sl Feb26 1681:29 /usr/bin/python3 ./rx.py --args rtl=00000101 --gains lna:45 -T siren1.tsv -q 0 -o 7600 -S 1000000 -D cqpsk -v 1 -w -u 23450 -V -M siren1.json -l http:0.0.0.0:8080
pi 28175 22.6 7.0 600772 133088 ? Sl Feb26 1623:23 /usr/bin/python3 ./rx.py --args rtl=00000102 --gains lna:45 -T siren2.tsv -q 0 -o 7500 -S 1000000 -D cqpsk -v 1 -w -u 23460 -V -M siren2.json -l http:0.0.0.0:8081
No shown in the dump above, but I utilize NGINX configured as a reverse proxy to protect access to the op25 http consoles in that many
of my installations are remotely located and have to be managed and monitored over the Internet.
have to be cognizant of the need to specify unique file names and port numbers for each of the instances of op25.
You can ignore the “URL” field in your output.icecast operators as they serve no real purpose. Just configure them as an empty set
in your liquidsoap scripts. IE: url=””
The following is a dump of active python process indicating the presence of four instances of op25 running on a Raspberry Pi-4B SBC.
My preference is to utilize rx.py whereby each instance runs separately as a system service that allows me to independently control, change,
or restart any particular instance (feed) without impacting any of the others.
pi@raspberrypi-grb-4B:~ $ ps -aux | grep python
pi 20599 0.1 0.7 32468 14288 ? S Feb26 10:17 /usr/bin/python3 ./audio.py -u 23480 -x 1.25 -s
pi 20602 0.2 0.7 32468 14168 ? S Feb26 21:02 /usr/bin/python3 ./audio.py -u 23460 -x 1.25 -s
pi 22583 0.6 0.2 32468 3864 ? S Feb17 130:15 /usr/bin/python3 ./audio.py -u 23450 -x 1.25 -s
pi 22586 0.1 0.2 32468 3924 ? S Feb17 28:20 /usr/bin/python3 ./audio.py -u 23470 -x 1.25 -s
pi 25798 0.0 0.0 7444 512 pts/0 S+ 18:22 0:00 grep --color=auto python
pi 28018 22.3 5.2 600780 98948 ? Sl Feb26 1604:57 /usr/bin/python3 ./rx.py --args rtl=00000103 --gains lna:40 -T depere.tsv -q 0 -o 7500 -S 1000000 -D cqpsk -v 5 -w -u 23470 -V -M depere.json -l http:0.0.0.0:8082
pi 28069 22.4 6.3 600792 120328 ? Sl Feb26 1607:04 /usr/bin/python3 ./rx.py --args rtl=00000104 --gains lna:45 -T luxe.tsv -q -1 -o 7100 -S 1000000 -D cqpsk -v 1 -w -u 23480 -V -M luxe.json -l http:0.0.0.0:8083
pi 28126 23.4 6.0 600764 114876 ? Sl Feb26 1681:29 /usr/bin/python3 ./rx.py --args rtl=00000101 --gains lna:45 -T siren1.tsv -q 0 -o 7600 -S 1000000 -D cqpsk -v 1 -w -u 23450 -V -M siren1.json -l http:0.0.0.0:8080
pi 28175 22.6 7.0 600772 133088 ? Sl Feb26 1623:23 /usr/bin/python3 ./rx.py --args rtl=00000102 --gains lna:45 -T siren2.tsv -q 0 -o 7500 -S 1000000 -D cqpsk -v 1 -w -u 23460 -V -M siren2.json -l http:0.0.0.0:8081
No shown in the dump above, but I utilize NGINX configured as a reverse proxy to protect access to the op25 http consoles in that many
of my installations are remotely located and have to be managed and monitored over the Internet.
Last edited: