Thanks Péter. I think my issue is more related with the "aspect ratio" and/or "display ratio" of the profile, producer (the video itself) and the consumer.
With this: profile.setWidth(width1) profile.setHeight(height1 + height2) profile.setWidth(profile.width) profile.setHeight(profile.height) profile.setSampleAspect(1,1) profile.setDisplayAspect(16,18) I am getting: https://i.imgur.com/UidhlNX.png I am using now a smaller video (720x360) with display aspect ratio 16:9 and 25fps. El mié, 5 ene 2022 a las 21:02, Péter Hudoba (<hudi1...@gmail.com>) escribió: > Hi! > > I am a noob, but I think the problem: if you use "hdv_720_50p" profile in > your main function and create a consumer with that profile, you won't have > a big enough consumer. > https://www.mltframework.org/docs/profiles/ > > Best regards, > Hudi > > José María García Pérez <josemaria.alk...@gmail.com> ezt írta (időpont: > 2022. jan. 5., Sze, 20:54): > >> Honestly I don't understand that comment. >> >> The documentation is clearly insufficient. The framework design just >> gives you a glimpse of the ideas; it doesn't even mention the word profile >> https://mltframework.org/docs/framework/. The demos are more oriented to >> the usage of melt. melt.c is not the best learning source either. >> >> So honestly I am bit confused, and this is the reason why I am asking for >> help. I am not asking for the code solution, but for some direction about >> the approach to follow. >> >> >> El mié, 5 ene 2022 a las 20:43, Dan Dennedy (<d...@dennedy.org>) escribió: >> >>> I am not going to help further. You need to learn more outside of the >>> code. >>> >>> On Wed, Jan 5, 2022 at 11:06 AM José María García Pérez < >>> josemaria.alk...@gmail.com> wrote: >>> >>>> Could you explain a bit further? >>>> >>>> I mean: >>>> 1. Create profile: p >>>> 2. Create producer: video1 (with profile p) >>>> 3. Create producer: video2 (with profile p) >>>> 4. Read the frame sizes >>>> 5. Create a new profile with the size of both videos stacked vertically >>>> 6. Create the consumer with that new profile >>>> >>>> So far I am getting funny sizes. >>>> >>>> I declared the following function: >>>> 1. Creates a new profile >>>> 2. Resize the profile with the size of both videos >>>> 3. Creates a new tractor and adds the videos as two separated tracks. >>>> 4. I use an affine filter and applies "oy=height1" to the second track. >>>> 5. I apply the transition "addition" in order to make both videos >>>> visible. >>>> proc stackVertically( v1,v2:Producer ):tuple[tr:Tractor; p:Profile] = >>>> # Get an appropriate profile >>>> var profile = newProfile() >>>> >>>> var frame1 = v1.getFrame(0) >>>> var (width1,height1) = frame1.getImage() >>>> var frame2 = v2.getFrame(0) >>>> var (width2,height2) = frame2.getImage() >>>> profile.setWidth(width1 + width2) >>>> profile.setHeight(height1 + height2) >>>> >>>> # Create the tractor >>>> var tr = newTractor() >>>> >>>> tr.connect( v1, 0 ) # We use the playlist as track0 >>>> tr.connect( v2, 1 ) >>>> var aff = newFactoryFilter(profile, "affine") >>>> aff["transition.oy"] = height1 >>>> tr.plant(aff, 1) >>>> >>>> var compose = profile.newFactoryTransition("frei0r.addition") >>>> tr.plant(compose, 0, 1) >>>> return (tr, profile) >>>> >>>> >>>> In order to use this function I do the following: >>>> 1. Read two videos (in this case I use the same video) >>>> 2. stack them vertically: the result is the tractor as a producer and >>>> the new profile >>>> 3. I create an SDL2 base on the new profile >>>> 4. Connect the tractor to SDL >>>> proc main = >>>> var f = initFactory() >>>> var p = newProfile("hdv_720_50p") >>>> var v1 = p.newMedia("./resources/big_buck_bunny_720p_2mb.mp4") >>>> var v2 = p.newMedia("./resources/big_buck_bunny_720p_2mb.mp4") >>>> >>>> var (newProducer, profile) = stackVertically( v1,v2 ) >>>> >>>> # Consumer >>>> var sdl = profile.newFactoryConsumer( "sdl2" ) >>>> sdl["terminate_on_pause"] = 1 >>>> >>>> # From tractor to SDL2 >>>> #v1.attach(aff1) >>>> newProducer > sdl >>>> >>>> # Start the consumer >>>> sdl.run >>>> >>>> >>>> The result is: https://i.imgur.com/eESDdJg.jpg >>>> >>>> >>>> El mié, 5 ene 2022 a las 18:28, Dan Dennedy (<d...@dennedy.org>) >>>> escribió: >>>> >>>>> >>>>> On Wed, Jan 5, 2022 at 9:22 AM José María García Pérez < >>>>> josemaria.alk...@gmail.com> wrote: >>>>> >>>>>> What is the proper way of stacking videos vertically? >>>>>> >>>>>> For example: >>>>>> video1 >>>>>> --------- >>>>>> video2 >>>>>> >>>>>> so that I can later scale it and move it around in the profile. >>>>>> >>>>>> Right now I am using affine (scaling down and then positioning it >>>>>> vertically). But the result is something like: >>>>>> video1 | black >>>>>> ------------------ >>>>>> video2 | black >>>>>> >>>>>> Basically I am looking how to get a new video which is: (width) x >>>>>> (2*height) >>>>>> >>>>>> You need to make a custom profile. >>>>> >>>> _______________________________________________ >> 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