Change default audio track in mp4 video
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.