Post Reply 
 
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
MinimStreamer not transcoding
05-12-2018, 02:25
Post: #1
MinimStreamer not transcoding
I am trying to transcode DSD128 to 24/352 or just downsample to DSD64 because my Lumin A1 only supports DSD64 or up to 24/352.

I added the MinimStreamer package to MinimServer on my Synology NAS so it can transcode DSD128 to 24/352 but is not working. Music is not playing on the Lumin. Track information is displayed on the Lumin then nothing is played and skips to next track.

I put the following statements in the MinimWatch Systems properties tab:

Stream.transcode: dsf(128):wav24;384, flac:wav
Stream.options convOut=-af volume=+8dB

Installed Packages on my Synology NAS from MinimWatch 0.8.5.2 on my Mac
* minimjre-9.0.1.1
minimserver-0.8-update-126
* minimserver-0.8.5.3
minimstreamer-0.7.10

Also adding log debug info below as it looks like all is ok but I could be be missing something.

Any help/advice would be greatly appreciated.

Johnny D

Log file debug.

20:05:21.010 main: MinimServer: module version for MinimStreamer is 0.7.110
20:05:21.011 main: getPropertyObject: compName=stream propName=resourceFactory propValue=com.minimstreamer.Streamer$ResourceFactory@11274d2
20:05:21.011 main: getPropertyObject: compName=stream propName=urlFactory propValue=com.minimstreamer.Streamer$URLFactory@136e4cd
20:05:21.011 main: setProperty: compName=stream propName=serverVersion propValue=0.8.307
20:05:21.011 main: starting component stream in context context0
20:05:21.011 main: >>> EVENT >>> componentStarting: stream
20:05:21.011 main: ServerControl: componentStarting event for stream
20:05:21.012 main: Monitor: componentStarting event for stream in context context0
20:05:21.012 main: Streamer: start
20:05:21.021 main: getUpdateNames: getting update list
20:05:21.022 main: getUpdatePackages: updateFile=minimjre-9.jmupd
20:05:21.218 main: getUpdatePackages: updateFile=minimstreamer-0.5.jmupd
20:05:21.302 main: ServerControl.isPackageRequired: packageName=minimstreamer-0.7.10
20:05:21.302 main: isPackageRequired: minimstreamer-0.7.10 is already installed
20:05:21.303 main: getUpdatePackages: updateFile=minimserver-0.8.5.jmupd
20:05:21.389 main: ServerControl.isPackageRequired: packageName=minimserver-0.8-update-126
20:05:21.389 main: isPackageRequired: minimserver-0.8-update-126 is already installed
20:05:21.389 main: getUpdateNames: returned updateNames=[]
20:05:21.412 main: checkConverter: running command
20:05:21.412 main: Streamer.runConverter: commandArray is [/bin/ffmpeg, -ar, 48000, -f, s16le, -i, -, -f, s16le, -y, -]
20:05:21.432 main: Streamer.runConverter: process error stream is java.lang.ProcessImpl$ProcessPipeInputStream@cf294c
20:05:21.434 main: Streamer.runConverter: process output stream is java.lang.ProcessImpl$ProcessPipeInputStream@17aaca2
20:05:21.434 main: Streamer.runConverter: process input stream is java.lang.ProcessImpl$ProcessPipeOutputStream@4b1e1d
20:05:21.435 main: Streamer.runConverter: started process Process[pid=9204, exitValue="not exited"]
20:05:21.435 main: WaitForFFmpeg: waiting
20:05:21.435 Thread-733: Streamer: waiting for end of process Process[pid=9204, exitValue="not exited"]
20:05:21.759 Thread-732: Streamer: process output reader thread reached end of stream
20:05:21.760 Thread-731: Streamer: process output reader thread reached end of stream
20:05:21.763 Thread-733: Streamer: ended process Process[pid=9204, exitValue=0]
20:05:21.764 main: WaitForFFmpeg: ffmpegEnded=true
20:05:21.764 main: Streamer.runConverter: process status is 0
20:05:21.764 main: checkFFmpegRequestSampleFmt: running command
20:05:21.764 main: Streamer.runConverter: commandArray is [ffmpeg, -ar, 48000, -f, s16le, -request_sample_fmt, flt, -i, /dev/null, -f, s16le, -y, /dev/null]
20:05:21.767 main: Streamer.runConverter: process error stream is java.lang.ProcessImpl$ProcessPipeInputStream@566842
20:05:21.773 main: Streamer.runConverter: process output stream is java.lang.ProcessImpl$ProcessPipeInputStream@11ea80d
20:05:21.774 main: Streamer.runConverter: process input stream is java.lang.ProcessImpl$ProcessPipeOutputStream@1191ef0
20:05:21.775 main: Streamer.runConverter: started process Process[pid=9209, exitValue="not exited"]
20:05:21.775 main: WaitForFFmpeg: waiting
20:05:21.775 Thread-736: Streamer: waiting for end of process Process[pid=9209, exitValue="not exited"]
20:05:21.822 Thread-735: Streamer: process output reader thread reached end of stream
20:05:21.824 Thread-734: Streamer: process output reader thread reached end of stream
20:05:21.824 Thread-736: Streamer: ended process Process[pid=9209, exitValue=0]
20:05:21.824 main: WaitForFFmpeg: ffmpegEnded=true
20:05:21.825 main: Streamer.runConverter: process status is 0
20:05:21.825 main: checkDSFPCMSupport: running command
20:05:21.825 main: Streamer.runConverter: commandArray is [ffmpeg, -ar, 48000, -f, s16le, -c, dsd_lsbf_planar, -i, -, -f, s16le, -y, -]
20:05:21.827 main: Streamer.runConverter: process error stream is java.lang.ProcessImpl$ProcessPipeInputStream@df2821
20:05:21.827 main: Streamer.runConverter: process output stream is java.lang.ProcessImpl$ProcessPipeInputStream@dbad37
20:05:21.828 main: Streamer.runConverter: process input stream is java.lang.ProcessImpl$ProcessPipeOutputStream@14acdc2
20:05:21.835 main: Streamer.runConverter: started process Process[pid=9213, exitValue="not exited"]
20:05:21.836 main: WaitForFFmpeg: waiting
20:05:21.836 Thread-739: Streamer: waiting for end of process Process[pid=9213, exitValue="not exited"]
20:05:21.887 Thread-738: Streamer: process output reader thread reached end of stream
20:05:21.888 Thread-737: Streamer: process output reader thread reached end of stream
20:05:21.889 Thread-739: Streamer: ended process Process[pid=9213, exitValue=0]
20:05:21.890 main: WaitForFFmpeg: ffmpegEnded=true
20:05:21.890 main: Streamer.runConverter: process status is 0
20:05:21.890 main: checkConvOutSupport: converter=ffmpeg convOut=-af volume=+8dB
20:05:21.891 main: Streamer.runConverter: commandArray is [ffmpeg, -ar, 48000, -f, s16le, -i, -, -af, volume=+8dB, -f, s16le, -y, -]
20:05:21.905 main: Streamer.runConverter: process error stream is java.lang.ProcessImpl$ProcessPipeInputStream@a262d6
20:05:21.905 main: Streamer.runConverter: process output stream is java.lang.ProcessImpl$ProcessPipeInputStream@11bd803
20:05:21.906 main: Streamer.runConverter: process input stream is java.lang.ProcessImpl$ProcessPipeOutputStream@f07f02
20:05:21.906 main: Streamer.runConverter: started process Process[pid=9218, exitValue="not exited"]
20:05:21.906 main: WaitForFFmpeg: waiting
20:05:21.907 Thread-742: Streamer: waiting for end of process Process[pid=9218, exitValue="not exited"]
20:05:21.950 Thread-741: Streamer: process output reader thread reached end of stream
20:05:21.951 Thread-740: Streamer: process output reader thread reached end of stream
20:05:21.952 Thread-742: Streamer: ended process Process[pid=9218, exitValue=0]
20:05:21.953 main: WaitForFFmpeg: ffmpegEnded=true
20:05:21.953 main: Streamer.runConverter: process status is 0
20:05:21.953 main: Streamer: FFmpeg request_sample_fmt option value is flt
20:05:21.964 main: Streamer: FFmpeg DSF to PCM support is available
20:05:21.964 main: Streamer: transcoding converter is 'ffmpeg'
20:05:21.964 main: Streamer: transcode setting is 'dsf(128):wav24;384, flac:wav'
20:05:21.964 main: setPropertyObject: compName=stream propName=transcodePairs propValue={flac=wav}
20:05:21.965 main: started component stream in context context0
20:05:21.965 main: >>> EVENT >>> componentRunning: stream
20:05:21.965 main: ServerControl: componentRunning event for stream
20:05:21.965 main: Monitor: componentRunning event for stream in context context0
20:05:21.966 main: setting initial values for MinimServer
Language setting is 'enu'
Find all posts by this user
Quote this message in a reply
05-12-2018, 10:34
Post: #2
RE: MinimStreamer not transcoding
You said the LUMIN can handle up to 24/352 but you have set MinimStreamer to transcode to 24/384.
Find all posts by this user
Quote this message in a reply
05-12-2018, 13:47
Post: #3
RE: MinimStreamer not transcoding
(05-12-2018 10:34)simoncn Wrote:  You said the LUMIN can handle up to 24/352 but you have set MinimStreamer to transcode to 24/384.

