Realmente sobre esto ya había escrito pero se perdió en alguna migración... así que aquí está de nuevo

Todo el parseado y la extracción la implementa mkvtoolnix, así que habiéndolo instalado...

1
sudo apt-get install mkvtoolnix

A partir de ahí podemos ver las pistas que tiene un archivo

1
mkvinfo video.mkv

Si hacemos |grep track se ve mejor, por ejemplo

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
$ mkvinfo video.mkv |grep Track
|  + Track number: 1 (track ID for mkvmerge & mkvextract: 0)
|  + Track UID: 1
|  + Track type: video
|  + Track number: 2 (track ID for mkvmerge & mkvextract: 1)
|  + Track UID: 6584684576
|  + Track type: audio
|  + Track number: 3 (track ID for mkvmerge & mkvextract: 2)
|  + Track UID: 685789658
|  + Track type: subtitles

En este caso nos interesa la pista número 3 (que será la 2 para mkvmerge y mkvextract como indica), así que la extraemos con

1
mkvextract tracks video.mkv 2:subtitulos

Durante el proceso la interfaz indica el tipo de subtítulos, por si queremos ponerle la extensión adecuada al archivo resultante

1
2
3
4
$ mkvextract tracks video.mkv 2:subtitulos
Extracting track 2 with the CodecID 'S_TEXT/ASS' to the file 'subtitulos. Container format: SSA/ASS text subtitles
Progress: 100%
$ mv subtitulos subtitulos.ssa

Y eso es todo, por supuestos se podría extraer cualquier pista, si cambiamos el 2: por 1: extraeríamos (en este caso) el audio.