Radio Paradise FLAC........and ALAC

that’s just the text file. i converted that file to .m3u and it’s on my NAS.

@Adrian_P any ideas?

What about the formatting of the m3u file? It shouldn’t be an .rtf with the postfix amended, does it need to be a txt file without any formatting?

Well that was it. I copied into my default Mac text editor and got that format. I think I thought .txt and .rtf didn’t make difference. It’s working now and has proper titles in the Naim App. Thanks for everyone’s help. :smiley:

3 Likes

Nice one.

What’s the story with the HD radio? What source files can they be using? It sounds BIG on my system.

I’m not sure how that works.

The RP FLAC sounds really good through the minimstreamer.

I haven’t been able to get the JB Radio FLAC station to work, not sure what’s going on with that one. But both the RP stations sound great. Thanks again for the help. Big improvement.

Sorry, just seen this thread. As you have found, M3U files must be plain text files, not enriched formats like RTF.

Not sure about this:

“I still don’t have the UI on the minimserver app on the QNAP so I can’t confirm ministreamer is running.”

I use MinimServer on a Synology NAS and an RPi and there is no UI at the server end so I expect that’s also the case for QNAP. There is a simple web page that can be used to check status on the server and to force a rescan, but the UI to MinimServer is MinimWatch and that runs on a desktop system and it discovers and connects to all the MinimServer instances you have running.

Anyway, it looks like you now have the RP streams working, although I’m not sure what the issue is with JB Radio 2. What happens if you put their stream URL into a web browser? Paste this into your browser address bar:

http://199.189.87.9:10999/flac

If you get music your connection to their server is working OK.

Wrt to the UI, the setup/user guide mentioned the menu on minimerver app in the QNAP. Not sure why I can’t see it but the minimwatch on my Mac is working and I’m able to use it to configure and install packages. And I’m able to click the minimserver app on the QNAP and it opens the web page where I can rescan and change the file path on my QNAP.

The JB Radio FLAC link works when I click it so not sure why it’s not working in the m3u file.

Here’s the text again for illustration:
#EXTM3U
#EXTINF:-1,[RP;flac] Radio Paradise FLAC
http://stream.radioparadise.com/flac
#EXTINF:-1,[RPMellow;flac] Radio Paradise Mellow Mix FLAC
http://stream.radioparadise.com/mellow-flac
#EXTINF:-1,[JBRadio2;flac] JB Radio2 FLAC
http://199.189.87.9:10999/flac

That same file is working fine here and for others I think, so I’m not sure why it’s not working for you. You could try turning on the finest log level in MinimWatch to see if any errors are reported when you try connecting to the stream.

Is there an alternative text that can be used in the .m3u file that will accomplish the same task? I’d like to figure out how to get the JBR FLAC.

That’s the only URL for the stream as far as I know.

Did you try turning logging on? Start MinimWatch, choose “Show Log” and then change the log level to “Debug”. Then try selecting the JBRadio2 stream from the playlist. You’ll see a lot of text scroll past in the log window, paste that here.

Also, make sure you are running the latest versions of MinimServer/Streamer. At the time of writing the latest versions are 0.8.5.3 and 0.7.13 respectively. You can check the versions you have in MinimWatch in the Packages tab.

I have 8.5.2 says I’m up to date.

I cleared the log before trying JB Radio and here’s what I got.

Not sure what all this means. It’s long.

