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@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