I will try. But my SDI cards, which I need this to work on, are in a
remote location.

I'll try, we'll see.

But in the meantime, I figured, I will use the loopback capabilities
of the decklink quad cards to get to the same result.

playout deckling:0 OUT -> IN decklink:1 -->> loopback OUT decklink:1
--> HD OBE on other machine
decklink:1 IN -> melt -> OUT decklink:2 (downconverted to SD by melt)
decklink:2 OUT -> IN decklink:3 where an SD OBE is taking in the signal

That way melt is doing the downconversion and the playout does only
output in atsc_1080i_50 directly to decklink, where the seeking did
work without any problems.

That hopefully is a good workaround until we find out, what is wrong
with multi consumer.

Thanks,
Markus

On Sat, Sep 29, 2012 at 11:45 PM, Dan Dennedy <[email protected]> wrote:
>
> On Sep 29, 2012 10:51 AM, "Markus Kienast" <[email protected]> wrote:
>>
>> Short, simple one:
>>
>> Why actually is it possible to have two consumers in "melt" without
>> the use of "multi"? Is it using "multi" internally, or is there
>> another way to hook up more than one consumer to the same producer?
>
> melt uses multi consumer, also so does shotcut for sdi/hdmi preview, without
> all the problems you mention - but perhaps improved? Can you test shotcut's
> usage of multi consumer to see how it compares? If ok then you can learn
> from it's source - I will show you where.
>
>> Markus
>>
>>
>> On Sat, Sep 29, 2012 at 6:55 PM, Dan Dennedy <[email protected]> wrote:
>> > On Sat, Sep 29, 2012 at 7:43 AM, Markus Kienast <[email protected]>
>> > wrote:
>> >> Hi Dan,
>> >>
>> >> we are having crazy problems with the Multi Consumer.
>> >>
>> >> We created a little playout system using the MLT Ruby bindings based
>> >> on the Playlist object and we are facing problems with seeking in the
>> >> playlist as soon as we switch to the Multi Consumer.
>> >
>> > Some defaults in the multi consumer are setup for the use case of
>> > rendering projects. There are properties like terminate_on_pause,
>> > buffer, prefill, real_time, and mlt_profile on both the multi consumer
>> > and its children that may need to be set for various use cases. And
>> > even then I am not sure how robust it is for many use cases as it
>> > generally is not used much by myself or the open source projects I
>> > support.
>> >
>> >> I have used your playlist.rb example code to reproduce the problem
>> >> with the least amount of code possible.
>> >>
>> >> Here is the link to the code we used for testing:
>> >> https://gist.github.com/3804203
>> >> I have also included the log of my interaction with MLT and the
>> >> multi.yaml we used.
>> >>
>> >> Seeking works nice and easy with no delay with the decklink consumer.
>> >>
>> >> As soon as we switch to Multi, seeking does freak out on us.
>> >>
>> >> In my example, when I seek the first time things freeze on decklink.
>> >> consumer.position stays close to where it was seeking from (can not
>> >> tell, if it stays exactly there or not).
>> >> pls.position seems to have jumped to the point I want to seek to plus
>> >> 28 frames and freezes there. Eventhough speed is 1 and is_stopped is
>> >> false.
>> >> Stuff stays there for a while.
>> >> Most of the time the beginning of the sequence I was seeking to can be
>> >> seen on the output already. Could be that this is not the actual frame
>> >> I jumped to, but one in the range of it plus 28 frames, I can not
>> >> tell.
>> >> After at least 90 seconds, everything seems to continue normally.
>> >> The positions reflect the change and video playback continues.
>> >>
>> >> On the second seek I was seeking backwards.
>> >> both, pls.position and consumer.position seem to be moving on as
>> >> nothing happened. But the picture freezes.
>> >> After a while things go back to normal again and pls.position and
>> >> consumer.position as well as the multi output have jumped to the
>> >> position I wanted to seek to.
>> >>
>> >> Very weird behavior.
>> >>
>> >> Can you tell me, where that is coming from or how to fix it?
>> >> Are forgetting any important config options on the two decklinks in
>> >> multi?
>> >> Do we need to set anything on the multi consumer itself, like the
>> >> ("rescale", "none") thing?
>> >>
>> >> Please advise,
>> >>
>> >> Markus
>> >>
>> >
>> > Sorry, but I am not available to help you with this now or in the near
>> > future. All I can suggest is the hints I have provided about those
>> > properties and to study them and the code some more.
>> > http://mltframework.org/doxygen/properties.html
>> >
>> > Something not listed there or on the multi consumer documentation (but
>> > is in the avformat consumer doc) is terminate_on_pause. This is set to
>> > 1 (true) by default. It means just like it sounds. As soon as you
>> > pause the producer, the consumer will automatically go into the
>> > stopped state. Avformat consumer uses this to know when to stop
>> > encoding for files. Decklink consumer ignores it. But you should
>> > definitely set that to zero on the mutli consumer in your case.
>> >
>> > Then, for seeking behavior and delay, take into consideration that
>> > each consumer has buffers including multi, but is it needed
>> > everywhere? Maybe you can set the decklink consumers to the least
>> > amount of buffering (0 or 1 or 2?) and leave the multi at its default
>> > of 25 frames.
>> >
>> > --
>> > +-DRD-+

------------------------------------------------------------------------------
How fast is your code?
3 out of 4 devs don\\\'t know how their code performs in production.
Find out how slow your code is with AppDynamics Lite.
http://ad.doubleclick.net/clk;262219672;13503038;z?
http://info.appdynamics.com/FreeJavaPerformanceDownload.html
_______________________________________________
Mlt-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mlt-devel

Reply via email to