Hello Dipesh, this will solve your problem.
Problem
What you are trying to accomplish is to indicate which audio stream will be used by default, while negating this flag in all unwanted audio streams. This solution will be similar when trying to choose which (if any) subtitle track will be default and / or, possibly, forced.
Common decision
FFmpeg automatically puts all threads in default without user intervention. Therefore, for all flags, this flag should be set to -default , except for the one that was selected by default. The problem can be solved with the following command: value = -default .
-disposition[:stream_specifier] value (output,per-stream)
Details on its use can be found in the FFmpeg Documentation in Section 5.4 General Settings .
Specific solution
ffmpeg -i FILE \ -y -strict experimental \ -map 0:0 -map 0:1 -map 0:1 -map 0:1 -map 0:2 \ -c:0 copy -c:1 aac -ac:a 2 -c:2 ac3 -ac:a 6 -c:3 copy -c:4 mov_text \ -disposition:a -default -disposition:a:0 default \ OUTPUT
In the -disposition:a -default all audio streams in the output file are flagged to non -default. So far, -disposition:a:0 default puts the first audio stream in the default output file.
source share