Selur's Little Message Board
VidStab support - Printable Version

+- Selur's Little Message Board (https://forum.selur.net)
+-- Forum: Hybrid - Support (https://forum.selur.net/forum-1.html)
+--- Forum: Problems & Questions (https://forum.selur.net/forum-3.html)
+--- Thread: VidStab support (/thread-616.html)

Pages: 1 2


VidStab support - remus - 15.09.2018

"Vidstab is a video stabilization library which can be plugged-in with Ffmpeg and Transcode.
Why is it needed
A video acquired using a hand-held camera or a camera mounted on a vehicle, typically suffers from undesirable shakes and jitters. Activities such as surfing, skiing, riding and walking while shooting videos are especially prone to erratic camera shakes. Vidstab targets these video contents to help create smoother and stable videos.
Some of the features include:
  • Fast detection of subsequent transformations e.g. translation and rotations up to a given extent.
  • Low pass filtered smoothing with adjustable horizon.
  • Detection algorithms:
  • Smart and fast multi measurement fields algorithm with contrast selection.
  • Brute force algorithm only for translations.
  • Clipping options: keep blank (black) or keep from previous frames.
  • Optional drawing of measurement fields and detected transformations for visual analysis.
  • Zooming possible to get rid of jiggling borders (automatic mode).
  • Resulting images are interpolated (different algorithms).
  • Sharpening of the stabilized movie to compensate for interpolation effects due to rotation/zooming (only with Transcode).
  • Single pass filter for streaming applications(only with Transcode).
  • Virtual-tripod-mode to get a tripod experience."
https://github.com/georgmartius/vid.stab


RE: VidStab support - Selur - 15.09.2018

Hmmm,...
To be frank I'm not sure I want to add support for this due to the annoyance of having to do an additional pass. (Single pass is only supported with transcode and I since Hybrid already uses ffmpeg I'm not planing on adding an additional 50+MB to Hybrid.)
That said, here are a few questions:
  • What OS are you on? Since when I would implement this I would require you to do lots of testing to know this works properly before officially adding this.
  • Have you compared this to the 'Stab' Stabilizing filter Hybrid supports through Avisynth and Vapoursynth ? (To know whether it's worth the effort)
  • Assuming you have used the filter, does it support absolute paths with UFT-8 characters like:
    d:\ဒီအ\nëse\Удивление\Tự\否有效
    or at least absolute paths with ascii characters?

Cu Selur


RE: VidStab support - remus - 16.09.2018

I use Arch Linux and for Windows I use Wine.
As for the tests, I did some tests and I can say I was very pleased.

I used the following commands:

ffmpeg -i shaky-input.mp4 -vf vidstabdetect=shakiness=5:result="transforms.trf" -f null -
ffmpeg -i shaky-input.mp4 -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 stabilized-output.mp4

Okay, I see there is such support in Avisynth and Vapoursynth but it is for Windows users. I did not know that. I do not have Avisynth and Vapoursynth in Arch Linux  for this Hybrid-encoder. I do not know how I could add this though I installed Vapoursynth in the system.


RE: VidStab support - Selur - 16.09.2018

Okay, so I would have to do all testing etc. myself, I'll look into it, but this will take some time.

Cu Selur


RE: VidStab support - Selur - 16.09.2018

When calling:
"I:\Hybrid\64bit\ffmpeg.exe" -y -threads 8 -i "F:\TestClips&Co\files\test.avi" -map 0:0 -c:v rawvideo -vf vidstabdetect=result="E:/Temp/18_11_50_9710_01.trf":shakiness=5:accuracy=15:stepsize=6:mincontrast=0.3 -f null NUL
on Windows I get:
[vidstabdetect @ 00000191f87c67c0] [Eval @ 00000075b21fde20] Undefined constant or missing '(' in '/Temp/18_11_50_9710_01.trf'
[vidstabdetect @ 00000191f87c67c0] Unable to parse option value "/Temp/18_11_50_9710_01.trf"
[vidstabdetect @ 00000075b21fe5b8] Multithreading: use 12 threads
[vidstabdetect @ 00000075b21fe528] Fieldsize: 48, Maximal translation: 50 pixel
[vidstabdetect @ 00000075b21fe528] Number of used measurement fields: 40 out of 40
[vidstabdetect @ 00000075b21fe528] Fieldsize: 16, Maximal translation: 16 pixel
[vidstabdetect @ 00000075b21fe528] Number of used measurement fields: 162 out of 162
[Parsed_vidstabdetect_0 @ 00000191f87cb680] Video stabilization settings (pass 1/2):
[Parsed_vidstabdetect_0 @ 00000191f87cb680]      shakiness = 5
[Parsed_vidstabdetect_0 @ 00000191f87cb680]       accuracy = 15
[Parsed_vidstabdetect_0 @ 00000191f87cb680]       stepsize = 6
[Parsed_vidstabdetect_0 @ 00000191f87cb680]    mincontrast = 0.300000
[Parsed_vidstabdetect_0 @ 00000191f87cb680]         tripod = 0
[Parsed_vidstabdetect_0 @ 00000191f87cb680]           show = 0
[Parsed_vidstabdetect_0 @ 00000191f87cb680]         result = E
sadly it seems like vidstab can only create files in the working directory and not in a given folder.
Won't add support to Hybrid unless that changes.
-> So unless either the authors of the filter change this behavior change this or it is possible and I don't simply know how to do it and someone tells me how this filter will not be supported in Hybrid

Cu Selur

Ps: in case this is my mistake, I created an issue entry in the vid.stab bug tracker, see: https://github.com/georgmartius/vid.stab/issues/66


RE: VidStab support - remus - 16.09.2018

In the end it will be solved.
There are a lot of people who have forgotten about Windows I see.


RE: VidStab support - Selur - 17.09.2018

Send you a link to a dev version for testing via PM.

Cu Selur


RE: VidStab support - remus - 18.09.2018

I see this but the option is disabled.
https://drive.google.com/file/d/1qc-O_RlDfluTbaaWAA3ihDxieihV2kXC/view?usp=sharing


RE: VidStab support - Selur - 18.09.2018

Ah damn, forgot that 'no Xsynth' is the default 'Support' option for you.
-> will fix.


RE: VidStab support - remus - 18.09.2018

The options are visible but seems to have no effect.
Could you recommend some values?
And the *.trf file should be deleted at the end. It should also be seen in the "Job-Queue" section.