Possible to output .mp4 (with audio) at a constant frame rate?
After 20+ years away, I've come back to Max (version 8! Wow!).
I thought my project would be trivial thanks to years of progress incorporating Jitter, ffmpeg and viddll! The patch was easy at first: It does live processing of several audio inputs and one video input, saving the result to a video file as it goes...
TWO PROBLEMS:
1) .mp4: I need the live output to be an mp4 file, and it seems that Jitter only allows recording to .mov? I'm using jit.vcr to record the audio and video, but maybe there's another way to do it that would let me save an .mp4?
2)30FPS: I need the live output to be encoded with a CONSTANT frame rate of 29.97 FPS (basically 30). I'm getting slightly varying FPS even when I specifically specify 30 ("write myfile 30. h264")
I'm doing this on a Windows 10 PC and the result must work on a Windows 10 PC. Is Max not up to the task or am I overlooking something simple? I hope it's the latter!
i believe you can record mp4 container files as long as you are using viddll engine: [ jit.vcr @engine viddll ]
jit.vcr only records in realtime mode, so the fps you get out will be the fps you input frames, regardless of the fps setting
Strange--viddl is the default, but it only let me record an mp4 when I specified the engine? Thank you for that! Unfortunately, I'm still stuck on the FPS issue:
What's the purpose of the FPS property if it doesn't set the FPS? It seems like the obvious feature to solve my problem, but what is it for if that's not what it does?
I'm using jit.grab to get the frames, triggered by a metro, and that feeds into the jit.vcr
So, it seems I need to get jit.grab triggering at exactly 30 (or 29.97) FPS to solve the problem?
Using metro, even with a value to several decimal places (33.333333), the frame rate seems to vary by as much as .2 FPS. I must be overlooking something simple because obviously a system that can give frame rates in the 50's or 60's should easily be able to rate-limit the FPS to a steady 29.97 (or 30)?
If jit.vcr can't take a FPS setting, is there a way to make sure that jit.grab triggers at exactly 30 or 29.97? Is there a way to do that, and would that solve the jit.vcr issue?
fps has an effect for non-realtime recordings.
if +- 0.2 FPS is a concern Jitter is not the software to use for recording. you may have more luck using the syphon package and the Syphon recorder app, a screen recording software, or a hardware recorder.