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

Reply via email to