RainerMtb / cuvista

Accelerated Optical Video Stabilizer, Cuda, OpenCL, Avx512
https://rainermtb.github.io/cuvista/
GNU General Public License v3.0
6 stars 1 forks source link

Compiling on linux/ubuntu #2

Closed abaldanz closed 2 weeks ago

abaldanz commented 3 months ago

Hello,

Thanks for your work, it's really brilliant.

Would you have a linux-compatible version or the Makelists.txt that can be used to compile your code on a linux machine?

Regards,

Axel

RainerMtb commented 3 months ago

Linux compatibility is on my list, I looked into it once but put it aside for the time. Some changes to the code are necessary besides the compilation process itself, and well, I dont know much about Linux at all. I will look into it.

abaldanz commented 3 months ago

Thanks for the quick reply. Please let me know when you deploy an accessible version on linux.

RainerMtb commented 3 months ago

This is likely an issue with C++ versions. I generally used C++20. Try setting 20 for nvcc, even if the cuda code itself does not require such a high version. But you will very likely run into more issues as I believe there is more windows specific code even in the command line version.

I will certainly need more time to get this all running.

abaldanz commented 3 months ago

Indeed, I got stuck in a superposition of errors ahahah. It seems complicated to do this myself, the code is quite complex.

It's frustrating because your algorithm is really breathtaking and we really need a tool like this to make progress on our research topic.

Do you have any idea when you'll be able to work on it? And by the way, are you planning to develop a cropping/adjustment tool for the edges?

RainerMtb commented 3 months ago

I really do not know when I get it running on linux, I first have to get used to linux.

RainerMtb commented 2 months ago

It now compiles and runs on Ubuntu 24.04 for me You will need to apt-install the following libraries: libavcodec-dev libavdevice-dev libavfilter-dev libavformat-dev libavutil-dev libswresample-dev libswscale-dev libcpu-features-dev You should then get an executable cuvista in a subfolder ./cuvistaCli

RainerMtb commented 2 months ago

For cropping/adjusting edges: Do you mean when an edge of the video becomes visible due to large movement of frames? You can set a higher -zoom parameter for avoiding that, default is 1.05

abaldanz commented 2 months ago

Thank you so much, I didn't expect you to go so fast! I'll test it today.

For the edge cropping I was actually talking about something adaptive. A way of adjusting this zoom factor according to the movement in the frames so as to minimize the loss of information. Or in the worst case, a way of thresholding the stabilization so that, if I set the zoom threshold to a value of z, no edge can be seen under any circumstances. But now that the code is compilable on linux I'll be able to take a look at it.

Thank you again for this great work.

RainerMtb commented 2 months ago

Ok some dynamic zoom, I will have a look, but I really want to do some other things first

abaldanz commented 2 months ago

Thank you very much. Can't wait to see it.

RainerMtb commented 1 month ago

There now is a dynamic zoom feature in the repo, did not update the release for now.

There still are hard limits to the zoom, which are set by default to 5% and 25%, you set those via the option -zoom min:max where you now specify numbers in percent. So the default would be equal to -zoom 5:25. You can still specify just one zoom value, which will be the old behaviour.

abaldanz commented 1 month ago

Thank you so much, it's amazing. I can't wait to try it. Congratulations for your work.