You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
i am getting weird flickering when trying to apply engrave to a video gmic.run('input /content/input.mp4 fx_engrave 0.5,50,0.8,40,0,0,0,10,1,0,0,0,1,0,50,50 output /content/gmic.mp4,24.800000')
what i tried:
made sure my code works ok when using other filters
made sure this issue happens also for other videos
tried both b/w engrave as above as well as the color option
made sure the issue happens also with the default fps, different fps, different codec (btw seems that gmic is not able to output with codec AVC1)
gmic-py 2.9.2 and 2.9.4a1
I ran engrave filter on video in ZART and did not see a similar issue
possible solutions:
perhaps engrave outputs more than one layer and they get interleaved with the frames and i should be doing some merging?
i know i can break the video to frames and apply it on the images however i timed it and running on video was ~25% faster.
i accidentally had 0.8 in my argument list where i wanted 0,8... this meant that the remainder of the arguments where off by one and i was actually always running the engrave with the color option. if you run it with out the color option it works out of the box for videos
indeed for the color option you get two outputs for each frame. if you are working with images you can use the gui_merge_layers command to blend them. however for video this does not work as it would merge all video frames to just one. you need to iterate over pairs... but i did not find an easy way to do that.
i ended up substituting the fx_engrave with fx_engrave_preview which takes care of dealing with multiple images.
i have few questions remaining open so i will leave the issue open for now:
for a given filter how can one now how many output layers to expect?
when running on videos what would be the canonical way to merge all per-frame outputs to single frames (without knowing the number of outputs per frame)
seems that some filters can also change the number of output channels. how can i know what to expect?
i am getting weird flickering when trying to apply engrave to a video
gmic.run('input /content/input.mp4 fx_engrave 0.5,50,0.8,40,0,0,0,10,1,0,0,0,1,0,50,50 output /content/gmic.mp4,24.800000')
what i tried:
possible solutions:
colab to reproduce (just run it): https://colab.research.google.com/drive/1cUDQhdlMJZee8qYa9BZkWK4cxYfDSjqF?usp=sharing
video showing issue is attached (warning - heavy flickering!):
output.21.mp4
The text was updated successfully, but these errors were encountered: