Rendering audio in videos at 16-bit instead of 32-bit

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.

My other settings are AAC codec, 48kHz.

Thanks in advance.

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.

2 Likes

Thanks for the quick reply @Austin. I wasn’t sure if it could be done. At least I know now. :slight_smile:

This topic was automatically closed after 90 days. New replies are no longer allowed.