Respuestas:
Use la -mapopción para elegir sus transmisiones. La selección de flujo predeterminada solo elegirá uno de cada tipo de flujo, por lo que es por eso -mapque debe usarse.

ffmpeg -i video.mkv -i audio.mp3 -map 0:v -map 0:a:0 -map 1:a \
-metadata:s:a:0 language=eng -metadata:s:a:1 language=sme -codec copy \
-shortest output.mkv
0:v- El se 0refiere a la primera entrada que es video.mkv. El vmedio "selecciona el tipo de transmisión de video".
0:a:0- El se 0refiere a la primera entrada que es video.mkv. El amedio "selecciona el tipo de transmisión de audio". El último se 0refiere al primer flujo de audio de esta entrada. Si solo 0:ase usa, todas las transmisiones de video se asignarán.
1:a- El se 1refiere a la segunda entrada que es audio.mp3. El amedio "selecciona el tipo de transmisión de audio".
-codec copyse Stream Copy (re-MUX) en lugar de codificar. Si necesita un códec de audio específico, debe especificar -c:v copy(para mantener el video) y luego, por ejemplo, -c:a libmp3lamevolver a codificar la transmisión de audio a MP3.
-shortest finalizará la salida cuando finalice la entrada más corta.

ffmpeg -i vid.mkv -i aud.mp3 -filter_complex "[0:a][1:a]amerge=inputs=2[a]" \
-map 0:v -map "[a]" -c:v copy -c:a aac -strict experimental -b:a 192k -ac 2 \
-shortest out.mp4
amergefiltro se usa aquí, por lo que el audio no se puede copiar en este ejemplo.-codec copy, pero lo arreglé (versión diferente de ffmpeg), el otro problema que tuve fue con el -map, se quejó de la cantidad incorrecta de transmisiones.
-map 0:v -map 1:a. Supongo que esto significa tomar el video del primer archivo (video.mkv) y luego tomar el audio del segundo archivo (audio.mp4) para crear output.mkv ... No estoy seguro de para qué -map 0:a:0sirve. Lo excluí y obtengo los resultados que quería.