Вытащить видеопоток из *.mkv формата в обычный *.avi можно так:
$ mencoder video.mkv -nosound -ovc copy -of avi -o video.avi
Однако, бывают такие *.mkv-файлы, в которые добавлен сырой VC1 видеопоток. И если попадётся такой файл, то либо mencoder откажется вытаскивать видеопоток, либо создаст *.avi-файл, который невозможно воспроизвести.
В этом случае, видеопоток можно вытащить с помощью программы mkvextract с параметром --raw (если не указать эту опцию, вытащенный видеопоток получится не в формате элементарного VC1-видеопотока, а в виде криво упакованного контейнера AVI, который не будет воспроизводиться).
Вот пример команд, которые нужно использовать в данном случае. Сначала из *.mkv вытягивается сырой VC1, затем он корректно упаковывается в AVI-контейнер, и получается правильный *.avi-файл:
$ mkvextract tracks video.mkv --raw 1:video.vc1
$ mencoder video.vc1 -nosound -ovc copy -of avi -o video.avi
Примечание. Программа mkvextract (и обратная ей команда mkvmerge) обычно располагаются в пакете mkvtoolnix.
Еще один совет. Если у вас не воспроизводится *.mkv-файл, то скорее всего причина в том, что внутри находится сырой VC1 поток. Такие файлы не хотят играться из-за стандартного mkv-демультиплексера. Для того, чтобы просто посмотреть фильм, без перекодирования и прочих нетривиальных действий, можно воспользоваться lavf демультиплексером:
$ mplayer -demuxer lavf video.mkv
Эта команда работает 100%. В KMPlayer и SMPlayer опцию -demuxer lavf можно прописать в настройках.