ffmpeg-normalize icon indicating copy to clipboard operation
ffmpeg-normalize copied to clipboard

Is it possible to normalize just the first audio track in video file?

Open go2tom42 opened this issue 6 years ago • 1 comments

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

go2tom42 avatar Jun 20 '19 15:06 go2tom42

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”).

slhck avatar Jun 20 '19 15:06 slhck

Closing issues I have not had time to work on. PRs are welcome.

slhck avatar Aug 24 '22 10:08 slhck