I have done same thing.
I have removed vp8 descriptor, vp8 header and writing to webm file.
I am doing something wrong in passing timestamp to AddFrame api.
I have taken timecodescale as 1000000 and setting it as below.
mkvmuxer::SegmentInfo *const info = segment->GetSegmentInfo();
info->set_timecode_scale(kTimecodeScale);
Next I take all the packets having same timestamp (in sequence) and remove descriptor and header, concatenate and pass resultant buffer to AddFrame. I am not sure, how do I calculate the timestamp, that I need to pass to AddFrame. I am using below logic to calculate timestamp.
VP8 sampling rate is 90kHz
1 unit in timestamp = 1/90,000 second = 1/90 millsec = (1/90) * 1000 * 1000 nano sec = (1/9) * 1000,00 ns
timens = (rtp packet timestamp / 9 ) * 1000,00
I pass this timens as timestamp to AddFrame api. The webm video file is written, but only for 4.29 seconds. Even I can see video file size is less. However if I pass smaller timens (say 1/10th ), it is writing complete video file, but when I play, it plays at fast forward rate.
How do I correct it, please help.
Thanks
Austin