I wasn't aware about Shotcut doing so. Good to know. My first attempt wasn't very successful. I did the following: # nim c --threads:on -r ex23_loader_video import mlt import os let f = initFactory("/usr/lib/mlt-7")
# Create the consumer let p = newProfile("hdv_720_50p") var sdl = newFactoryConsumer(p, "sdl2") sdl["terminate_on_pause"] = 1 # Stop the consumer when finished # Create via the default producer var clip1 = p.newMedia( "./resources/sygic.mp4") var filter = newFactoryFilter(p, "affine") filter["transition.fill"] = 1 filter["transition.distort"] = 0 filter["transition.rect"] = "339.703 126.468 1430.3 953.532 1" filter["transition.valign"] = "middle" filter["transition.halign"] = "center" filter["transition.threads"] = 0 filter["transition.fix_rotate_x"] = 340.0 #[ <property name="background">color:#00000000</property> <property name="mlt_service">affine</property> <property name="shotcut:filter">affineSizePosition</property> <property name="transition.fill">1</property> <property name="transition.distort">0</property> <property name="transition.rect">339.703 126.468 1430.3 953.532 1</property> <property name="transition.valign">middle</property> <property name="transition.halign">center</property> <property name="shotcut:animIn">00:00:00.000</property> <property name="shotcut:animOut">00:00:00.000</property> <property name="transition.threads">0</property> <property name="transition.fix_rotate_x">340.304</property> ]# clip1.attach(filter) clip1 > sdl sdl.start # Start the consumer while not sdl.stopped: sleep(1) Do you spot something obvious that might be wrong? El jue, 30 dic 2021 a las 18:52, Dan Dennedy (<d...@dennedy.org>) escribió: > You can use a tool like Shotcut and study it’s XML output to understand > the properties for a filter. The affine filter is called Size, Position & > Rotate. To get the XML use File > Save. > > On Thu, Dec 30, 2021 at 9:47 AM José María García Pérez < > josemaria.alk...@gmail.com> wrote: > >> I don't understand how to use the affine filter: >> https://www.mltframework.org/plugins/FilterAffine/#transition >> >> Could you post a basic C example using it? It would be nice to cover both >> the static and an animation case. >> >> I had the following example about using a filter using Nim: >> import mlt, os >> var f = initFactory() >> >> # Create the default consumer >> var p = newProfile() >> var sdl = newFactoryConsumer(p, "sdl2") >> >> # Create via the default producer >> var clip = newFactoryProducer(p, resource = >> "avformat:/home/jose/Descargas/sygic.mp4") >> >> var filter = newFactoryFilter(p, "frei0r.pixeliz0r") >> filter["BlockSizeX"] = 0.1 >> filter["BlockSizeY"] = 0.2 >> >> clip.attach( filter ) >> clip > sdl >> >> # Start the consumer >> sdl.start >> >> while not sdl.stopped: >> sleep(1) >> _______________________________________________ >> Mlt-devel mailing list >> Mlt-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/mlt-devel >> >
_______________________________________________ Mlt-devel mailing list Mlt-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mlt-devel