Post Reply 
 
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Transcoding only multichannel dsf files
25-06-2021, 17:18
Post: #11
RE: Transcoding only multichannel dsf files
Thank you, Simon. I believe that the pan option/function is the best one for this purpose, so here is my 'best try' for it:

convOut=-af volume=+6dB, -af pan="5.0| c0=c0 | c1=c1 | c2=c2 | c3=c4 | c4=c5"

I tested different flavours with added/removed commas, quotes and the volume option, but to no avail.
Find all posts by this user
Quote this message in a reply
25-06-2021, 21:39
Post: #12
RE: Transcoding only multichannel dsf files
For multiple filters, you don't repeat -af but instead create a filter chain by connecting the filters with commas. The following should work:

convOut=-af "volume=+6dB, pan=5.0| c0=c0 | c1=c1 | c2=c2 | c3=c4 | c4=c5"
Find all posts by this user
Quote this message in a reply
26-06-2021, 01:21
Post: #13
RE: Transcoding only multichannel dsf files
Thank you, Simon. It worked in terms of being a legal code, but did not solve the issue. I also tried: convOut=-f 'channelmap=0|1|2|4|5:5.0' -af volume=+6dB. Again, it did nothing.

I installed ffmpeg on my PC to convert a test 5.0 dsf to flac and see how it plays on my system. After using the following "ffmpeg -i test.dsf -af aformat=s32:176000 testflac.flac", I got a flac that plays on my system just fine. Clearly, ffmpeg must be doing something different when transcoding on the fly. I'm at a loss what it could be. I'll try to ask around in forums/groups with a multichannel edge and report back if I find out the solution. If anybody here has any ideas, please shoot.
Find all posts by this user
Quote this message in a reply
26-06-2021, 08:37
Post: #14
RE: Transcoding only multichannel dsf files
You can check the exact FFmpeg command that MinimStreamer is using by doing the following:

1) Open the MinimServer log window
2) Set the logging level to Debug
3) Play your test file
4) In the log window, click 'Save as' to save the log as a text file
5) Set the logging level back to Info

If you look at the log file in a text editor, you should see a line that looks something like this:

ChainImpl: property filetrans.command has final value '"C:\\Users\\nash\\AppData\\Roaming\\MinimServer\\opt\\bin\\ffmpeg.exe" -v 0 -analyzeduration 0 -f dsf -request_sample_fmt flt -i "H:\\simon\\01_Le-Quattro-Stagioni_Channel-Classics_40318_2ch128.dsf" -vn -ar 176400 -f s24le -acodec pcm_s24le -sample_fmt s32 pipe:'

What does this line say on your system?
Find all posts by this user
Quote this message in a reply
26-06-2021, 13:09
Post: #15
RE: Transcoding only multichannel dsf files
Thank you, Simon. Unfortunately, I don't think I'm getting anything of this sort. This is what shows up for the problematic 5.0/silent centre format:

