Suppose that we have one video file in.mkv, which has two audio tracks, what is the most direct way to remux it into two separate mkv files with just one audio track?
Two streams is an example, the technique should work with 100 audio streams.
There are several ways to do that. The simplest, but not the best would be to run some sort of remuxing twice, each time taking just a single audio track. But since there is no re-encoding the speed will go down since the computer is forced to read the whole file twice (or more times if you have more audio tracks).
To accomplish the task with a single read using libav (ffmpeg will probably be the same):
avconv -i in.mkv -map 0:0 -map 0:1 -c:a copy -c:v copy out1.mkv -map 0:0 -map 0:2 -c:a copy -c:v copy out2.mkv
It is probably also possible to do that with gstreamer.