17:14:36.015 Thread-9: Log action: SetLogStart
17:14:36.015 Thread-9: version=1, adapter=10.0.1.7, uriPrefix=http://10.0.1.7:9791/e3d5e581-0ba9-4ddc-b2a7-974e07a4572b/Upnp/resource/, clientEndpoint=10.0.1.20:54617
17:14:36.015 Thread-9: StartPosition=1032594
17:14:36.015 Thread-9: Log action complete: SetLogStart
17:14:36.027 Thread-10: Log action: GetLogStart
17:14:36.027 Thread-10: version=1, adapter=10.0.1.7, uriPrefix=http://10.0.1.7:9791/e3d5e581-0ba9-4ddc-b2a7-974e07a4572b/Upnp/resource/, clientEndpoint=10.0.1.20:54619
17:14:36.027 Thread-10: Log response: GetLogStart
17:14:36.027 Thread-10: StartPosition=1032594
17:14:44.455 Thread-7: HTTPService: accepted incoming connection
17:14:44.456 Thread-7: HTTPService: waiting for incoming connection
17:14:44.456 Thread-6: HTTPService: received request, Socket[addr=/10.0.1.21,port=2173,localport=9790]
17:14:44.456 Thread-6: HTTPService: adding connection org.jminim.lib.HTTPConnection@2052133d
17:14:44.457 Thread-601: HTTPConnection: reading HTTP request
17:14:44.456 Thread-600: HTTPConnection: writer thread waiting for request
17:14:44.457 Thread-601: GET /minimstreamer/*/JBRadio2/$!transcode.wav HTTP/1.1
17:14:44.457 Thread-601: Host: 10.0.1.7:9790, Range: bytes=0-, Icy-MetaData: 1, Connection: close, transferMode.dlna.org: Streaming, User-Agent: WinampMPEG/2.8, Accept: /
17:14:44.457 Thread-601: HTTPConnection: reading HTTP request
17:14:44.457 Thread-600: HTTPConnection: writer thread processing request
17:14:44.457 Thread-600: Streamer: processing HTTP request
17:14:44.457 Thread-600: Streamer: streamID is JBRadio2
17:14:44.457 Thread-600: Streamer: streamInfo-JBRADIO2 has value flac
17:14:44.457 Thread-600: Streamer: URL scheme is http
17:14:44.457 Thread-600: Streamer: request path is 199.189.87.9:10999/flac/$!transcode.wav
17:14:44.458 Thread-600: Streamer: transcodeType is wav
17:14:44.458 Thread-600: ChainImpl: addSource org.jstreamer.core.ChainSource@b535ca1
17:14:44.458 Thread-600: ChainSource: init
17:14:44.458 Thread-600: ChainImpl: getting property .inputBufferSize
17:14:44.458 Thread-600: ChainImpl: property .inputBufferSize has null value
17:14:44.458 Thread-600: ChainImpl: getting property .inputBuffers
17:14:44.458 Thread-600: ChainImpl: property .inputBuffers has null value
17:14:44.458 Thread-600: ChainSource: inputBufferSize=5000 inputBuffers=2
17:14:44.458 Thread-600: BufferPool: init
17:14:44.458 Thread-600: ChainSource: source created
17:14:44.458 Thread-600: ChainImpl: getting property scfilter.link
17:14:44.460 Thread-600: ChainImpl: property scfilter.link has literal value ‘source’
17:14:44.460 Thread-600: ChainImpl: getting property scfilter.mode
17:14:44.460 Thread-600: ChainImpl: property scfilter.mode has literal value ‘out’
17:14:44.460 Thread-600: ChainImpl: addFilter org.jstreamer.core.ChainSource@b535ca1
17:14:44.460 Thread-600: LinkBase: adding output filter org.jstreamer.lib.ShoutcastFilter@f6cd913
17:14:44.460 Thread-600: created new root chain org.jstreamer.core.ChainImpl@4a6e569a
17:14:44.461 Thread-600: ChainImpl: setting property .requestPath to ‘199.189.87.9:10999/flac’
17:14:44.461 Thread-600: ChainImpl: setting property .requestScheme to ‘http’
17:14:44.461 Thread-600: ChainImpl: setting property .requestMethod to ‘GET’
17:14:44.461 Thread-600: ChainImpl: setting property .requestHeaders to 'Range: bytes=0-
Icy-MetaData: 1
Connection: close
transferMode.dlna.org: Streaming
User-Agent: WinampMPEG/2.8
Accept: /


17:14:44.461 Thread-600: ChainImpl: setting property .streamID to ‘JBRadio2’
17:14:44.461 Thread-600: processRequest: origSampleRate is null
17:14:44.461 Thread-600: setTargetChain: origSampleRate is null
17:14:44.461 Thread-600: ChainImpl: addTask org.jstreamer.core.ChainTask@7b6e1da2
17:14:44.461 Thread-600: ChainTask: init
17:14:44.461 Thread-600: ChainImpl: getting property .taskBufferSize
17:14:44.461 Thread-600: ChainImpl: property .taskBufferSize has null value
17:14:44.461 Thread-600: ChainImpl: getting property .taskBuffers
17:14:44.461 Thread-600: ChainImpl: property .taskBuffers has null value
17:14:44.461 Thread-600: InputStreamBufferPool: init
17:14:44.461 Thread-600: ChainTask: task created
17:14:44.461 Thread-600: ChainImpl: addTarget org.jstreamer.core.ChainTarget@2a41a9d5
17:14:44.462 Thread-600: ChainTarget: init
17:14:44.462 Thread-600: LinkBase: adding input filter com.minimstreamer.HTTPRequestTarget$TargetFilter@fbd6781 isLast=true
17:14:44.462 Thread-600: ChainTarget: target created
17:14:44.462 Thread-600: BufferPoolReader: new
17:14:44.462 Thread-600: Buffer: createReader: org.jstreamer.core.InputStreamBuffer@4b5f8d9
17:14:44.462 Thread-600: BufferReader: initial readSequence=1
17:14:44.462 Thread-600: Buffer: createReader: org.jstreamer.core.InputStreamBuffer@9a768dd
17:14:44.462 Thread-600: BufferReader: initial readSequence=1
17:14:44.462 Thread-600: ChainImpl: getting property adfilter.link
17:14:44.462 Thread-600: ChainImpl: property adfilter.link has literal value ‘transcode’
17:14:44.462 Thread-600: ChainImpl: getting property adfilter.mode
17:14:44.462 Thread-600: ChainImpl: property adfilter.mode has null value
17:14:44.462 Thread-600: ChainImpl: addFilter org.jstreamer.core.ChainTask@7b6e1da2
17:14:44.462 Thread-600: LinkBase: adding input filter org.jstreamer.lib.FrameFilter@4aea9c12 isLast=false
17:14:44.462 Thread-600: ChainImpl: setting property object .@notifyStopped to com.minimstreamer.Streamer$NotifyStopped@5361abdd
17:14:44.462 Thread-600: ChainImpl: setting property object .@httpRequest to org.jminim.lib.HTTPConnection$Request@6828813
17:14:44.462 Thread-600: ChainImpl: setting property object .@http to org.jminim.lib.HTTPContext@709b86e0
17:14:44.462 Thread-600: ChainImpl: setting property .transcodeType to ‘wav’
17:14:44.462 Thread-600: ChainImpl: setting property .transcodeLimit to ‘’
17:14:44.463 Thread-600: ChainImpl: setting property .transcodeBits to ‘’
17:14:44.463 Thread-600: ChainImpl: setting property .converter to ‘ffmpeg’
17:14:44.463 Thread-600: ChainImpl: setting property .converterCmdEscaped to ‘ffmpeg’
17:14:44.463 Thread-600: ChainImpl: setting property .fmtFlt to ‘flt’
17:14:44.463 Thread-600: Streamer: adding request chain for org.jminim.lib.HTTPConnection$Request@6828813: org.jstreamer.core.ChainImpl@6132d6a6
17:14:44.463 Thread-600: ChainImpl: addTargetChain org.jstreamer.core.TargetChain@18968edd
17:14:44.463 Thread-600: TargetChain: init
17:14:44.463 Thread-600: ChainImpl: adding target filter org.jstreamer.core.ChainTask$TaskInputFilter@6f66ec8f: sourceLink org.jstreamer.core.ChainSource@b535ca1
17:14:44.463 Thread-600: LinkBase: adding target filter org.jstreamer.core.ChainTask$TaskInputFilter@6f66ec8f
17:14:44.463 Thread-600: ChainImpl: start org.jstreamer.core.ChainImpl@4a6e569a
17:14:44.463 Thread-600: ChainImpl: startLinks org.jstreamer.core.ChainImpl@4a6e569a
17:14:44.463 Thread-600: ChainImpl: starting chain org.jstreamer.core.ChainImpl@4a6e569a
17:14:44.463 Thread-600: TargetChain: start
17:14:44.463 Thread-600: TargetChain: starting subchain links
17:14:44.463 Thread-600: ChainImpl: startLinks org.jstreamer.core.ChainImpl@6132d6a6
17:14:44.463 Thread-600: ChainImpl: starting chain org.jstreamer.core.ChainImpl@6132d6a6
17:14:44.463 Thread-600: ChainTarget: start
17:14:44.463 Thread-600: ChainImpl: property obj request.@notifyStopped is reference to .@notifyStopped
17:14:44.464 Thread-600: ChainImpl: property object request.@notifyStopped has value com.minimstreamer.Streamer$NotifyStopped@5361abdd
17:14:44.464 Thread-600: ChainImpl: property obj request.@httpRequest is reference to .@httpRequest
17:14:44.464 Thread-600: ChainImpl: property object request.@httpRequest has value org.jminim.lib.HTTPConnection$Request@6828813
17:14:44.464 Thread-600: ChainImpl: property obj request.@http is reference to .@http
17:14:44.464 Thread-600: ChainImpl: property object request.@http has value org.jminim.lib.HTTPContext@709b86e0
17:14:44.464 Thread-600: ChainImpl: property obj request.@timeoutAction is reference to .@timeoutAction
17:14:44.464 Thread-600: ChainImpl: property object request.@timeoutAction has value null
17:14:44.464 Thread-600: ChainImpl: getting property request.timeout
17:14:44.464 Thread-600: ChainImpl: property request.timeout has initial value ‘$.timeout’
17:14:44.464 Thread-600: ChainImpl: property .timeout has null value
17:14:44.464 Thread-600: ChainImpl: substitution property .timeout has value ‘’
17:14:44.464 Thread-600: ChainImpl: property request.timeout has final value ‘’
17:14:44.464 Thread-600: HTTPRequestTarget: timeout is
17:14:44.464 Thread-600: ChainImpl: getting property request.streamSize
17:14:44.464 Thread-600: ChainImpl: property request.streamSize has initial value ‘$.streamSize’
17:14:44.464 Thread-600: ChainImpl: property .streamSize has null value
17:14:44.464 Thread-600: ChainImpl: substitution property .streamSize has value ‘’
17:14:44.464 Thread-600: ChainImpl: property request.streamSize has final value ‘’
17:14:44.464 Thread-600: ChainImpl: getting property request.flowFactor
17:14:44.464 Thread-600: ChainImpl: property request.flowFactor has initial value ‘$.flowFactor’
17:14:44.464 Thread-600: ChainImpl: property .flowFactor has null value
17:14:44.464 Thread-600: ChainImpl: substitution property .flowFactor has value ‘’
17:14:44.464 Thread-600: ChainImpl: property request.flowFactor has final value ‘’
17:14:44.465 Thread-600: HTTPRequestTarget: initRequest socket=Socket[addr=/10.0.1.21,port=2173,localport=9790] this=com.minimstreamer.HTTPRequestTarget@12a3e79d outStr=com.minimstreamer.HTTPRequestTarget$ProxyOutputStream@31079dfd
17:14:44.465 Thread-600: ChainTarget: target started
17:14:44.465 Thread-600: ChainTask: start
17:14:44.465 Thread-600: ChainTask: starting task
17:14:44.465 Thread-600: ChainTask: task started
17:14:44.465 Thread-600: ChainImpl: started chain org.jstreamer.core.ChainImpl@6132d6a6
17:14:44.465 Thread-600: TargetChain: subchain links started
17:14:44.465 Thread-600: ChainSource: start
17:14:44.465 Thread-600: ChainImpl: getting property source.resource
17:14:44.465 Thread-600: ChainImpl: property source.resource has initial value ‘$.requestPath’
17:14:44.465 Thread-600: ChainImpl: property .requestPath has literal value ‘199.189.87.9:10999/flac’
17:14:44.465 Thread-600: ChainImpl: substitution property .requestPath has value ‘199.189.87.9:10999/flac’
17:14:44.465 Thread-600: ChainImpl: property source.resource has final value ‘199.189.87.9:10999/flac’
17:14:44.465 Thread-600: ChainImpl: getting property source.scheme
17:14:44.465 Thread-600: ChainImpl: property source.scheme has initial value ‘$.requestScheme’
17:14:44.465 Thread-600: ChainImpl: property .requestScheme has literal value ‘http’
17:14:44.465 Thread-600: ChainImpl: substitution property .requestScheme has value ‘http’
17:14:44.465 Thread-600: ChainImpl: property source.scheme has final value ‘http’
17:14:44.465 Thread-600: ChainImpl: getting property source.requestHeaders
17:14:44.465 Thread-600: ChainImpl: property source.requestHeaders has initial value ‘$.requestHeaders’
17:14:44.465 Thread-600: ChainImpl: property .requestHeaders has literal value 'Range: bytes=0-
Icy-MetaData: 1
Connection: close
transferMode.dlna.org: Streaming
User-Agent: WinampMPEG/2.8
Accept: /


17:14:44.465 Thread-600: ChainImpl: substitution property .requestHeaders has value 'Range: bytes=0-
Icy-MetaData: 1
Connection: close
transferMode.dlna.org: Streaming
User-Agent: WinampMPEG/2.8
Accept: /


17:14:44.466 Thread-600: ChainImpl: property source.requestHeaders has final value 'Range: bytes=0-
Icy-MetaData: 1
Connection: close
transferMode.dlna.org: Streaming
User-Agent: WinampMPEG/2.8
Accept: /


17:14:44.466 Thread-600: ChainImpl: getting property source.delayHLS
17:14:44.466 Thread-600: ChainImpl: property source.delayHLS has initial value ‘$.delayHLS’
17:14:44.466 Thread-600: ChainImpl: property .delayHLS has null value
17:14:44.466 Thread-600: ChainImpl: substitution property .delayHLS has value ‘’
17:14:44.466 Thread-600: ChainImpl: property source.delayHLS has final value ‘’
17:14:44.466 Thread-600: ChainImpl: getting property source.dashMP4AAC
17:14:44.466 Thread-600: ChainImpl: property source.dashMP4AAC has initial value ‘$.dashMP4AAC’
17:14:44.466 Thread-600: ChainImpl: property .dashMP4AAC has null value
17:14:44.466 Thread-600: ChainImpl: substitution property .dashMP4AAC has value ‘’
17:14:44.466 Thread-600: ChainImpl: property source.dashMP4AAC has final value ‘’
17:14:44.466 Thread-600: ChainImpl: getting property source.dashMP4FLAC
17:14:44.466 Thread-600: ChainImpl: property source.dashMP4FLAC has initial value ‘$.dashMP4FLAC’
17:14:44.466 Thread-600: ChainImpl: property .dashMP4FLAC has null value
17:14:44.466 Thread-600: ChainImpl: substitution property .dashMP4FLAC has value ‘’
17:14:44.466 Thread-600: ChainImpl: property source.dashMP4FLAC has final value ‘’
17:14:44.466 Thread-600: NetworkSource: range value is ‘bytes=0-’
17:14:44.466 Thread-600: NetworkSource: connecting to host 199.189.87.9 port 10999
17:14:44.543 Thread-600: NetworkSource: created outgoing socket Socket[addr=/199.189.87.9,port=10999,localport=48784]
17:14:44.544 Thread-600: NetworkSource: sending HTTP request:
GET /flac HTTP/1.1
Host: 199.189.87.9
Range: bytes=0-
Icy-MetaData: 1
Connection: close
transferMode.dlna.org: Streaming
User-Agent: WinampMPEG/2.8
Accept: /

17:14:44.648 Thread-600: NetworkSource: stream response status HTTP/1.0 200 OK
17:14:44.649 Thread-600: ChainImpl: setting property source.status to 'HTTP/1.0 200 OK

17:14:44.650 Thread-600: Server: Icecast 2.4.2
Date: Thu, 25 Jul 2019 00:16:44 GMT
Content-Type: application/ogg
Cache-Control: no-cache
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Pragma: no-cache
icy-br:320
icy-description:Commercial-Free Web Radio
icy-genre:Eclectic,Rock,Blues
icy-name:JB Radio-2 *Commercial-Free Web Radio
icy-pub:1
icy-url:https://jbradio2.ca

17:14:44.650 Thread-600: ChainImpl: setting property source.responseHeaders to 'Server: Icecast 2.4.2
Date: Thu, 25 Jul 2019 00:16:44 GMT
Content-Type: application/ogg
Cache-Control: no-cache
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Pragma: no-cache
icy-br:320
icy-description:Commercial-Free Web Radio
icy-genre:Eclectic,Rock,Blues
icy-name:JB Radio-2 *Commercial-Free Web Radio
icy-pub:1
icy-url:https://jbradio2.ca

17:14:44.650 Thread-600: NetworkSource: content type is ‘application/ogg’
17:14:44.650 Thread-600: ChainImpl: setting property source.contentType to ‘application/ogg’
17:14:44.650 Thread-600: ChainImpl: setting property source.contentFormat to ‘’
17:14:44.650 Thread-600: ChainImpl: setting property source.responseMessage to ‘’
17:14:44.650 Thread-600: ChainImpl: setting property source.sourcePath to ‘/flac’
17:14:44.650 Thread-600: ChainSource: source started
17:14:44.650 Thread-600: ChainImpl: started chain org.jstreamer.core.ChainImpl@4a6e569a
17:14:44.650 Thread-600: ChainImpl: runLinks org.jstreamer.core.ChainImpl@4a6e569a
17:14:44.650 Thread-600: ChainImpl: running links for chain org.jstreamer.core.ChainImpl@4a6e569a
17:14:44.650 Thread-600: TargetChain: run
17:14:44.650 Thread-600: TargetChain: running subchain links
17:14:44.650 Thread-600: ChainImpl: runLinks org.jstreamer.core.ChainImpl@6132d6a6
17:14:44.650 Thread-600: ChainImpl: running links for chain org.jstreamer.core.ChainImpl@6132d6a6
17:14:44.650 Thread-600: ChainTarget: run
17:14:44.650 Thread-600: ChainImpl: getting property request.transcodeType
17:14:44.650 Thread-600: ChainImpl: property request.transcodeType has initial value ‘$.transcodeType’
17:14:44.650 Thread-600: ChainImpl: property .transcodeType has literal value ‘wav’
17:14:44.650 Thread-600: ChainImpl: substitution property .transcodeType has value ‘wav’
17:14:44.650 Thread-600: ChainImpl: property request.transcodeType has final value ‘wav’
17:14:44.651 Thread-600: ChainImpl: getting property request.transcodeLimit
17:14:44.651 Thread-600: ChainImpl: property request.transcodeLimit has initial value ‘$.transcodeLimit’
17:14:44.651 Thread-600: ChainImpl: property .transcodeLimit has literal value ‘’
17:14:44.651 Thread-600: ChainImpl: substitution property .transcodeLimit has value ‘’
17:14:44.651 Thread-600: ChainImpl: property request.transcodeLimit has final value ‘’
17:14:44.651 Thread-600: ChainTarget: target running
17:14:44.651 Thread-600: ChainTarget: starting writer thread
17:14:44.651 Thread-600: ChainTask: run
17:14:44.651 Thread-600: ChainImpl: getting property transcode.command
17:14:44.651 Thread-600: ChainImpl: property transcode.command has initial value ‘$transcode.cmd-${.converter}’
17:14:44.651 Thread-600: ChainImpl: property .converter has literal value ‘ffmpeg’
17:14:44.651 Thread-600: ChainImpl: substitution property .converter has value ‘ffmpeg’
17:14:44.651 Thread-600: ChainImpl: property transcode.cmd-ffmpeg has initial value ‘"${.converterCmdEscaped}" -v 0 -analyzeduration 0 ${transcode.in-${transcode.inputFormat}} -request_sample_fmt ${.fmtFlt} ${.convInEscaped} -i pipe: ${.convOutEscaped} -vn ${transcode.extraOptionsOutput} ${transcode.out-${.transcodeType}${.transcodeBits}} pipe:’
17:14:44.651 Thread-600: ChainImpl: property .transcodeBits has literal value ‘’
17:14:44.651 Thread-600: ChainImpl: substitution property .transcodeBits has value ‘’
17:14:44.651 Thread-600: ChainImpl: property .transcodeType has literal value ‘wav’
17:14:44.651 Thread-600: ChainImpl: substitution property .transcodeType has value ‘wav’
17:14:44.651 Thread-600: ChainImpl: property transcode.out-wav has literal value ‘-f wav’
17:14:44.651 Thread-600: ChainImpl: substitution property transcode.out-wav has value ‘-f wav’
17:14:44.652 Thread-600: ChainImpl: property transcode.extraOptionsOutput has initial value ‘${transcode.option${.outSampleRateOption}} ${transcode.option${.outBitRateOption}}’
17:14:44.652 Thread-600: ChainImpl: property .outBitRateOption has null value
17:14:44.652 Thread-600: ChainImpl: substitution property .outBitRateOption has value ‘’
17:14:44.652 Thread-600: ChainImpl: property transcode.option has null value
17:14:44.652 Thread-600: ChainImpl: substitution property transcode.option has value ‘’
17:14:44.652 Thread-600: ChainImpl: property .outSampleRateOption has null value
17:14:44.652 Thread-600: ChainImpl: substitution property .outSampleRateOption has value ‘’
17:14:44.652 Thread-600: ChainImpl: property transcode.option has null value
17:14:44.652 Thread-600: ChainImpl: substitution property transcode.option has value ‘’
17:14:44.652 Thread-600: ChainImpl: property transcode.extraOptionsOutput has final value ’ ’
17:14:44.652 Thread-600: ChainImpl: substitution property transcode.extraOptionsOutput has value ’ ’
17:14:44.652 Thread-600: ChainImpl: property .convOutEscaped has null value
17:14:44.652 Thread-600: ChainImpl: substitution property .convOutEscaped has value ‘’
17:14:44.652 Thread-600: ChainImpl: property .convInEscaped has null value
17:14:44.652 Thread-600: ChainImpl: substitution property .convInEscaped has value ‘’
17:14:44.652 Thread-600: ChainImpl: property .fmtFlt has literal value ‘flt’
17:14:44.652 Thread-600: ChainImpl: substitution property .fmtFlt has value ‘flt’
17:14:44.652 Thread-600: ChainImpl: property transcode.inputFormat has initial value ‘$/source.contentFormat’
17:14:44.652 Thread-600: ChainImpl: property source.contentFormat has literal value ‘’
17:14:44.652 Thread-600: ChainImpl: substitution property /source.contentFormat has value ‘’
17:14:44.652 Thread-600: ChainImpl: property transcode.inputFormat has final value ‘’
17:14:44.652 Thread-600: ChainImpl: substitution property transcode.inputFormat has value ‘’
17:14:44.652 Thread-600: ChainImpl: property transcode.in- has null value
17:14:44.652 Thread-600: ChainImpl: substitution property transcode.in- has value ‘’
17:14:44.652 Thread-600: ChainImpl: property .converterCmdEscaped has literal value ‘ffmpeg’
17:14:44.653 Thread-600: ChainImpl: substitution property .converterCmdEscaped has value ‘ffmpeg’
17:14:44.653 Thread-600: ChainImpl: property transcode.cmd-ffmpeg has final value ‘“ffmpeg” -v 0 -analyzeduration 0 -request_sample_fmt flt -i pipe: -vn -f wav pipe:’
17:14:44.653 Thread-600: ChainImpl: substitution property transcode.cmd-ffmpeg has value ‘“ffmpeg” -v 0 -analyzeduration 0 -request_sample_fmt flt -i pipe: -vn -f wav pipe:’
17:14:44.653 Thread-600: ChainImpl: property transcode.command has final value ‘“ffmpeg” -v 0 -analyzeduration 0 -request_sample_fmt flt -i pipe: -vn -f wav pipe:’
17:14:44.653 Thread-600: ChainImpl: getting property transcode.dir
17:14:44.653 Thread-600: ChainImpl: property transcode.dir has null value
17:14:44.653 Thread-600: Adding token ffmpeg
17:14:44.653 Thread-600: Adding token -v
17:14:44.653 Thread-600: Adding token 0
17:14:44.653 Thread-600: Adding token -analyzeduration
17:14:44.653 Thread-600: Adding token 0
17:14:44.653 Thread-600: Adding token -request_sample_fmt
17:14:44.653 Thread-600: Adding token flt
17:14:44.653 Thread-600: Adding token -i
17:14:44.653 Thread-600: Adding token pipe:
17:14:44.653 Thread-600: Adding token -vn
17:14:44.653 Thread-600: Adding token -f
17:14:44.653 Thread-600: Adding token wav
17:14:44.653 Thread-600: Adding token pipe:
17:14:44.655 Thread-600: Program: error stream is java.lang.UNIXProcess$ProcessPipeInputStream@f9bcb1f
17:14:44.655 Thread-600: Program: started process java.lang.UNIXProcess@57c14cf7
17:14:44.655 Thread-600: ChainTask: task running
17:14:44.655 Thread-600: ChainImpl: links running for chain org.jstreamer.core.ChainImpl@6132d6a6
17:14:44.655 Thread-600: TargetChain: subchain links running
17:14:44.655 Thread-600: ChainSource: run
17:14:44.655 Thread-600: ChainSource: source running
17:14:44.655 Thread-600: ChainSource: starting reader thread
17:14:44.656 Thread-604: Program: waiting for end of process java.lang.UNIXProcess@57c14cf7
17:14:44.656 Thread-600: ChainImpl: links running for chain org.jstreamer.core.ChainImpl@4a6e569a
17:14:44.656 Thread-600: Streamer: waiting for completion of network request
17:14:44.656 Thread-600: Streamer.NotifyStopped: waitFor
17:14:44.656 Thread-600: Streamer.NotifyStopped: waiting
17:14:44.856 Thread-605: ChainImpl: getting property scfilter.responseHeaders
17:14:44.857 Thread-605: ChainImpl: property scfilter.responseHeaders has initial value ‘$source.responseHeaders’
17:14:44.857 Thread-605: ChainImpl: property source.responseHeaders has literal value 'Server: Icecast 2.4.2
Date: Thu, 25 Jul 2019 00:16:44 GMT
Content-Type: application/ogg
Cache-Control: no-cache
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Pragma: no-cache
icy-br:320
icy-description:Commercial-Free Web Radio
icy-genre:Eclectic,Rock,Blues
icy-name:JB Radio-2 *Commercial-Free Web Radio
icy-pub:1
icy-url:https://jbradio2.ca

17:14:44.857 Thread-605: ChainImpl: substitution property source.responseHeaders has value 'Server: Icecast 2.4.2
Date: Thu, 25 Jul 2019 00:16:44 GMT
Content-Type: application/ogg
Cache-Control: no-cache
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Pragma: no-cache
icy-br:320
icy-description:Commercial-Free Web Radio
icy-genre:Eclectic,Rock,Blues
icy-name:JB Radio-2 *Commercial-Free Web Radio
icy-pub:1
icy-url:https://jbradio2.ca

17:14:44.857 Thread-605: ChainImpl: property scfilter.responseHeaders has final value 'Server: Icecast 2.4.2
Date: Thu, 25 Jul 2019 00:16:44 GMT
Content-Type: application/ogg
Cache-Control: no-cache
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Pragma: no-cache
icy-br:320
icy-description:Commercial-Free Web Radio
icy-genre:Eclectic,Rock,Blues
icy-name:JB Radio-2 *Commercial-Free Web Radio
icy-pub:1
icy-url:https://jbradio2.ca

17:14:44.857 Thread-605: ShoutcastFilter: response headers=Server: Icecast 2.4.2
Date: Thu, 25 Jul 2019 00:16:44 GMT
Content-Type: application/ogg
Cache-Control: no-cache
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Pragma: no-cache
icy-br:320
icy-description:Commercial-Free Web Radio
icy-genre:Eclectic,Rock,Blues
icy-name:JB Radio-2 *Commercial-Free Web Radio
icy-pub:1
icy-url:https://jbradio2.ca

17:14:44.857 Thread-605: ShoutcastFilter: icyMetaint=0
17:14:44.857 Thread-605: ChainImpl: getting property adfilter.sourceResponseHeaders
17:14:44.857 Thread-605: ChainImpl: property adfilter.sourceResponseHeaders has null value
17:14:44.857 Thread-605: ChainImpl: getting property adfilter.contentType
17:14:44.857 Thread-605: ChainImpl: property adfilter.contentType has initial value ‘$/source.contentType’
17:14:44.857 Thread-605: ChainImpl: property source.contentType has literal value ‘application/ogg’
17:14:44.857 Thread-605: ChainImpl: substitution property /source.contentType has value ‘application/ogg’
17:14:44.857 Thread-605: ChainImpl: property adfilter.contentType has final value ‘application/ogg’
17:14:44.859 Thread-605: FrameFilter: contentType is ‘application/ogg’
17:14:44.990 Thread-602: ChainImpl: getting property request.responseHeaders
17:14:44.991 Thread-602: ChainImpl: property request.responseHeaders has null value
17:14:44.991 Thread-602: HTTPRequestTarget.filterData: start=0 length=102 num=102
17:14:44.991 Thread-602: HTTPRequestTarget.filterData: wavHeaderBytes=102
17:14:44.991 Thread-602: HTTPRequestTarget.filterData: fmtSize=40
17:14:44.991 Thread-602: HTTPRequestTarget.filterData: chunkSize=26
17:14:44.991 Thread-602: ChainImpl: getting property request.delay
17:14:44.991 Thread-602: ChainImpl: property request.delay has null value
17:14:44.991 Thread-602: ChainImpl: getting property request.responseHeaders
17:14:44.991 Thread-602: ChainImpl: property request.responseHeaders has null value
17:14:44.991 Thread-602: ChainImpl: getting property request.status
17:14:44.991 Thread-602: ChainImpl: property request.status has null value
17:14:44.991 Thread-602: ChainImpl: getting property request.sourceResponseHeaders
17:14:44.991 Thread-602: ChainImpl: property request.sourceResponseHeaders has null value
17:14:44.992 Thread-602: HTTPRequestTarget: contentBytes=-1
17:14:44.992 Thread-602: HTTP/1.1 200 OK, Date: Thu, 25 Jul 2019 00:14:44 GMT, Connection: close, Server: MinimStreamer, Content-Type: audio/x-wav, transferMode.dlna.org: Streaming
17:14:44.992 Thread-602: writing 44 bytes
17:14:44.994 Thread-602: writing 5000 bytes
17:14:44.994 Thread-602: writing 5000 bytes
17:14:44.994 Thread-602: writing 5000 bytes
17:14:44.994 Thread-602: writing 1384 bytes
17:14:44.995 Thread-602: writing 5000 bytes
17:14:44.995 Thread-602: writing 5000 bytes
17:14:44.995 Thread-602: writing 5000 bytes
17:14:45.440 Thread-601: HTTPConnection: end of input stream data
17:14:45.441 Thread-601: Streamer: getting request chain for org.jminim.lib.HTTPConnection$Request@6828813
17:14:45.441 Thread-601: Streamer: stopping chain org.jstreamer.core.ChainImpl@6132d6a6
17:14:45.441 Thread-601: ChainImpl: stop org.jstreamer.core.ChainImpl@6132d6a6
17:14:45.441 Thread-601: ChainImpl: removing target from org.jstreamer.core.TargetChain@18968edd
17:14:45.441 Thread-601: ChainImpl: stop org.jstreamer.core.ChainImpl@4a6e569a
17:14:45.441 Thread-601: ChainImpl: stopping chain org.jstreamer.core.ChainImpl@4a6e569a
17:14:45.441 Thread-601: ChainSource: stopping reader thread
17:14:45.441 Thread-601: ChainSource: stopping source
17:14:45.441 Thread-601: NetworkSource: closing outgoing socket Socket[addr=/199.189.87.9,port=10999,localport=48784]
17:14:45.441 Thread-601: ChainSource: source stopped
17:14:45.442 Thread-601: TargetChain: stop
17:14:45.442 Thread-601: TargetChain: stopping subchain
17:14:45.442 Thread-601: ChainImpl: stop org.jstreamer.core.ChainImpl@6132d6a6
17:14:45.442 Thread-601: TargetChain: subchain stopped
17:14:45.442 Thread-601: ChainImpl: stopped chain org.jstreamer.core.ChainImpl@4a6e569a
17:14:45.442 Thread-601: ChainImpl: stopping chain org.jstreamer.core.ChainImpl@6132d6a6
17:14:45.442 Thread-601: ChainTask: stop
17:14:45.442 Thread-605: ChainSource: error reading input stream: org.jstreamer.OutputException: java.net.SocketException: Socket closed
17:14:45.442 Thread-605: Buffer: closing buffer: org.jstreamer.core.Buffer@41d118a2
17:14:45.442 Thread-605: ChainTask: closing output stream
17:14:45.443 Thread-602: BufferReader: writeStream caught IOException: buffer=org.jstreamer.core.InputStreamBuffer@4b5f8d9
17:14:45.443 Thread-602: ChainTarget: socket connection ended
17:14:45.443 Thread-601: ChainTarget: stop
17:14:45.448 Thread-601: ChainTarget: stopping target
17:14:45.448 Thread-601: HTTPRequestTarget: stop this=com.minimstreamer.HTTPRequestTarget@12a3e79d outStr=com.minimstreamer.HTTPRequestTarget$ProxyOutputStream@31079dfd
17:14:45.448 Thread-601: HTTPRequestTarget: closeSocket
17:14:45.448 Thread-601: HTTPRequestTarget: closing Socket[addr=/10.0.1.21,port=2173,localport=9790]
17:14:45.449 Thread-601: HTTPRequestTarget: notifyStopped com.minimstreamer.Streamer$NotifyStopped@5361abdd
17:14:45.449 Thread-601: Streamer.NotifyStopped: run
17:14:45.449 Thread-601: ChainTarget: target stopped
17:14:45.449 Thread-601: ChainImpl: stopped chain org.jstreamer.core.ChainImpl@6132d6a6
17:14:45.449 Thread-601: HTTPService: removing connection org.jminim.lib.HTTPConnection@2052133d
17:14:45.449 Thread-604: Program: ended process java.lang.UNIXProcess@57c14cf7
17:14:45.450 Thread-603: Program: stderr reader thread reached end of stream
17:14:45.450 Thread-602: ChainImpl: stop org.jstreamer.core.ChainImpl@6132d6a6
17:14:45.450 Thread-606: ChainTask: stopping task
17:14:45.450 Thread-600: NetworkRequestHandler: thread interrupted
17:14:45.450 Thread-600: Streamer: getting request chain for org.jminim.lib.HTTPConnection$Request@6828813
17:14:45.450 Thread-600: ChainImpl: stop org.jstreamer.core.ChainImpl@6132d6a6
17:14:45.450 Thread-602: Buffer: read returned -1, bytes=0: org.jstreamer.core.InputStreamBuffer@4b5f8d9
17:14:45.450 Thread-600: Streamer: removing request chain for org.jminim.lib.HTTPConnection$Request@6828813
17:14:45.450 Thread-600: Streamer: completed network request
17:14:45.450 Thread-600: HTTPConnection: completed request; socket=Socket[addr=/10.0.1.21,port=2173,localport=9790], keepAlive=false
17:14:45.450 Thread-600: HTTPConnection: writer thread interrupted
17:14:45.450 Thread-602: BufferReader: fillBuffer returned -1: buffer=org.jstreamer.core.InputStreamBuffer@4b5f8d9
17:14:45.450 Thread-606: Program: destroying process java.lang.UNIXProcess@57c14cf7
17:14:45.451 Thread-606: ChainTask: task stopped
17:14:45.451 Thread-602: ChainTarget: end of data from input stream
17:14:45.451 Thread-602: ChainImpl: stop org.jstreamer.core.ChainImpl@6132d6a6
17:14:45.451 Thread-602: BufferPoolReader: close
17:14:45.451 Thread-602: BufferReader: close: buffer=org.jstreamer.core.InputStreamBuffer@4b5f8d9
17:14:45.451 Thread-602: Buffer: removeReader: org.jstreamer.core.InputStreamBuffer@4b5f8d9
17:14:45.451 Thread-602: Buffer: removeReaders calling notifyAll: org.jstreamer.core.InputStreamBuffer@4b5f8d9
17:14:45.451 Thread-602: BufferReader: close: buffer=org.jstreamer.core.InputStreamBuffer@9a768dd
17:14:45.452 Thread-602: Buffer: removeReader: org.jstreamer.core.InputStreamBuffer@9a768dd
17:14:45.452 Thread-602: Buffer: removeReaders calling notifyAll: org.jstreamer.core.InputStreamBuffer@9a768dd

It there a competition running for longest post?!

Might be worth emailing this to the minim guy via their website - see what he has to say.

The relevant part of the log is here:

Everything looks good until MinimStreamer establishes a socket connection to the JBRadio server and tries to start reading but the socket connection is closed for some reason.

As suggested above, if you want to pursue this further you are best posting your problem with the above log in the MinimServer forum. I am sure you will get a response from the developer.

One last question: I don’t think you have mentioned which streamer you are using and which firmware version it is running. Are you on the latest firmware?

This post on the MinimStreamer support form is relevant:

https://forum.minimserver.com/showthread.php?tid=5241

Before posting there with your issue you might try changing your transcode setting from flac:wav to *:L16

…and in addition to setting stream.transcode to *:L16, change your .m3u file entry for JB Radio as follows:

#EXTINF:-1,[JBRadio2;*,96000] JBRadio2 FLAC
http://199.189.87.9:10999/flac

If that doesn’t work, try this simpler form:

#EXTINF:-1,[JBRadio2] JBRadio2 FLAC
http://199.189.87.9:10999/flac

I looked at your profile and see that it lists a SuperUniti as your streamer. If one of the above options works then you might just listen and be happy, but it is possible that you are not running the latest firmware on your SU. I’m running 4.6 on my NDS and UnitiQute 2, by the way.

The latest firmware for the SU is also 4.6, which can be downloaded here:

Choose Support, then Manuals and Downloads). There are updaters for Mac and PC. If you do find you are not running 4.6 and you go ahead and apply the update, you might find that the original instructions on setting this up work. On the other hand, you might decide that is a lot of work just to listen to a radio station :slight_smile:

LMS still going strong!

Thanks for all your help. I’m on version 4.7 with my streamer. Is that wrong? I will try your other suggestions when I’m home later.

:slight_smile: yes indeed. It’s free, and does everything I need it to! Interact via Ipeng on my phone 99% of the time which is a nice interface: updated artist pics, random play, and RP Flac Stream saved as a Favourite. James

1 Like