burkert
Newbie
- Joined
- Jun 8, 2025
- Messages
- 2
I'm new to this, please bear with me.
System is Ubuntu 24.04, on ODroid M1S.
Two RTL-SDR v4 Dongles
OP25 is boatbod
icecast version is 2.4.4-4build4
liquidsoap version is 2.2.4-1
I think that I have both rx.py and multi_rx.py working, sending audio over headphones connected to the ODroid M1S.
Sorry in advance for the wall-of-text, following are some details which may be of help.
and
and
and
and, please note that there is no line 74 in op25.liq :
I welcome any advice which you may have.
Thank you,
Burkert
System is Ubuntu 24.04, on ODroid M1S.
Two RTL-SDR v4 Dongles
OP25 is boatbod
icecast version is 2.4.4-4build4
liquidsoap version is 2.2.4-1
I think that I have both rx.py and multi_rx.py working, sending audio over headphones connected to the ODroid M1S.
- I can't seem to get icecast to create an op25 mountpoint,
- I can't seem to get liquidsoap to do... liquidsoap things .
Sorry in advance for the wall-of-text, following are some details which may be of help.
- The system :
aburkert@aburkert-m1s:~/Downloads/op25/op25/gr-op25_repeater/apps$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04.2 LTS
Release: 24.04
Codename: noble
aburkert@aburkert-m1s:~/Downloads/op25/op25/gr-op25_repeater/apps$
- Relevant icecast details :
aburkert@aburkert-m1s:~/Downloads/op25/op25/gr-op25_repeater/apps$ systemctl -l --no-pager status icecast2
● icecast2.service - LSB: Icecast2 streaming media server
Loaded: loaded (/etc/init.d/icecast2; generated)
Active: active (running) since Mon 2025-07-28 21:04:23 CDT; 16min ago
Docs: man:systemd-sysv-generator(8)
Process: 16273 ExecStart=/etc/init.d/icecast2 start (code=exited, status=0/SUCCESS)
Tasks: 4 (limit: 9145)
Memory: 3.1M (peak: 3.8M)
CPU: 1.433s
CGroup: /system.slice/icecast2.service
└─16279 /usr/bin/icecast2 -b -c /etc/icecast2/icecast.xml
aburkert@aburkert-m1s:~/Downloads/op25/op25/gr-op25_repeater/apps$ sudo egrep -B 4 op25 /etc/icecast2/icecast.xml
<listen-socket>
<port>8000</port>
<!-- <bind-address>127.0.0.1</bind-address> -->
<bind-address>10.216.151.224</bind-address>
<shoutcast-mount>/op25</shoutcast-mount>
aburkert@aburkert-m1s:~/Downloads/op25/op25/gr-op25_repeater/apps$
and
aburkert@aburkert-m1s:~/Downloads/op25/op25/gr-op25_repeater/apps$ cat -vet meta.json | sed "s/$PASSWD/hackme/g"
{$
"icecastPass": "hackme",$
"icecastMountpoint": "/op25",$
"icecastServerAddress": "10.216.151.224:8000",$
"delay": "0.0", "icecastMountExt": ".m3u",$
"meta_format_idle": "[idle]",$
"meta_format_tgid": "[%TGID%]",$
"meta_format_tag": "[%TGID%] %TAG%",$
"meta_format_rid": "@ [%RID%]"$
}$
aburkert@aburkert-m1s:~/Downloads/op25/op25/gr-op25_repeater/apps$
- Relevant liquidsoap details :
aburkert@aburkert-m1s:~/Downloads/op25/op25/gr-op25_repeater/apps$ liquidsoap --version
Liquidsoap 2.2.4-1+dev
Copyright (c) 2003-2023 Savonet team
Liquidsoap is open-source software, released under GNU General Public License.
See <http://liquidsoap.info> for more information.
aburkert@aburkert-m1s:~/Downloads/op25/op25/gr-op25_repeater/apps$
and
aburkert@aburkert-m1s:~/Downloads/op25/op25/gr-op25_repeater/apps$ cat -vet op25.liq | sed "s/${PASSWD}/hackme/g" | grep -v ^#
set("log.stdout", true)$
set("log.file.path", "/home/aburkert/Downloads/op25/op25/gr-op25_repeater/apps/liquidsoap.log")$
set("log.file", true)$
set("log.level", 3)$
set("frame.audio.samplerate", 8000)$
input = mksafe(input.external(buffer=0.25, channels=2, samplerate=8000, restart_on_error=false, "./audio.py -x 2 -s")) $
input = filter.iir.butterworth.high(frequency = 200.0, order = 4, input)$
input = filter.iir.butterworth.low(frequency = 3250.0, order = 4, input)$
input = normalize(input, gain_max = 3.0, gain_min = -3.0, target = -16.0, threshold = -40.0)$
output.icecast(%mp3(bitrate=16, samplerate=22050, stereo=false), description="op25", genre="Public Safety", url="", fallible=false, host="10.216.151.224", port=8000, mount="op25", password="hackme", mean(input))$
aburkert@aburkert-m1s:~/Downloads/op25/op25/gr-op25_repeater/apps$
and
aburkert@aburkert-m1s:~/Downloads/op25/op25/gr-op25_repeater/apps$ ./op25.liq
At ./op25.liq, line 74, char 0-0:
Error 9: Failure: Early computation of source content-type detected for source iir_filter!
Raised at Stdlib.failwith in file "stdlib.ml", line 29, characters 17-33
Called from Source.operator#content_type in file "src/core/source.ml", line 407, characters 14-190
Called from Source.operator#audio_channels in file "src/core/source.ml", line 420, characters 53-70
Called from Iir_filter.iir.(fun) in file "src/core/operators/iir_filter.ml", line 71, characters 21-40
Called from CamlinternalOO.iter_f in file "camlinternalOO.ml", line 371, characters 12-17
Called from CamlinternalOO.run_initializers_opt in file "camlinternalOO.ml", line 381, characters 24-40
Called from Lang_source.add_operator.f in file "src/core/lang_source.ml", line 438, characters 39-44
Called from Liquidsoap_lang__Evaluation.apply.f in file "src/lang/evaluation.ml", line 174, characters 8-12
Called from Liquidsoap_lang__Evaluation.eval_term in file "src/lang/evaluation.ml", line 347, characters 10-43
Called from Liquidsoap_lang__Evaluation.eval in file "src/lang/evaluation.ml" (inlined), line 359, characters 10-38
Called from Liquidsoap_lang__Evaluation.eval in file "src/lang/evaluation.ml", line 375, characters 2-25
Called from Liquidsoap_lang__Evaluation.eval_toplevel in file "src/lang/evaluation.ml", line 494, characters 38-46
Called from Liquidsoap_lang__Startup.time in file "src/lang/startup.ml", line 30, characters 12-16
Called from Stdlib__Fun.protect in file "fun.ml", line 33, characters 8-15
Re-raised at Stdlib__Fun.protect in file "fun.ml", line 38, characters 6-52
Called from Liquidsoap_lang__Runtime.type_and_run in file "src/lang/runtime.ml", line 30, characters 4-612
Called from Liquidsoap_lang__Runtime.report in file "src/lang/runtime.ml", line 215, characters 12-23
aburkert@aburkert-m1s:~/Downloads/op25/op25/gr-op25_repeater/apps$
and, please note that there is no line 74 in op25.liq :
aburkert@aburkert-m1s:~/Downloads/op25/op25/gr-op25_repeater/apps$ wc -l op25.liq
73 op25.liq
aburkert@aburkert-m1s:~/Downloads/op25/op25/gr-op25_repeater/apps$
I welcome any advice which you may have.
Thank you,
Burkert