Integrate tmix (ffmpeg) to Voukoder for Premiere

  • Hey guys,

    In the Minecraft PvP community, we use smart resample(vegas)/frame blending(premiere) on our videos to give it a smoother look. A friend of mine suggested that you guys could add this into Voukoder, we'd greatly appreciate it. We usually record in hundreds of frames per second using nvenc.

    Vegas Pro is clunky and awful to use but has good resample.

    Premiere Pro has shiny features and is way more pleasant to work with but has bad frame blending.

    Is it possible for you to add t-mixing into Premiere Pro?

    You can see what tmixing does here

    You can try it out with this command (nvenc):

    ffmpeg -i input.mp4 -preset fast -c:v h264_nvenc -profile:v high -rc constqp -qp 15 -vf tmix=frames=4:weights="1" -c:a copy -r 60 output.mp4

    the value after frames= is what you get when you divide what you recorded in by what you're rendering it (in this case here, 60)

    Example of a 4800FPS clip resampled down to 48FPS here, it gives the feeling like real world motion blur and high hz monitors.

    I understand this may sound stupid to you but a lot of people would be very grateful if you could add this setting.

  • Vouk

    Approved the thread.
  • Vouk

    Removed the Label Adobe Premiere / MediaEncoder
  • Vouk

    Set the Label from Feature Request to Done
  • I see you removed the fps filter but doesn't that then make this tmix procedure impossible?

    I had the idea to do something similar in a future project, although generating the additional frames with optical flow rather than capturing them natively. However, as it currently is, tmix will mix the frames based on the frame rate selected in the connector. So I'd have to output at the high frame rate and then drop the extra frames later myself. Obviously, this is not the greatest way to do it as it results in encoding way more frames than necessary for the end product.

  • Yes, unfortunately it was not fully compatible with other parts of Voukoder and it would require major parts of it to be rewritten. Even the connectors and their ABI would require changes.

    My plan is to add it back in that voukoder successor where i address all these limitations and issues.

    Help to improve this plugin and support me on patreon or paypal. Thank you.

  • Okay, it turns out I found a workaround for now, using premiere's optical flow and frame blending, but it was kind of complicated. However, it performs very well.

    I'm converting 60fps gameplay to 24fps with motion blur. For those who might be interested, this is what I did:

    1. Have 60fps gameplay
    2. Have 240fps sample file with same resolution
    3. Have 48fps sample file with same resolution
    4. Drag 240fps sample to create a new 240fps sequence.
    5. Delete the sample and drag the gameplay footage to the 240fps sequence.
    6. Right click the footage and time interpolation / optical flow. This will give you a smooth 240fps version of the source gameplay
    7. Next, drag the 48fps sample to create a new 48fps sequence
    8. Delete the sample and now drag the 240fps sequence onto the 48fps sequence.
    9. Right click this and select frame blending for time interpolation. This will blend 5 frames together for each 240fps frame.
    10. Export as 24fps.

    The reason I used 48fps instead of 24fps (getting 10 blended frames) is because typically for motion blur, you want it to be a "180 degree shutter" which is 1/2 of the time. Having a 48fps sequence simulates a full 360 degree shutter, so exporting that to 24fps cuts out half of the frames, simulating the more typical 180 degree shutter. However, if you want the full 360 degree shutter, as it is smoother, you can simply make the second sequence 24fps.

    The reason for the sample files is unfortunately it's not possible to set sequences to weird frame rates like 240/48 manually. You can also achieve this by re-interpreting the source footage as 240/48 before creating those sequences and then setting it back to its original frame rate afterwards, but of course that's an annoying way to do that.

    I don't know for sure how useful this would be for OP's situation, but it may help some people.