<p>Some media players simply start playing the first audio stream (track). For them you may simply change the order of audio streams.</p>

<p>For example, suppose you have 1 video stream and 3 audio streams in your input file, and you want to move the 3rd audio stream to be the first of audio streams.</p>

<p>Use</p>

<pre><code>ffmpeg -i input.mp4 -map 0:v -map 0:a:2 -map 0:a:0 -map 0:a:1 -c copy output.mp4 
</code></pre>

<p>so <code>-map 0:a:2</code> places the 3rd audio stream (stream numbers begin with <code>0</code>, so <code>2</code> is the 3rd one) in front of all others audio streams (<code>-map 0:a:0 -map 0:a:1</code>).  </p>

<hr>

<p><em>Note:</em></p>

<ul>
<li><code>0:v</code> means <em>all</em> <strong>v</strong>ideo streams in the input file <code>0</code> (input files are numbered from <code>0</code>)</li>
<li><code>0:a:2</code> means: input file <code>0</code>, <strong>a</strong>udio stream number <code>2</code></li>
<li><code>0:a:0</code> means: input file <code>0</code>, <strong>a</strong>udio stream number <code>0</code></li>
<li><code>0:a:1</code> means: input file <code>0</code>, <strong>a</strong>udio stream number <code>1</code></li>
</ul>

CC BY-SA 4.0
2020-01-08T17:05:16.610Z
Thank you for your explanation!
Артур Гудиев
CC BY-SA 4.0
2020-01-08T16:36:45.613Z
2020-01-08T16:46:06.427Z
2020-01-08T16:46:06.427Z
MarianD
<p>I found the following solution in Avidemux. (prveious answers are not always working)</p>
<ol>
<li>Open video in Avidemux</li>
<li>In "Audio -> Select track" choose only one track you need</li>
<li>In "output format" select "mp4 muxer"</li>
<li>Save the file using "File -> Save as"</li>
</ol>
<p>There is also a disadvantage in this method. It removes all other tracks but it's good enough for some cases.</p>

CC BY-SA 4.0
2020-11-05T09:41:27.400Z
2020-11-05T09:41:27.400Z
Артур Гудиев
<p>Use <a href="https://ffmpeg.org/" rel="nofollow noreferrer">FFmpeg</a>:</p>

<pre><code>ffmpeg -i input.mp4 -map 0 -c copy -disposition:a:0 0 -disposition:a:1 default output.mp4
</code></pre>

<p>Audio tracks (streams) are numbered from <code>0</code>. </p>

<p>Supposing the input video has 2 audio streams, and the default audio stream is <code>0</code>, we need to </p>

<ul>
<li><em>remove</em> the “default” disposition from it (by setting it to 0: <code>-disposition:a:0 0</code>) and  </li>
<li><em>set it</em> to the audio stream <code>1</code> (by setting it to “default”: <code>-disposition:a:1 default</code>).</li>
</ul>

<p>In general, <em>remove</em> the “default” disposition from all audio streams except one, and <em>set it</em> for it.</p>

<hr>

<p><em>Note:</em></p>

<p>Not all media players honor default audio stream — for example Media Player Classic don't honor it (but you may set the preference by the language of audio streams), while VLC Media Player and FFplay do.</p>

<hr>

<p><em>Proof (note the location of the “(default)” tag):</em></p>

<pre><code>ffprobe -hide_banner input.mp4
</code></pre>

<p>gives (among others)</p>

<pre><code>Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 69 kb/s (default)
Metadata:
  handler_name    : SoundHandler
Stream #0:2(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 74 kb/s
Metadata:
  handler_name    : SoundHandler
</code></pre>

<p>while</p>

<pre><code>ffprobe -hide_banner output.mp4
</code></pre>

<p>gives</p>

<pre><code>Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 69 kb/s
Metadata:
  handler_name    : SoundHandler
Stream #0:2(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 74 kb/s (default)
Metadata:
  handler_name    : SoundHandler
</code></pre>

<p>The numbering here numbers <em>all</em> tracks, so <code>#0:0</code> (omitted from the FFprobe outputs) is the first (video) track, and <code>#0:1</code> and <code>#0:2</code> are audio tracks.</p>

