This is a simple answer for people like me, who like simple working explanations. This is a solution when you copy mkv to mp4 and want to choose audio streams:
You have to write -map 0:numberofstreamminusone in front of -c:a copy
Let's say the video has 3 streams (you can see that in mediainfo). The first stream is video, the second is default audio, and the third is non-default audio in the language you want. So you have to write -map 0:2 NOT -map 0:3
Also, you have to write -map 0:0 in front of -c:v copy because if you don't, ffmpeg will not copy the video stream and you get only the audio stream (If the video has two video streams and you want to copy the second one, you have to write -map 0:1)
So the final command line looks like this:
ffmpeg -i "inputpath\input.mkv" -map 0:0 -c:v copy -map 0:2 -c:a copy "outputpath\output.mp4"
In this case, you wil get the first video stream and the third audio stream
Another example:
ffmpeg -i "inputpath\input.mkv" -map 0:1 -c:v copy -map 0:6 -c:a copy "outputpath\output.mp4"
In this case you should get the second video stream and the seventh audio stream
I hope this helps