imServer[TheMachine] is running
12:54:28.134 Thread-217: saveProperty: compName=null propName=logLevel propValue=debug
12:54:28.152 Thread-217: getSaveValue: compName= propName=logLevel propValue=debug saveValue=debug
12:54:28.154 Thread-217: writeConfigProperty: propFullName=.logLevel propValue=debug
12:54:28.162 Thread-217: updateActiveProfile: propFullName=.logLevel
12:54:28.162 Thread-217: RootContextImpl: called writeActiveProfile
12:54:28.162 Thread-217: writeActiveProfile: activeProfile=null
12:54:28.163 Thread-217: writeActiveProfile: activeProfile=null
12:54:28.163 Thread-217: writeActiveProfile: activeProfile=null
12:54:28.163 Thread-217: writeActiveProfile: activeProfile=null
12:54:28.163 Thread-217: writeActiveProfile: activeProfile=null
12:54:28.163 Thread-217: writeActiveProfile: activeProfile=null
12:54:28.163 Thread-217: writeActiveProfile: activeProfile=null
12:56:42.098 AWT-EventQueue-0: setLogFileChooser: current=null chooser=com.minimserver.lib.TrayControl$TrayView$60[,0,0,0x0,invalid,layout=java.awt.BorderLayout,alignmentX=0.0,alignmentY=0.0,bord​er=javax.swing.border.EmptyBorder@6abb1c27,flags=320,maximumSize=,minimumSize=,p​referredSize=,approveButtonText=,currentDirectory=C:\Users\kuba1\Documents,dialo​gTitle=MinimWatch: Save log as file,dialogType=OPEN_DIALOG,fileSelectionMode=FILES_ONLY,returnValue=ERROR_OPTIO​N,selectedFile=,useFileHiding=true]
12:56:42.208 AWT-EventQueue-0: getSaveLogFile: calling showSaveDialog
12:56:48.607 AWT-EventQueue-0: getSaveLogFile: showSaveDialog returned 0
12:56:48.608 AWT-EventQueue-0: saveLocalProperty: compName=watch propName=lastLogDirectory propValue=C:\Users\kuba1\Desktop
12:56:48.609 AWT-EventQueue-0: getSaveValue: compName=watch propName=lastLogDirectory propValue=C:\Users\kuba1\Desktop saveValue=C:\Users\kuba1\Desktop
12:56:48.613 AWT-EventQueue-0: writeConfigProperty: propFullName=watch.lastLogDirectory propValue=C:\Users\kuba1\Desktop
12:56:48.626 AWT-EventQueue-0: updateActiveProfile: propFullName=watch.lastLogDirectory
12:56:48.630 Thread-218: Opening saved log file C:\Users\kuba1\Desktop\minimlog
12:56:52.066 AWT-EventQueue-0: User changed log level: info
12:56:52.067 Thread-219: saveProperty: compName=null propName=logLevel propValue=info
12:56:52.068 Thread-219: getSaveValue: compName= propName=logLevel propValue=info saveValue=
12:56:52.068 Thread-219: writeConfigProperty: propFullName=.logLevel propValue=
12:56:52.077 Thread-219: updateActiveProfile: propFullName=.logLevel
12:56:52.077 Thread-219: RootContextImpl: called writeActiveProfile
12:56:52.077 Thread-219: writeActiveProfile: activeProfile=null
12:56:52.077 Thread-219: writeActiveProfile: activeProfile=null
12:56:52.077 Thread-219: writeActiveProfile: activeProfile=null
12:56:52.077 Thread-219: writeActiveProfile: activeProfile=null
12:56:52.077 Thread-219: writeActiveProfile: activeProfile=null
12:56:52.077 Thread-219: writeActiveProfile: activeProfile=null
12:56:52.078 Thread-219: writeActiveProfile: activeProfile=null


For comparison, this is what happens when playing a 5.1 dsf file which plays just fine:

12:59:11.845 Thread-222: saveProperty: compName=null propName=logLevel propValue=debug
12:59:11.845 Thread-222: getSaveValue: compName= propName=logLevel propValue=debug saveValue=debug
12:59:11.846 Thread-222: writeConfigProperty: propFullName=.logLevel propValue=debug
12:59:11.855 Thread-222: updateActiveProfile: propFullName=.logLevel
12:59:11.855 Thread-222: RootContextImpl: called writeActiveProfile
12:59:11.855 Thread-222: writeActiveProfile: activeProfile=null
12:59:11.856 Thread-222: writeActiveProfile: activeProfile=null
12:59:11.856 Thread-222: writeActiveProfile: activeProfile=null
12:59:11.856 Thread-222: writeActiveProfile: activeProfile=null
12:59:11.856 Thread-222: writeActiveProfile: activeProfile=null
12:59:11.856 Thread-222: writeActiveProfile: activeProfile=null
12:59:11.856 Thread-222: writeActiveProfile: activeProfile=null
13:01:07.698 AWT-EventQueue-0: setLogFileChooser: current=com.minimserver.lib.TrayControl$TrayView$60[,0,0,582x397,invalid,layout=java.awt.BorderLayout,alignmentX=0.0,alignmentY=0.0,​border=javax.swing.border.EmptyBorder@6abb1c27,flags=320,maximumSize=,minimumSiz​e=,preferredSize=,approveButtonText=,currentDirectory=C:\Users\kuba1\Desktop,dia​logTitle=MinimWatch: Save log as file,dialogType=SAVE_DIALOG,fileSelectionMode=FILES_ONLY,returnValue=APPROVE_OPT​ION,selectedFile=C:\Users\kuba1\Desktop\minimlog,useFileHiding=true] chooser=com.minimserver.lib.TrayControl$TrayView$60[,0,0,0x0,invalid,layout=java.awt.BorderLayout,alignmentX=0.0,alignmentY=0.0,bord​er=javax.swing.border.EmptyBorder@6afe9c00,flags=320,maximumSize=,minimumSize=,p​referredSize=,approveButtonText=,currentDirectory=C:\Users\kuba1\Desktop,dialogT​itle=MinimWatch: Save log as file,dialogType=OPEN_DIALOG,fileSelectionMode=FILES_ONLY,returnValue=ERROR_OPTIO​N,selectedFile=,useFileHiding=true]
13:01:07.699 AWT-EventQueue-0: setLogFileChooser: calling cancelSelection
13:01:07.699 AWT-EventQueue-0: getSaveLogFile: calling showSaveDialog
13:01:23.994 AWT-EventQueue-0: getSaveLogFile: showSaveDialog returned 0
Find all posts by this user
Quote this message in a reply
26-06-2021, 13:48
Post: #16
RE: Transcoding only multichannel dsf files
Thanks for this. It looks like this extract is from the MinimWatch log, not the MinimServer log. Please do the following:

