OP25 Help configuring OP25 stream to broadcastify

Status
Not open for further replies.

jrs2ua4

Member
Joined
Mar 9, 2019
Messages
9
I have been working on OP25 on my old Macbook Pro with Ubuntu for about a month now. I have OP25 working well at this point, and decided that I wanted to stream it to broadcastify. I've been trying to get it configured with Liquidsoap and Icecast, but it's extremely difficult to gather all of the information on how to do it. I have a few questions and would really appreciate it if someone could help me out a bit.

I have OP25 configured and have installed Liquidsoap and Icecast. Most of the questions I have are regarding my "feed technical information" and where I need to input that in the liquidsoap and icecast configuration. Below is a list of questions that I need clarification with.

1. When using Liquidsoap instead of Darkice, do I not need to create a "loopback" audio device?

2. Do I use my feed technical details from Broadcastify as the server, mountpoint, and password in the icecast.xml document? If so, is the server the "host," which password do I use it for, and I am a little confused where in that document to put mount as there are a couple different places that specify mount point. Also, is there a portion of icecast.xml that I won't be using if I'm simply streaming one feed?

3. In op25.liq I input my broadcastify server as host, broadcastify mount, and broadcastify password, and port? Same goes for meta.jason for metadata? I guess I just want to ensure that my broadcastify technical details are to be input in icecast.xml, op25.liq, and meta.jason instead of my ip, localhost, and mount point?

If there's anything else that I'm missing in my configuration please let me know. I looked at almost every thread on this site and couldn't find anything that specifically adressed the questions listed above. I'd really appreciate any help or guidance that anyone could give me in getting this configured.

Thanks,
Jason
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,338
Location
Talbot Co, MD
I have been working on OP25 on my old Macbook Pro with Ubuntu for about a month now. I have OP25 working well at this point, and decided that I wanted to stream it to broadcastify. I've been trying to get it configured with Liquidsoap and Icecast, but it's extremely difficult to gather all of the information on how to do it. I have a few questions and would really appreciate it if someone could help me out a bit.

I have OP25 configured and have installed Liquidsoap and Icecast. Most of the questions I have are regarding my "feed technical information" and where I need to input that in the liquidsoap and icecast configuration. Below is a list of questions that I need clarification with.

1. When using Liquidsoap instead of Darkice, do I not need to create a "loopback" audio device?
No, that's the main benefit!
2. Do I use my feed technical details from Broadcastify as the server, mountpoint, and password in the icecast.xml document? If so, is the server the "host," which password do I use it for, and I am a little confused where in that document to put mount as there are a couple different places that specify mount point. Also, is there a portion of icecast.xml that I won't be using if I'm simply streaming one feed?
You need to put the feed technical details in your op25.liq (liquidsoap script file) and if you want metadata you should also put it in meta.json
3. In op25.liq I input my broadcastify server as host, broadcastify mount, and broadcastify password, and port? Same goes for meta.jason for metadata? I guess I just want to ensure that my broadcastify technical details are to be input in icecast.xml, op25.liq, and meta.jason instead of my ip, localhost, and mount point?
icecast.xml is not required unless you plan on running your own icecast server. If you're uploading to broadcastify you probably aren't running your own server too.

If there's anything else that I'm missing in my configuration please let me know. I looked at almost every thread on this site and couldn't find anything that specifically adressed the questions listed above. I'd really appreciate any help or guidance that anyone could give me in getting this configured.

Thanks,
Jason

Did you check the ~/op25/README-rpi3-liquidsoap file just to be sure?
 

jrs2ua4

Member
Joined
Mar 9, 2019
Messages
9
Thank you for clarifying things for me, I guess I was trying to make things more complicated than they actually are. After you responded, I was able to get my stream up with alpha tags quickly with little issue.

There is one error I have run into now that I’ve got It streaming to broadcastify. So I get OP25 running with the second terminal running the OP25.liq command, and everything seems good for a while, I can hear my stream with alpha tags on Broadcastify. But after it’s running fine for a little while, I notice that my Stream has no sound but still has alpha tags. When I check on it, the .liq terminal has multiple lines with
“[Stderr:3] Strange error flushing buffer...”
Do you know why I’d be getting this error?
I assume it has to have something to do with liquidsoap, because The alpha tags are still streaming to broadcastify so I assume OP25 is running fine. If you do know what’s wrong, is there a way I can fix it? Because it happens every time I restart it, and it varies from occurring in the first hour to after a couple hours. And then I’m usually away from my computer and can’t restart it. Once again, I appreciate the help!
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,338
Location
Talbot Co, MD
Thank you for clarifying things for me, I guess I was trying to make things more complicated than they actually are. After you responded, I was able to get my stream up with alpha tags quickly with little issue.

