Ken Burns effect

177 views
Skip to first unread message

Stephen Harrison

unread,
Dec 13, 2024, 1:26:55 PM12/13/24
to QLab
I'm building a slideshow of images (playlist, duration, crossfade) but I'm wondering if there is anyway to apply a subtle Ken Burns zoom effect to the images, that doesn't involve manually adding a fade cue to every image?

Was hoping there might be something in the Video FX selection, but doesn't look like it.

Andy Dolph

unread,
Dec 13, 2024, 1:29:03 PM12/13/24
to ql...@googlegroups.com, QLab
I’m sure this isn’t the only way but I tend to do that in DaVinci Resolve and then render out a video that QLab plays.

This may just be an old habit that’s unnecessary now, but I still have a reflex to reduce load on the playback machine.

On Dec 13, 2024, at 1:27 PM, Stephen Harrison <ste...@redleopard.org> wrote:

I'm building a slideshow of images (playlist, duration, crossfade) but I'm wondering if there is anyway to apply a subtle Ken Burns zoom effect to the images, that doesn't involve manually adding a fade cue to every image?

Was hoping there might be something in the Video FX selection, but doesn't look like it.

--
Contact support anytime: sup...@figure53.com
Follow QLab on Threads: https://threads.net/@QLabApp
User Group Code of Conduct: https://qlab.app/code-of-conduct/
---
You received this message because you are subscribed to the Google Groups "QLab" group.
To unsubscribe from this group and stop receiving emails from it, send an email to qlab+uns...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/qlab/d71669ce-79d6-40bb-ba22-348f9b96febfn%40googlegroups.com.

Sam Kusnetz

unread,
Dec 13, 2024, 1:41:27 PM12/13/24
to ql...@googlegroups.com
On Dec 13, 2024 at 1:28:45 PM, Andy Dolph <acd...@gmail.com> wrote:
This may just be an old habit that’s unnecessary now, but I still have a reflex to reduce load on the playback machine.

A Fade cue that translates and/or zooms a Video cue has effectively zero load compared to the Video cue itself.

By all means you should work the way you want to work, but I just want to assure everyone that they don’t need to avoid Fade cues out of fear of CPU overload.

Best
Sam
Sam Kusnetz (he/him) | Figure 53


Stephen Harrison

unread,
Dec 13, 2024, 2:01:26 PM12/13/24
to ql...@googlegroups.com
Hi Sam,

I wasn’t trying to avoid fade cues for any performance reason, I just didn’t want to manually create 130+ fade cues and manually set a suitable zoom value for each photo in the slideshow.

The thought experiment was: is there a way to take a playlist of images, that are all of random sizes and set to Fit, then apply a small amount of relative zoom to them all, as a list?

I suppose it might be possible to write a script to build all those fade cues, but it would need to be able to work out the actual size of each image and the canvas size, in order to work out the ‘Fit’ equivalent zoom value.

--
Contact support anytime: sup...@figure53.com
Follow QLab on Threads: https://threads.net/@QLabApp
User Group Code of Conduct: https://qlab.app/code-of-conduct/
---
You received this message because you are subscribed to a topic in the Google Groups "QLab" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/qlab/Tv_AHZfE_gc/unsubscribe.
To unsubscribe from this group and all its topics, send an email to qlab+uns...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/qlab/CAOOK5AYwPoQwrb40NGnBRFxB0mpSu-1rRfDgpZkOZka0PkYAEQ%40mail.gmail.com.

Richard Williamson

unread,
Dec 13, 2024, 2:10:43 PM12/13/24
to ql...@googlegroups.com, ql...@googlegroups.com
I would do this with syphon - send your full size images out of qlab over syphon and have a camera cue that picks this up and zoom/pans - possibly with some clever randomisation with osc cues 
Sent from my iPhone

On 13 Dec 2024, at 19:01, Stephen Harrison <ste...@redleopard.org> wrote:

Hi Sam,
You received this message because you are subscribed to the Google Groups "QLab" group.
To unsubscribe from this group and stop receiving emails from it, send an email to qlab+uns...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/qlab/1514C027-EE10-4567-8DB2-E6C8989D5E74%40redleopard.org.