1) Open the MinimServer log window by clicking 'Show log' ; not Options > Show log (watch)
2) The title bar of this log window should say MinimServer, not MinimWatch
3) Set the logging level to Debug
4) Play your test file
5) You should see a very large amount of output in the log window
6) In the log window, click 'Save as' to save the log as a text file
7) Set the logging level back to Info
Find all posts by this user
Quote this message in a reply
26-06-2021, 14:20
Post: #17
RE: Transcoding only multichannel dsf files
Whoops, apologies, I missed the distinction. Here is the relevant line:

ChainImpl: property filetrans.command has final value '"/var/packages/ffmpeg/target/bin/ffmpeg" -v 0 -analyzeduration 0 -f dsf -request_sample_fmt flt -i "/volume1/music2/4.0/Santana/Santana - Santana (SA-CD Multi-ch Hybrid Edition) [multi]/01. Waiting [4.0].dsf" -af volume=+6dB -vn -ar 176400 -f s24le -acodec pcm_s24le -sample_fmt s32 pipe:'

It seems to be repeated throughout the log about 5 times, should it matter. Please note that this is after removing from stream.options the unsuccessful attempts to re-map the channels.
Find all posts by this user
Quote this message in a reply
26-06-2021, 21:01
Post: #18
RE: Transcoding only multichannel dsf files
Thanks for this. I think the best approach for debugging this problem is to eliminate the differences between the working command and the failing command, one step at a time.

The most significant difference appears to be output to FLAC vs output to WAV. Please try running this command:

ffmpeg -i test.dsf -af aformat=s32:176000 testwav.wav

Does this produce a working WAV file?
Find all posts by this user
Quote this message in a reply
26-06-2021, 23:11
Post: #19
RE: Transcoding only multichannel dsf files
That gives me a file which is unplayable on my renderer (Sony UBP-X800M2 blu-ray player). I get a message that the file is corrupt or music format is not supported. Per foobar, the channel layout of the file is: 5: FL FR FC BL BR.

For comparison, I converted one of my 4.0 + silent centre flacs to wav which gave me the channel layout of just "5". This one played like the transcoded 4.0 + silent centre DSFs, i.e. stereo only. I'm wondering whether forcing the channel layout of my setup (5: FL FR FC SL SR) might solve the problem. I could not find an easy way (i.e. easy enough for me) to do it and try it out on a wav file.

Apologies, I thought that there would be no difference between WAVs and FLACs for this issue.
Find all posts by this user
Quote this message in a reply
27-06-2021, 11:42
Post: #20
RE: Transcoding only multichannel dsf files
Is this the same DSF file that plays as stereo only on the same renderer when transcoded to a WAV stream by MinimStreamer?

If so, the error you are seeing might not be caused by channel layout as this should be the same in both cases (WAV stream and WAV file). Perhaps there is some other difference such as bit depth (24 vs 32).

I think you will need help from an FFmpeg expert to find the right options to create a WAV file with a channel layout that plays correctly on your renderer. When you have this working, I can help you do the same with MinimStreamer.
Find all posts by this user
Quote this message in a reply
Post Reply 


Forum Jump:


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