Is it possible to normalize just the first audio track in video file?
I don't know if this is a feature request or if I'm just missing something.
The readme states
What will get normalized?
By default, all streams from the input file will be written to the output file. For example, if your input is a video with two language tracks and a subtitle track, both audio tracks will be normalized independently. The video and subtitle tracks will be copied over to the output file.
By default all tracks are normalized, is it possible to just have the first audio track in the video file normalized and not all the audio tracks? I have quite a few videos with multiple commentary tracks that do not need normalizing
In a perfect world I looking to normalize the first track, keep all the commentary tracks, and add the original version of the track that was normalized to end of the audio tracks. Is this possible?
Thank you for you time
No, this isn't possible at this stage, but could be possible with (yet) another option to select specific audio tracks via their IDs. I'll have to think about how to best implement that without, err, re-implementing ffmpeg :)
As a workaround for now:
ffmpeg -i <original> -c:a copy -vn -map 0:a:<id> audio.mkv
Where <id> is the ID of the audio track, so 0 for the first. Then normalize:
ffmpeg-normalize audio.mkv
Then merge with the original:
ffmpeg -i <original> -i normalized/audio.mkv -c copy -map 0:v -map 1:a -map 0:a:1 -map 0:a:2 output.mkv
Of course you'd have to manually specify which audio tracks of the original you want to map to the output, since ffmpeg does not have an inverse map option (i.e. “map everything but X”).
Closing issues I have not had time to work on. PRs are welcome.