Andy Dolph

unread,
Dec 13, 2024, 2:13:46 PM12/13/24
to ql...@googlegroups.com, ql...@googlegroups.com
That’s good to know. Do you think that answer still applies with fairly large images say 2 or more times the output resolution?  Though I guess if I’m working at 1080p (which I usually am) that would just be a 4k frame and therefore not a big deal.

I suspect this is just me having old habits. 

On Dec 13, 2024, at 2:10 PM, Richard Williamson <ric...@theatre.support> wrote:

I would do this with syphon - send your full size images out of qlab over syphon and have a camera cue that picks this up and zoom/pans - possibly with some clever randomisation with osc cues 

Sam Kusnetz

unread,
Dec 13, 2024, 2:18:19 PM12/13/24
to ql...@googlegroups.com
On Dec 13, 2024 at 2:00:58 PM, Stephen Harrison <ste...@redleopard.org> wrote:
I wasn’t trying to avoid fade cues for any performance reason, I just didn’t want to manually create 130+ fade cues and manually set a suitable zoom value for each photo in the slideshow.

I didn’t think you were! I was responding to Andy!

The thought experiment was: is there a way to take a playlist of images, that are all of random sizes and set to Fit, then apply a small amount of relative zoom to them all, as a list?

Yes! Here’s how:

  1. Create your many Video cues. They cannot be set to fill stage and fit, since Videos set to fill stage won’t zoom or move, so you will need to manually confirm the initial size and placement of each cue.
  2. Select all the Video cues and click on the button in the toolbar to create a Fade cue.
  3. Choose option “2” (one Fade cue after each Video cue.)
  4. Select the first new Fade cue and go to the Geometry tab.
  5. Set the fade mode to relative (lower right corner) then adjust the scale or translation or whatever small adjustment you’d like.
  6. Copy that first Fade cue (command C)
  7. Select All (command A), then in the Basics tab use the “X selected cues” menu to select only Fade cues
  8. Paste cue properties (command shift V), then check the box for geometry fade mode (under “Fade”) and whatever geometry properties you adjusted (under “Geometry.”)
  9. Hit “Apply”

That should do it!

Sam Kusnetz

unread,
Dec 13, 2024, 2:20:02 PM12/13/24
to ql...@googlegroups.com
On Dec 13, 2024 at 2:13:27 PM, Andy Dolph <acd...@gmail.com> wrote:
That’s good to know. Do you think that answer still applies with fairly large images say 2 or more times the output resolution?  Though I guess if I’m working at 1080p (which I usually am) that would just be a 4k frame and therefore not a big deal.

I suspect this is just me having old habits. 

On an Apple Silicon Mac unless we’re talking about large numbers of simultaneous cues or like ProRes 4444 video, it’s just not an issue at all.

Fading still images with a 4K raster is nothing.

sk

micpool

unread,
Dec 13, 2024, 2:35:30 PM12/13/24
to QLab
To answer your original question of how to do this without adding a  a fade to every cue.....

You could experiment with this attempt I threw together in 3 minutes though in its current form is an insult to Ken Burns but. if you spent a bit of time refining might be a reasonable approach.....

Screenshot 2024-12-13 at 19.23.02.png

