Overlaying on video

Rick Harrison harrison at all-auctions.com
Mon Mar 27 20:27:27 CEST 2017


Hi Ben,

The movie that didn’t work for me was:

640 × 360, AAC, H.264   as a .mov  quicktime movie.

Let me know what you learn and discover!

Thanks,

Rick

> On Mar 27, 2017, at 8:35 AM, 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