Thanks Simon, my mistake it can transcode to 384. I think I might have figured out my issue. MinimStreamer is transcoding but I think the issues is with my NAS.

It does not have the necessary compute and memory to transcode it fast enough.

My NAS is a Synology DS411slim. It's 6-7 years old and only has one processor/core at 1.6Ghz and 256MB of memory.

It does eventually start to play on my Lumin but takes about 10-15 seconds to begin playing and then the music gets garbled.

Is there a way I can prove this theory?

Thanks

Johnny D
Find all posts by this user
Quote this message in a reply
05-12-2018, 15:40
Post: #4
RE: MinimStreamer not transcoding
Your theory is correct. The processor in the DS411 doesn't support floating-point operations (required for DSD transcoding) and this will cause the CPU to jump to 100% when you try to stream the file (you can use Resource Monitor to confirm this).

You would get slightly lower CPU consumption and probably slightly better results by using dsf(128):wav. This transcodes to 352.8 kHz 32 bits, which is is a closer multiple of the original DSD sample rate. The LUMIN A1 should be able to handle this. However, I don't think this would work with the DS411.
Find all posts by this user
Quote this message in a reply
05-12-2018, 22:20
Post: #5
RE: MinimStreamer not transcoding
(05-12-2018 15:40)simoncn Wrote:  Your theory is correct. The processor in the DS411 doesn't support floating-point operations (required for DSD transcoding) and this will cause the CPU to jump to 100% when you try to stream the file (you can use Resource Monitor to confirm this).