CC BY-SA 4.0
2020-01-08T07:48:43.157Z
I tried it with different variants (from 1 to 4) but it does't work for me. Unfortunately. Default audio track stays the same.
Артур Гудиев
CC BY-SA 4.0
2020-01-08T15:16:37.480Z
I edited my answer — you also need to remove the “default” disposition from all other audio tracks.
MarianD
CC BY-SA 4.0
2020-01-08T15:36:10.013Z
Note that not all media players honor the “default” disposition — some of them simply start playing the first audio stream.
MarianD
CC BY-SA 4.0
2020-01-08T16:57:23.937Z
Thank you so much! I use VLC player. And the edited answer helped me!
Артур Гудиев
CC BY-SA 4.0
2022-04-07T12:45:53.600Z
combining this (changing default) and MarianD's answer (changing order) works great...now it'll probably work on any player
Peter
CC BY-SA 4.0
2020-01-07T22:35:17.010Z
2020-01-08T16:08:31.160Z
2020-01-08T16:08:31.160Z
MarianD
<p>I often download mp4 videos with multiple audio tracks. 
Is it any way or some tools with explanation to change default audio track ?</p>

<audio>
Change default audio track in mp4 video
Артур Гудиев
# Change default audio track in mp4 video

(Asked by: username_0 on 2020-01-07)

I often download mp4 videos with multiple audio tracks.
Is it any way or some tools with explanation to change default audio track ?

**Tags:** audio


---

## 3 answers

### Answer by username_1 on 2020-01-07. Score: 3 | Accepted answer

Use FFmpeg:
ffmpeg -i input.mp4 -map 0 -c copy -disposition:a:0 0 -disposition:a:1 default output.mp4

Audio tracks (streams) are numbered from 0. 
Supposing the input video has 2 audio streams, and the default audio stream is 0, we need to 

remove the “default” disposition from it (by setting it to 0: -disposition:a:0 0) and  
set it to the audio stream 1 (by setting it to “default”: -disposition:a:1 default).

In general, remove the “default” disposition from all audio streams except one, and set it for it.

Note:
Not all media players honor default audio stream — for example Media Player Classic don't honor it (but you may set the preference by the language of audio streams), while VLC Media Player and FFplay do.

Proof (note the location of the “(default)” tag):
ffprobe -hide_banner input.mp4

gives (among others)
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 69 kb/s (default)
Metadata:
  handler_name    : SoundHandler
Stream #0:2(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 74 kb/s
Metadata:
  handler_name    : SoundHandler

while
ffprobe -hide_banner output.mp4

gives
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 69 kb/s
Metadata:
  handler_name    : SoundHandler
Stream #0:2(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 74 kb/s (default)
Metadata:
  handler_name    : SoundHandler

The numbering here numbers all tracks, so #0:0 (omitted from the FFprobe outputs) is the first (video) track, and #0:1 and #0:2 are audio tracks.

> **Comments:**
> **username_0**: I tried it with different variants (from 1 to 4) but it does't work for me. Unfortunately. Default audio track stays the same.  
> **username_1**: I edited my answer — you also need to remove the “default” disposition from all other audio tracks.  
> **username_1**: Note that not all media players honor the “default” disposition — some of them simply start playing the first audio stream.  
> **username_0**: Thank you so much! I use VLC player. And the edited answer helped me!  
> **username_2**: combining this (changing default) and username_1's answer (changing order) works great...now it'll probably work on any player  

---

### Answer by username_1 on 2020-01-08. Score: 2

Some media players simply start playing the first audio stream (track). For them you may simply change the order of audio streams.
For example, suppose you have 1 video stream and 3 audio streams in your input file, and you want to move the 3rd audio stream to be the first of audio streams.
Use
ffmpeg -i input.mp4 -map 0:v -map 0:a:2 -map 0:a:0 -map 0:a:1 -c copy output.mp4 

so -map 0:a:2 places the 3rd audio stream (stream numbers begin with 0, so 2 is the 3rd one) in front of all others audio streams (-map 0:a:0 -map 0:a:1).  

Note:

0:v means all video streams in the input file 0 (input files are numbered from 0)
0:a:2 means: input file 0, audio stream number 2
0:a:0 means: input file 0, audio stream number 0
0:a:1 means: input file 0, audio stream number 1

> **Comments:**
> **username_0**: Thank you for your explanation!  

---

### Answer by username_0 on 2020-11-05. Score: 0

I found the following solution in Avidemux. (prveious answers are not always working)

1. Open video in Avidemux
2. In "Audio -> Select track" choose only one track you need
3. In "output format" select "mp4 muxer"
4. Save the file using "File -> Save as"

There is also a disadvantage in this method. It removes all other tracks but it's good enough for some cases.


---