There is one error I have run into now that I’ve got It streaming to broadcastify. So I get OP25 running with the second terminal running the OP25.liq command, and everything seems good for a while, I can hear my stream with alpha tags on Broadcastify. But after it’s running fine for a little while, I notice that my Stream has no sound but still has alpha tags. When I check on it, the .liq terminal has multiple lines with
“[Stderr:3] Strange error flushing buffer...”
Do you know why I’d be getting this error?
I assume it has to have something to do with liquidsoap, because The alpha tags are still streaming to broadcastify so I assume OP25 is running fine. If you do know what’s wrong, is there a way I can fix it? Because it happens every time I restart it, and it varies from occurring in the first hour to after a couple hours. And then I’m usually away from my computer and can’t restart it. Once again, I appreciate the help!

We would need to dig deeper into the "strange error". Perhaps turning up the liquidsoap log level in op25.liq will elicit more useful information?
Code:
set("log.level", 3)
 

jrs2ua4

Member
Joined
Mar 9, 2019
Messages
9
So I found that the error seems to happen if my computer loses internet connection for any reason, so I got that figured out. I've been streaming OP25 successfully for about a month now, with a few hiccups here and there, but it's gone pretty smooth for the most part. So I decided to get another SDR dongle and try my hand at having two streams. I have a couple things I wanted to see if someone could clarify for me before I attempt it though.

I'm currently using Liquidsoap for my stream now, and was reading over the thread "Experiments with op25 and liquidsoap" and saw where it was posted that it could handle two streams by making the changes to op25.liq, and I understand that part pretty well. What I'm confused about is that, later in the thread, someone asked about listening to multiple talkgroups and it was said that op25 doesn't support multiple sir for P25 trunking. I'm motoring P25 phase 2, so does that mean that setting it up like you said in the beginning of that thread wouldn't work for me, or was the person that posted that question trying to do something different? I was hoping to connect my two SDR and having a stream for both the North and South parts of my city. If I run multiple terminals and set up op25.liq as you said in the beginning of that thread, would it work, or was that just for non-trunked radio?

If I am able to do it that way, is there a way for me to specify which SDR is used for which stream? Also, you did say that I need to run a separate rx.py instance for each sdr in their own terminal, right? And I need to put "-u 23456" and -"u 24566" one in each rx.py to assign each a separate port? Also, do I need to create a second trunk.tsv for the second stream? Is there anything else that I'd need to do in order to have 2 separate streams with 2 sdr that I'm missing?

One more thing, I read in another thread that its possible to use one antenna for two sdr simply by using a splitter. I plan on using the rtf-sdr dipole antenna that I got bundled with the v3 rtf-sdr and an sma female to 2x sma male splitter to accomplish this. Will this work?

I really appreciate any help I could get with this. I just just got a bit confused by that thread where it said that it was possible to have two streams with two sdr on the same computer, then later on in the thread it said you couldn't do it with P25 trunked. I wasn't sure if they were talking about something different than I'm trying to do or not. So I wanted to make sure it would work prior to taking my stream offline and changing a bunch of stuff.
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,338
Location
Talbot Co, MD
Generally speaking if you want to run multiple feeds you need to have multiple instances of op25 and suitable sdr hardware dedicated to each.

Instance one:
- set the wireshark port to 23456 using "-u 23456" on both the rx.py command line and op25-instance1.liq audio.py command line
- set the RTL instance to rtl=0 using "--args "rtl=0" for rx.py
- set the whitelist tgid in your trunk-instance1.tsv file

Instance two:
- set the wireshark port to 23466 using "-u 23466" on both the rx.py command line and op25-instance2.liq audio.py command line
- set the RTL instance to rtl=1 using "--args "rtl=1" for rx.py
- set the whitelist tgid in your trunk-instance2.tsv file

You are also going to need separate trunk.tsv, meta.json and any other configuration that is instance specific.
 

jrs2ua4