You would get slightly lower CPU consumption and probably slightly better results by using dsf(128):wav. This transcodes to 352.8 kHz 32 bits, which is is a closer multiple of the original DSD sample rate. The LUMIN A1 should be able to handle this. However, I don't think this would work with the DS411.

Thanks Simon, I was able to verify. The NAS CPU just gets pegged. ffmpeg is the culprit. Surprised that memory only reached 60%. Time for a new NAS. I needed a reason and now have one. Torn between the DS418 (Realtek RTD1296 quad core 1.4Ghz w/2GB mem) or DS418play (Intel Celeron J3355 Dual Core 2.0 burst up to 2.5 GHz w/2GB mem).
Leaning towards the DS418. Your thoughts?

Thanks

Johnny D.
Find all posts by this user
Quote this message in a reply
05-12-2018, 22:57 (This post was last modified: 06-12-2018 09:22 by simoncn.)
Post: #6
RE: MinimStreamer not transcoding
Either the DS418 or DS418play would be more than adequate for any MinimStreamer/ffmpeg transcoding that you might need to do. The prices seem similar. From a quick glance at the specs, the main advantage of the DS418play is that you could expand the memory to 6GB in the future.
Find all posts by this user
Quote this message in a reply
06-12-2018, 02:01
Post: #7
RE: MinimStreamer not transcoding
(05-12-2018 22:57)simoncn Wrote:  Either the DS418 or DS418play would be more than adequate for any MinimStreamer/ffmpeg transcoding that you might need to do. The prices seem similar. From a quick glance at the specs, the main advantage of the DS418 is that you could expand the memory to 6GB in the future.

The play also does btrfs. I don't really need that. It comes down to Intel vs ARM dual core vs quad core. DS418 is ARM and quad core. Sounds like a winner to me. A bit cheaper too.

Thanks for all your help and support.

Johhny D
Find all posts by this user
Quote this message in a reply
06-12-2018, 09:22 (This post was last modified: 06-12-2018 09:23 by simoncn.)
Post: #8
RE: MinimStreamer not transcoding
Apologies, I had that the wrong way round. It is the DS418play that is expandable to 6GB, not the DS418. I have corrected my earlier post.
Find all posts by this user
Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)