This guide assumes you are proficient in:
Files you may need:
- GraphEdit
- Wave destination filter
(wavdest.ax)
- Matroska
Muxer
- MKV2VFR.exe Local mirror
Get GraphEdit looking like this:

Make the following changes:

Hit the play button.
When that's done, encode audio.wav
with lame, or your
favourite audio codec. Open a prompt window, go to the folder your
mkv was created in and type this:
mkv2vfr temp.mkv temp.avi timecodes.txt
The following should appear:

The created timecodes.txt
file will look something
like this:

Enter your timecodes file in to my other script here to make it look something like this:

Note! In the 2nd line of timecodes.txt
it
says 0,0,0.5102
AviSynth treats numbers 0,0 as special, so to compensate, I put in 0 to
1 in the avs script, and doubled the rate.
Probably not the best way to handle it, but it's just 1 frame, do
what you think is best.
Open the avisynth script in vdub and load the audio in.
Encode to the codec of your choice and that should be it.