Also, du kannst einfach den Container mit VirtualDudMod wechseln.
mkv dort öffnen.
Video -> Direct Stream Copy aktivieren
File -> Save As
und als AVI Speichern.

Allerdings sind dann die Tonspuren und die Untertitel weg, falls die mkv sowas besitzt.
Wenn VirtualDubMod dort einen Fehler meldet oder später das Video asynchron zur Tonspur ist, muss man mit anderen Mitteln ran.

Wenn VirtualDubMod einen Fehler meldet, muss du die MKV erst mit MKVToolnix die MKV Datei demuxen.
Im Installationspfad von MKVToolnix befindet sich eine mkvextract.exe. Falls du Probleme mit Commandozeilen hast, dann such unter google nach MKVExtractGUI.
Dann hast du alle Dateien einzeln. Dann kannst du ja mit VirtualDubMod das Video und die Tonspur wieder zusammenfügen.

Wenn das Video später asychron ist, muss am Besten AVISynth ran.
AVISynth installieren und dann folgendes Script mit einem Texteditor schreiben:
DirectShowSource(clip, FPS, ConvertFPS=true)

also ein kleines Beispiel:
Das Video liegt auf DMein Video\video.mkv und hat 23.97 FPS.
Dann lautet das Script, wie folgt:
DirectShowSource("DMein Video\video.mkv", FPS=23.97, ConvertFPS=true)

Der Grund für die Asychronität liegt darin, dass der mkv Container VFR (Variable Framerate) unterstützt. Variable Framerate wird verwendet, wenn man eine bessere Kompression bekommen will. Wenn dann z.B. eine Szene mit Standbildern zusehen ist, dann werden Frames einfach gelöscht. Später beim Abspielen werden sie dann virtuell wieder hinzugefügt.