If the video stream is MPEG-4 Advanced Simple Profile or Simple Profile, then you should be able to simply transmux it to AVI using MP4Box (or YAMB); a more drawn out but arguably more effective way is to take the MP4, throw it through MKVToolNix, and then use MKVExtract to extract the video to AVI; the reason for this is that for MPEG-4 Part 2, MKVToolNix automatically arranges the video frames for VFW compatibility. However, if the video in question has a variable frame rate, then this is a bad suggestion, and the best way to ensure everything stays synced is to use DirectShowSource with the 'convertfps' parameter enabled (as detailed below).
If it's H.264 (or anything other than MPEG-4 Part 2, really) then you could load it through Graphedit, leaving the video decoder pins open, and then pipe the .grf file through DirectShowSource (this is mainly to see if it won't get wonky with the framerate, but that's not necessarily guaranteed).
Generally, though, if you can play it in Windows Media Player, then
- Code: Select all
DirectShowSource("video.mp4", fps=xx, convertfps=true)
should take care of everything, if the fps and convertfps arguments are even needed at all.