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

Reply via email to