In a playlist group number all your Video cues with the same prefix (I've used KB

Then you can change the live scale and translation of all these video cues  using OSC fades using the wildcard cue KB*

This will look something like the attached screen recording.

Mic
Ken Burns-SD 480p.mov

micpool

unread,
Dec 13, 2024, 3:32:10 PM12/13/24
to QLab
Download example workspace here:

https://we.tl/t-S61hOf60LR

To repatch to your monitor

Screenshot 2024-12-13 at 20.28.29.png

Mic

Stephen Harrison

unread,
Dec 13, 2024, 4:13:35 PM12/13/24
to ql...@googlegroups.com

That was my first instinct, but then I thought maybe there’s a way… other aspects of a slideshow are easy now, esp in v.5, so maybe there’s a way to add the animation?

I think an M1 Max can cope with a few JPEG’s 😄 and it would make any last minute change requests easier to deal with.


On 13 Dec 2024, at 18:29, Andy Dolph <acd...@gmail.com> wrote:


I’m sure this isn’t the only way but I tend to do that in DaVinci Resolve and then render out a video that QLab plays.

This may just be an old habit that’s unnecessary now, but I still have a reflex to reduce load on the playback machine.

On Dec 13, 2024, at 1:27 PM, Stephen Harrison <ste...@redleopard.org> wrote:

I'm building a slideshow of images (playlist, duration, crossfade) but I'm wondering if there is anyway to apply a subtle Ken Burns zoom effect to the images, that doesn't involve manually adding a fade cue to every image?

Was hoping there might be something in the Video FX selection, but doesn't look like it.

--
Contact support anytime: sup...@figure53.com
Follow QLab on Threads: https://threads.net/@QLabApp
User Group Code of Conduct: https://qlab.app/code-of-conduct/
---
You received this message because you are subscribed to the Google Groups "QLab" group.
To unsubscribe from this group and stop receiving emails from it, send an email to qlab+uns...@googlegroups.com.

--
Contact support anytime: sup...@figure53.com
Follow QLab on Threads: https://threads.net/@QLabApp
User Group Code of Conduct: https://qlab.app/code-of-conduct/
---
You received this message because you are subscribed to a topic in the Google Groups "QLab" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/qlab/Tv_AHZfE_gc/unsubscribe.
To unsubscribe from this group and all its topics, send an email to qlab+uns...@googlegroups.com.

Stephen Harrison

unread,
Dec 17, 2024, 5:51:50 AM12/17/24
to ql...@googlegroups.com
Thanks the that Mic, a nice solution and one that does work on images that are set to Fill Stage.

With a bit of fine-tuning that would work quite nicely. I’m also thinking that giving the photos alternating cue prefixes would allow a smooth transition between zooming out and zooming in images.

On 13 Dec 2024, at 20:32, micpool <m...@micpool.com> wrote:

Download example workspace here:

https://we.tl/t-S61hOf60LR

To repatch to your monitor

-- 
Contact support anytime: sup...@figure53.com
Follow QLab on Threads: https://threads.net/@QLabApp
User Group Code of Conduct: https://qlab.app/code-of-conduct/
--- 
You received this message because you are subscribed to a topic in the Google Groups "QLab" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/qlab/Tv_AHZfE_gc/unsubscribe.
To unsubscribe from this group and all its topics, send an email to qlab+uns...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/qlab/c6ae6b9d-c821-4bcb-9eb9-6afcf6102b76n%40googlegroups.com.
<Screenshot 2024-12-13 at 20.28.29.png>

micpool

unread,
Dec 17, 2024, 7:23:46 AM12/17/24
to QLab
On Tuesday, December 17, 2024 at 10:51:50 AM UTC Stephen Harrison wrote:
Thanks the that Mic, a nice solution and one that does work on images that are set to Fill Stage.

I think any method of changing geometry by fade or OSC has always worked on images set to fill surface/stage. The fill stage is essentially just the initial state
 
. I’m also thinking that giving the photos alternating cue prefixes would allow a smooth transition between zooming out and zooming in images.

That's a good idea and it works well if you create another pair of network fade cues that are the inverse of the first set.

Obviously, with a lot of images, the renumbering might get a bit tedious, so a script might help

--renumber the cues in a group to have alternate prefixes

set theOddPrefix to "KBO"

set theEvenPrefix to "KBE"

tell application id "com.figure53.QLab.5" to tell front workspace

try

set theGroup to last item of (selected as list)

on error

display alert "No Selection!"

return

end try

if the q type of theGroup is "group" then

set theFirst to text returned of (display dialog "Cue number for first Cue Pair" default answer "1")

set theIndex to theFirst as integer

set theCues to cues of theGroup

repeat with eachCue in theCues

if theIndex mod 2 is 0 then

set thePrefix to theEvenPrefix

else

set thePrefix to theOddPrefix

end if

set the q number of eachCue to (thePrefix & theIndex)

set theIndex to theIndex + 1

end repeat

else

display alert "The selected cue is not a group"

end if

end tell


Mic

Reply all
Reply to author
Forward
0 new messages