Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: FFmpeg Decoder Wrapper (foo_input_ffmpeg) passthrough output (Read 1435 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

FFmpeg Decoder Wrapper (foo_input_ffmpeg) passthrough output

First of all, I'm no coder. Looking at the console, it seems to me that the ffmpeg plugin assumes a certain use for it. Namely that of decoding all kind of audio that users pass to it. That's understandable. Object-based surround codecs, though, can't be decoded this way and, in this case, would need a true passthrough option. FFMPEG has that capability, I think through its spdif_muxer (I guess the name has historical reasons, considering hi-res formats are beyond spdif capabilities).

Is there anything that could be done to make this accessible to end users? One could use only .mka files for Atmos content and pass those through to an AVR capable of decoding them.

It's the same that happens if you play WAV encapsulated AC3 or DTS content, without having a decoder installed for that kind of content. If you use WASAPI and output bitperfect content (fixed volume at 100%), the AVR decodes it if connected through HDMI (or spdif in that case, I suppose).

Currently the hardcoded instruction looks like this:

ffmpeg.exe" -i "INPUTFILE" -map 0:0 -f w64 -acodec pcm_f32le -

Easiest solution could be that of having a "tick" one could activate, per file type, that would turn that into a passthrough working one. Or maybe having an option to completely disable the hardcoded portion, leaving only -i "INPUTFILE" and users to find out for themselves how to activate passthrough (I'm not sure it's possibile through just command line arguments, haven't investigated due to not being possible to currently eliminate the hardcoded arguments).

Re: FFmpeg Decoder Wrapper (foo_input_ffmpeg) passthrough output

Reply #1
I would very much like to see the passthrough option in Foobar for all Dolby and DTS signals (DTSHDMA, TrueHD, DTS96/24 old-lossy ones and all others).

Re: FFmpeg Decoder Wrapper (foo_input_ffmpeg) passthrough output

Reply #2
I would very much like to see the passthrough option in Foobar for all Dolby and DTS signals (DTSHDMA, TrueHD, DTS96/24 old-lossy ones and all others).
As far as Dolby Digital, DTS and DTS 96/24, you can get passthrough by NOT installing AC3 and DTS decoders in foobar2000 and using AudioMuxer and its "Convert AC3/DTS to SPDIF Wav/Flac" function. It encapsulate the AC3/DTS content in a WAV file you can then compress to FLAC, in order to properly tag it.

foobar2000 decodes the FLAC and leaves the result untouched, sending it bitperfect to your AVR. Obviously you need to use WASAPI output and leave fb2k volume at 100%.

Which is pretty much what I'd like to find a way to do with FFmpeg Decoder Wrapper for object based surround content. Because while DTS-HD MA and TrueHD can be decoded losslessly (so I think, at least) the object based surround extensions of Atmos and DTS-X are completely lost in the process, currently.

Re: FFmpeg Decoder Wrapper (foo_input_ffmpeg) passthrough output

Reply #3
I would very much like to see the passthrough option in Foobar for all Dolby and DTS signals (DTSHDMA, TrueHD, DTS96/24 old-lossy ones and all others).
As far as Dolby Digital, DTS and DTS 96/24, you can get passthrough by NOT installing AC3 and DTS decoders in foobar2000 and using AudioMuxer and its "Convert AC3/DTS to SPDIF Wav/Flac" function. It encapsulate the AC3/DTS content in a WAV file you can then compress to FLAC, in order to properly tag it.

foobar2000 decodes the FLAC and leaves the result untouched, sending it bitperfect to your AVR. Obviously you need to use WASAPI output and leave fb2k volume at 100%.

Which is pretty much what I'd like to find a way to do with FFmpeg Decoder Wrapper for object based surround content. Because while DTS-HD MA and TrueHD can be decoded losslessly (so I think, at least) the object based surround extensions of Atmos and DTS-X are completely lost in the process, currently.

Thank you for the suggestion but to be honest I do not see a point in installing additional programs/plugins, "cheating the system", encapsulating something into something and so on just to get a pasthrough. What I need is foobar being able to just not "touch" my files, just play them - for example Bluray or DVDV or DVA files with different audio streams. I do not intend to rip them, demux them, convert them and so on just to get proper playback. I would like just to play them and get what they are without altering.
So the best solution is to implement passthroug with option to enable/disable it (so FB would decode the files or pass them through).

Re: FFmpeg Decoder Wrapper (foo_input_ffmpeg) passthrough output

Reply #4
I would very much like to see the passthrough option in Foobar for all Dolby and DTS signals (DTSHDMA, TrueHD, DTS96/24 old-lossy ones and all others).
As far as Dolby Digital, DTS and DTS 96/24, you can get passthrough by NOT installing AC3 and DTS decoders in foobar2000 and using AudioMuxer and its "Convert AC3/DTS to SPDIF Wav/Flac" function. It encapsulate the AC3/DTS content in a WAV file you can then compress to FLAC, in order to properly tag it.

foobar2000 decodes the FLAC and leaves the result untouched, sending it bitperfect to your AVR. Obviously you need to use WASAPI output and leave fb2k volume at 100%.

Which is pretty much what I'd like to find a way to do with FFmpeg Decoder Wrapper for object based surround content. Because while DTS-HD MA and TrueHD can be decoded losslessly (so I think, at least) the object based surround extensions of Atmos and DTS-X are completely lost in the process, currently.

Thank you for the suggestion but to be honest I do not see a point in installing additional programs/plugins, "cheating the system", encapsulating something into something and so on just to get a pasthrough. What I need is foobar being able to just not "touch" my files, just play them - for example Bluray or DVDV or DVA files with different audio streams. I do not intend to rip them, demux them, convert them and so on just to get proper playback. I would like just to play them and get what they are without altering.
So the best solution is to implement passthroug with option to enable/disable it (so FB would decode the files or pass them through).
Not disputing your wishes... my request is more conservative, recognizing that such use would not be widespread. Don't mistake this for me not appreciating what you wish, I'm simply trying to be realistic in my request.

Re: FFmpeg Decoder Wrapper (foo_input_ffmpeg) passthrough output

Reply #5
Also, I see there is this, which I was unaware of: https://www.foobar2000.org/components/view/foo_input_exe

So probably my request is useless (not that I'm sure that component will do what I need).

Edit: tried experimenting a bit with ffmpeg, no luck so far.