Overlaying on video

Ben Rubinstein benr_mc at cogapp.com
Mon Mar 27 08:51:40 EDT 2017


Aha! Thanks, Panos.

So probably what made the difference for me wasn't the re-encoded movie, it 
was all the messing about I did in the process that at some point had the 
right effect...

Ben

On 27/03/2017 13:47, panagiotis merakos via use-livecode wrote:
> 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




More information about the use-livecode mailing list