For now, yes.
The FLAC and ALAC file formats allow up to 32-bit integer (but not float).
However, the FLAC and ALAC encoders available in FFmpeg only write up to 24-bit integer. Same for the FLAC and ALACconvert reference encoders. So we are limited by the code implementations, not by the actual file format specifications. There is hope that the code could be updated to support 32-bit in the future.
Yes. However, this is usually not a big deal.
A 24-bit file has 144 dB of dynamic range, which goes well under the noise floor of most digital to analog converters. The extra precision from 24-bit to 32-bit is currently undetectable to the human ear (due to DAC limits), which is why major labels generally don’t waste disk space delivering music in 32-bit format to consumers.
The 32-bit space is generally used as a processing safeguard during mixdown so that multiple 24-bit tracks can be summed together without the risk of clipping. Then this “overloaded” file can be shared between DAWs or effects processors without introducing any distortion. However, by the time final dynamic compression has contained the signal to a good-sounding range, it will fit within 144 dB and then it can be exported as a 24-bit master with no loss. Mathematically, it’s possible for the 32-bit file to have more audio data than a 24-bit file. But in reality, few DACs could reproduce that data in any meaningful way. (And you would probably go deaf if one did.)
Assuming your 32-bit sources are finalized material and not some mid-project “overloaded” dumps, there shouldn’t be any meaningful loss from saving the files as 24-bit. But as always, do binary comparisons or blind A/B/X tests to verify.
The 4GB limit has spun off at least four extensions to the WAV format. Here’s a brief description of them so you can pick and choose as needed to fit your acquisition, editing, and playback tools:
Sony Wave64
Shotcut settings: Format=w64, Codec=pcm_s24le
FFmpeg command line: ffmpeg -i in.wav -c:a pcm_s24le -f w64 -y out.wav
Format specification: https://www.ambisonia.com/Members/mleese/sony_wave64.pdf/sony_wave64.pdf
Note: Using pcm_s32le (integer) or pcm_f32le (float) still gets written to disk as 24-bit integer.
Note: Supported by most DAWs like Cubase, Reaper, etc
RF64 (EBU Tech 3306)
Shotcut settings: Format=wav, Codec=pcm_s24le, Other: rf64=auto
FFmpeg command line: ffmpeg -i in.wav -c:a pcm_s24le -rf64 auto -f wav -y out.wav
Format specification: https://tech.ebu.ch/docs/tech/tech3306v1_1.pdf
Note: Using pcm_s32le (integer) or pcm_f32le (float) still gets written to disk as 24-bit integer.
Note: Successor to Sony Wave64. Also recognized by most DAWs.
BW64 (ITU-R BS.2088)
Shotcut settings: not available in FFmpeg
FFmpeg command line: FFmpeg can read but not write
Format specification: https://www.itu.int/dms_pubrec/itu-r/rec/bs/R-REC-BS.2088-1-201910-I!!PDF-E.pdf
Note: Successor to RF64. But it’s relatively new and still gaining support in a lot of audio tools.
WavPack
Shotcut settings: Format=wv, Codec=wavpack, Other: compression_level=4
FFmpeg command line: ffmpeg -i in.wav -c:a wavpack -compression_level 4 -f wv -y out.wv
Note: Using s32p or fltp still gets written to disk as 24-bit integer.
Note: The format and extension is WV not WAV.
Note: Compression is lossless and is basically the same as running the Wave source through WinZip. All algorithms used are open source and royalty-free.
Note: Compression level description: WavPack User Documentation
Note: Compression level comparison: Wavpack vs FFMPEG Wavpack
Note: FFmpeg muxer details: FFmpeg Codecs Documentation
Note: FLAC at compression_level=12
will have significantly faster runtime and smaller file size output compared to WavPack.
Through FFmpeg/Shotcut at 32-bit… not to my knowledge.
If you’re willing to step outside of FFmpeg, then WavPack can do compressed 32-bit in both float and integer. It has a surprising amount of commercial DAW support, too.
For archiving or scripting, download WavPack as a standalone executable at its home page and run it against your audio files similar to an FFmpeg command line conversion:
https://www.wavpack.com/
Regarding the still-prevalent RF64 format to get around the 4GB file size limit… someone might ask if adding rf64=auto
to the Other tab of every WAV-based Shotcut export preset is a good idea. I would think it is. Files under 4GB will retain the usual WAV structure. Files over 4GB will have their headers rewritten to the RF64 structure. It’s a good way to make sure the exported audio is compliant and playable, especially when 5.1 surround sound explodes the file size. Otherwise, FFmpeg will write data beyond 4GB that will be inaccessible to some other audio programs.