Member
Joined
Mar 9, 2019
Messages
9
So I made a separate trunk.tsv, Tgid file, whitelist, meta.json, and op25.liq. I put the info for my second stream in the .liq file, added“-u 23456” to first .liq, and “-u 23466” to the second. Then I replaced -w with -u 23456 in my first rx.py and put in the second rx.py with all the new files in it. When I ran rx.py and op25.liq for each instance (4 total terminal windows), it seemed to be working, I was able to see alpha tags on both broadcastify feeds, but no audio for some reason. What am I missing? I double checked everything, I figured there’s a broken link in there somewhere. Its just the audio, so I made sure I had corresponding “-u 23456” and “-u 23466” in each rx.py and .liq. Are there any other changes I need to make that could be causing the audio not to come through? I’m sure it’s something simple I just neglected to change. Thanks again for your help!
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,338
Location
Talbot Co, MD
So I made a separate trunk.tsv, Tgid file, whitelist, meta.json, and op25.liq. I put the info for my second stream in the .liq file, added“-u 23456” to first .liq, and “-u 23466” to the second. Then I replaced -w with -u 23456 in my first rx.py and put in the second rx.py with all the new files in it. When I ran rx.py and op25.liq for each instance (4 total terminal windows), it seemed to be working, I was able to see alpha tags on both broadcastify feeds, but no audio for some reason. What am I missing? I double checked everything, I figured there’s a broken link in there somewhere. Its just the audio, so I made sure I had corresponding “-u 23456” and “-u 23466” in each rx.py and .liq. Are there any other changes I need to make that could be causing the audio not to come through? I’m sure it’s something simple I just neglected to change. Thanks again for your help!

You need the "-w".
Follow these examples from my feeds:

Code:
FEED1
./rx.py -l http:192.168.1.7:8080 -M meta-fire.json --args "rtl=0" --gains 'lna:36' -S 960000 -T trunk-fire.tsv -v 1 -2 -u 23456 -V -w 2> stderr-fire.2

input = mksafe(input.external(buffer=0.02, channels=2, samplerate=8000, restart_on_error=false, "./audio.py -u 23456 -s"))

FEED2
./rx.py -l http:192.168.1.7:8081 -M meta-leo.json --args "rtl=1" --gains 'lna:36' -S 960000 -T trunk-leo.tsv -v 1 -2 -u 23466 -V -w 2> stderr-leo.2

input = mksafe(input.external(buffer=0.02, channels=2, samplerate=8000, restart_on_error=false, "./audio.py -u 23466 -s"))
 

jrs2ua4

Member
Joined
Mar 9, 2019
Messages
9
Hey, thanks for all of your help. After your reply, I implemented the changes an both streams work flawlessly. I wanted to ask you another question for which I've been unable to find an answer that fits my setup. I've been looking around to see if there is a way to make one of my streams private? Like I'm sure it is for many people, the main reason that I stream to broadcastify is that it gives me the ability to listen to my feed remotely on my phone, and that it archives the stream. So I've been wondering if you know of a good way to accomplish those same things but as a private stream. I've read some threads where people post about having private streams using different hosting, but it wasn't using OP25. So do you know of any other way I can stream one of my OP25 feeds privately and be able to access it remotely from an IOS app as I do with Broadcastify? It doesn't necessarily have to be free either. Thanks again for all your help!
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,338
Location
Talbot Co, MD
Hey, thanks for all of your help. After your reply, I implemented the changes an both streams work flawlessly. I wanted to ask you another question for which I've been unable to find an answer that fits my setup. I've been looking around to see if there is a way to make one of my streams private? Like I'm sure it is for many people, the main reason that I stream to broadcastify is that it gives me the ability to listen to my feed remotely on my phone, and that it archives the stream. So I've been wondering if you know of a good way to accomplish those same things but as a private stream. I've read some threads where people post about having private streams using different hosting, but it wasn't using OP25. So do you know of any other way I can stream one of my OP25 feeds privately and be able to access it remotely from an IOS app as I do with Broadcastify? It doesn't necessarily have to be free either. Thanks again for all your help!

To make a private stream would require a non-public stream server. If you have a computer that runs 24x7 you can set up your own, and use a dynamic dns service to make the server available on the net. Server software will be platform dependent, but I've used icecast2 on Ubuntu. Make sure you have a good firewall!
 
Status
Not open for further replies.
Top