animafps / teres

🎞️ Utility for realistic motion blur through frame intepolation and blending
https://animafps.github.io/teres
GNU General Public License v3.0
55 stars 1 forks source link

use vapoursynth api directly in rust to execute plugin calls #37

Open animafps opened 1 year ago

animafps commented 1 year ago

There exists a vapoursynth api wrapper for rust: https://github.com/YaLTeR/vapoursynth-rs so to optimize and create total memory safety we can call all the plugin calls within rust then push the resulting buffer to ffmpeg.

This will allow for easier config management and code base because we wouldnt need to create a temp script and can allow for our own plugin integration within the codebase

This is very long term improvement and currently better to implement a vspipe replacement in rust and call it

Aetopia commented 1 year ago

You can just pass arguments to the script itself though. (That is what Smoothie does.)

animafps commented 1 year ago

You can just pass arguments to the script itself though. (That is what Smoothie does.)

Huh? What arguments, its about removing the entire need for scripting

animafps commented 1 year ago

You can just pass arguments to the script itself though. (That is what Smoothie does.)

I see what you are meaning tho, to turn it into a static vpy script and pass args which i will do in the meantime before thinking about wrapping vapoursynth

animafps commented 1 year ago

https://github.com/animafps/rustsynth - new wrapper

GitHub
GitHub - animafps/rustsynth: a safe vapoursynth wrapper to rust
a safe vapoursynth wrapper to rust. Contribute to animafps/rustsynth development by creating an account on GitHub.
animafps commented 1 year ago

Leiko in CTT made a good point that its prob easier to run without trying to abstract vapoursynth and run everything in house

like libav the input then manipulate the video with libtorch or ncnn and then better handle everything on the gpu with kernels/opengl then output again through libav

so dont need to make stupid plugins that are hard to control but would def require a lot of work

would require less opinionated coding especially around the wrapper

OR an idea focus teres on just blending not interpolation which could be way more optimized for a workflow and stop teres from being a jack of all trades, master of none

couleurm commented 1 year ago

https://github.com/atzuur/pixie still wip

https://github.com/unknownopponent/video-blender closest to what you described, though it's all CPU (atzur claimed it still goes zoom zoom 🏎)

didn't manage to compile it with Visual Studio, a GCC compliant version would be cool 🌝

GitHub
GitHub - atzuur/pixie: Simple and fast video filtering
Simple and fast video filtering. Contribute to atzuur/pixie development by creating an account on GitHub.
GitHub
GitHub - unknownopponent/Video-Blender
Contribute to unknownopponent/Video-Blender development by creating an account on GitHub.