Sorry if this has been asked before. I couldn’t find any answers to my question using the search.
When rendering my videos, I would like to use 16-bit audio rather than 32-bit audio. I have tried sample_fmt=16 but the video still renders in 32-bit. What do I need to type to force 16-bit? I can’t find any other info about this on the MLT website other than the sample_fmt, which again, doesn’t change anything after the render.
AAC doesn’t use a fixed bit depth, so it can’t be forced to 16-bit. The encoder changes the bit depth from sample to sample as it sees fit. This is one of many techniques AAC uses to get compression efficiency. The 32-bit reference you’re seeing in the logs simply means 32-bit audio is being fed to the encoder to ensure high fidelity input. Some probe tools also report AAC files as 32-bit float because technically that’s the widest sample it could deliver if needed, and a decoder must be able to handle every scenario. But the actual output bit depth will vary significantly throughout the stream based on the content of the audio being encoded.