Overlaying on video

panagiotis merakos merakosp at gmail.com
Mon Mar 27 08:47:36 EDT 2017


Hi all,

Before LC 8.1.0, one could put other objects on top of the player object,
if alwaysBuffer==true. This has broken in LC 8.1.0+.

A workaround is described in this bug report:

http://quality.livecode.com/show_bug.cgi?id=19444

Best,
Panos
--

On Mon, Mar 27, 2017 at 1:35 PM, Ben Rubinstein via use-livecode <
use-livecode at lists.runrev.com> wrote:

> Hi Rick
>
> Thanks for your reply.
>
> > I think once a movie starts playing other LC messages don’t
> > have time to be sent. The video just takes over because
> > it’s showing each frame quickly so your eye tells you
> > it’s a movie.
>
> I don't think that's it. I've had time codes displays running before,
> achieved in this way, so something that normally works, doesn't. I haven't
> worked out if this is an issue with 8.1.3 or another side effect of the
> particular movie. Or just that working late on a small screen, I made some
> other stupid mistake.
>
> > One solution I had to use in the past to make a decent
> > animation was to break the movie into each frame and
> > then put each frame onto each card.
>
> I took a similar approach for now - rather than playing the movie and then
> catching the currenttime, I used my timer to keep setting the current time,
> moving it on a frame at a time (in fact for now I wanted to export a
> timelapse of the movie anyway, so was happy to jump it along half-a-second
> at a time). But in my ideal world I'd have this working interactively,
> including allowing the user to scrub the movie to a different time and have
> the data graphics update as they did.
>
> > I tried importing a Quicktime movie which had the .mov suffix into LC.
> > I put a graphic on top of the movie and when I went to play the movie
> > the movie put itself on top of the graphic.  So what to I need to do to
> > recreate your solution?
>
> That's what I don't know yet! Obviously it's not enough that it's a .mov
> instead of a .mp4; when I exported it, the movie also changed codec,
> resolution, framerate... (partly because I was in a hurry so I decided to
> work with a smaller lighter version to make progress). I'll need to try
> some experiments with changing fewer attributes to find out which is the
> crucial one.
>
> What are the characteristics of the movie you tried it with, that didn't
> work?
>
> Ben
>
>
>
> On 27/03/2017 01:30, Rick Harrison via use-livecode wrote:
>
>>
>> Hi Ben,
>>
>> To try to answer the second part of your question first.
>> I think once a movie starts playing other LC messages don’t
>> have time to be sent. The video just takes over because
>> it’s showing each frame quickly so your eye tells you
>> it’s a movie.
>>
>> One solution I had to use in the past to make a decent
>> animation was to break the movie into each frame and
>> then put each frame onto each card.  I had a short
>> movie so it ended up being 254 cards.  It was for iOS
>> so I needed to optimize for a cell phone processor.
>> Then I was able to have a graphic which appeared
>> on every card move on top of the changing cards.
>> So my animated character was able to move around
>> freely on top of a video background.  I was able to
>> adjust the timing of the loops so it looked pretty good.
>>
>> Regarding the first part of your message:
>> I’m trying to duplicate some of your experience here.
>>
>> Eventually I discovered by accident that this only applies to some
>>> videos. For now, I got the job I needed to do done by rendering the
>>> original .mp4 into a .mov with QuicktimePlayer's default settings; I
>>> haven't had time to establish what the crucial factors are. Is this
>>> known/documented anywhere?
>>>
>>
>> I tried importing a Quicktime movie which had the .mov suffix into LC.
>> I put a graphic on top of the movie and when I went to play the movie
>> the movie put itself on top of the graphic.  So what to I need to do to
>> recreate your solution?
>>
>> Thanks,
>>
>> Rick
>>
>>
>>
>>
>> On Mar 26, 2017, at 6:54 PM, Ben Rubinstein via use-livecode <
>>> use-livecode at lists.runrev.com> wrote:
>>>
>>> I'm trying to overlay some graphics on a video, and hit a couple of
>>> problems.
>>>
>>> The first, which drove me somewhat mad until I found an out, was that
>>> the video was always displayed on top of other LC elements - graphics,
>>> fields. This is using a player object; I found that the controller would be
>>> rendered correctly layered among other objects, and indeed would obey
>>> blending levels; and occasionally in tool mode the video frame would also;
>>> but once I switched back to browse mode and played the video, it invariably
>>> displayed on top of everything else, at 100% opacity. Toggling the "buffer"
>>> property did not appear to make a difference.
>>>
>>> Eventually I discovered by accident that this only applies to some
>>> videos. For now, I got the job I needed to do done by rendering the
>>> original .mp4 into a .mov with QuicktimePlayer's default settings; I
>>> haven't had time to establish what the crucial factors are. Is this
>>> known/documented anywhere?
>>>
>>> The second problem - which I also found frustrating because I'm sure
>>> I've done something similar before without this arising - was in triggering
>>> the updates to my overlay graphics. I thought that I could have a timer
>>> sending a regular message to my code which would check the time of the
>>> movie, and adjust graphics appropriately. The code worked but I only saw an
>>> update twice; when the movie started, and when it stopped. As far as I
>>> could tell this wasn't an issue about the screen not updating; but that the
>>> message genuinely wasn't sent while the movie was playing. Again, is this a
>>> known issue? Or do others think this should work, and I was just doing
>>> something wrong?
>>>
>>> TIA,
>>>
>>> Ben
>>>
>>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
>



More information about the use-livecode mailing list