I have a video file with extension .mkv. It contains 2 Audio Tracks.

  1. English
  2. Hindi

English Audio track is the default Audio track. I am trying to set the default Audio track to Hindi because when I try to play it on my LED, it plays English Audio track as it is the default track.

I used below command to set Hindi as default Audio track.

ffmpeg -i input.mkv -map 0:1 output.mkv

But, it still keeps English as default track.

Am I missing anything?

ffmpeg -i "input.mkv" \
-map 0:0 \
-map 0:2 \
-map 0:1 \
-disposition:a:0 default \
-disposition:a:1 none \
-c copy "output.mkv"
  1. input
  2. use video stream (0:0)
  3. make 2nd audio stream (Hindi) the 1st
  4. make 1st audio stream (English) the 2nd
  5. use the new 1st audio stream (Hindi) as default
  6. remove the default from the new 2nd audio stream (English)
  7. create output without transcoding
| improve this answer | |
ffmpeg -i input -map 0:v -map 0:m:language:hin -c copy output

Above code helped me. It worked perfectly for me.

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.