Loop short video infinitely with a fade across end/start

989 views
Skip to first unread message

Tim Fox

unread,
Nov 5, 2023, 10:55:04 PM11/5/23
to QLab
Hi all. First post - go easy!
(Have searched through the cookbook and google group for an approach, but didnt find anything, so here's the question.)

I have a short video of fire that I will use as a background on the cyc for a dance recital number. I'd like the loop the video with a fade between each play so it doesn't jump when looping back. ie, a crossfade between the end and the beginning of each iteration.

Other techniques I tried seemed to have a hard jump, or a time where the video stream was black.

The method I came up with is a Looping playlist, with crossfade, with the same video duplicated. 

To break out of the loop gently fade the video, I've created a playlist to fade both the videos (in case they were playing during a crossfade, and a delayed Stop cue to kill off the looping list so new instances of the videos dont trigger.

Screenshot 2023-11-05 at 10.15.11 pm.png

Is there a less complex way to do this? 

yes, I could render the video in Davini with a crossfade transition pretty easily, just seeing if there's a way in QLab to loop a video gently.

Thanks all.

Chris Ashworth

unread,
Nov 6, 2023, 10:27:06 AM11/6/23
to Tim Fox, ql...@googlegroups.com
Hi Tim,

Welcome to the list!

I can at least say you’re not missing an obvious built-in mechanism for this — I’ve add your thoughts to our issue tracker on adding an easier crossfade.

Best,
C

Tim Fox

unread,
Nov 6, 2023, 4:57:09 PM11/6/23
to QLab
Thanks Chris. Could see it being useful for video and, say, background audio. 
I’ll keep tinkering and see if there’s a more elegant solution. 

m...@stevensokulski.com

unread,
Nov 7, 2023, 3:59:40 PM11/7/23
to QLab
Two copies of the same cue can be set to fade each other using the Triggers tab. By adjusting the timing of the fade in the Triggers tab and the prewait in the second cue starting you can get it to fade into itself.

If you place both cues in a Group and add a Start cue with a prewait that puts it at the end of the Group you can restart the first Video cue once the second reaches the desired point.

To end the effect, a Fade cue targeting the Group would take it out nicely.

Personally, I’d want to rework the video so that it loops on its own.

Tim Fox

unread,
Nov 8, 2023, 5:25:40 AM11/8/23
to QLab
Yep, thanks Steven. A simple stop fade targetting the Group cue, to 0% opacity with 'stop target' worked nicely.

For future me who needs to remind himself on how to do this:

Screenshot 2023-11-08 at 9.20.48 pm.png

- Create a Group cue. On Basics Tab choose type of Playlist. On Playlist Tab select Loop until Stopped with a crossfade. Set whatever crossfade curve / timing works.
- Add two of the same video cue in the group. No trickery here - no pre waits etc needed.
- Create a Fade cue targetting the Group cue. On Geometery tab set Opacity to 0 & Set Stop Target when Done.
- Enjoy beer while watching looping video until tapping Spacebar.

Thanks for the inputs!
Message has been deleted

micpool

unread,
Nov 8, 2023, 7:03:04 AM11/8/23
to QLab
Hi Tim,

Future you might want to see what happens to your fade and stop if you change it to a 20 sec duration!

Mic

Steven Sokulski

unread,
Nov 8, 2023, 4:35:57 PM11/8/23
to ql...@googlegroups.com
Using a Playlist cue is a great idea.

Nicely done!


Sent from my iPhone

On Nov 8, 2023, at 4:03 AM, micpool <m...@micpool.com> wrote:

Hi Tim,
--
Contact support anytime: sup...@figure53.com
Follow QLab on Twitter: https://twitter.com/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/86fhh6plE9s/unsubscribe.
To unsubscribe from this group and all its topics, send an email to qlab+uns...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/qlab/ac440091-b5e6-4d59-9210-6722590dc099n%40googlegroups.com.

Tim Fox

unread,
Nov 8, 2023, 5:50:09 PM11/8/23
to QLab
Heya Mic. Hmm. Just tried this with various fade lengths. There's definitely some quirks:

Self killing Group Cue
eg, my video clip length is 8.3 seconds. With the Group Cue set to a 1 sec cross-fade, the Group Cue sums up the runtime to (8.3 x 2) - 2 = 14.6 secs. Loop works OK.
If the Group Cue cross-fade is increased, there's a possibility that the Group Cue length is less than the video clip length (8.3 x 2) - 5 = 6.6 secs. 

In this case, the Group Cue kills itself without looping back to the top. 

- Guardrail 1 - Make sure your Group Cue length is longer than the clip length by shortening the crossfade time. Or using a longer clip.

Where'd my fade go?
If the Fade Cue is relatively long, the Group Cue can loop back to the top and re-triggers the children video cues while the fade is still running. Seems OK for maybe 1/2 or 1 iteration, however multiple loops while fading and the Fade Cue loses track of the instances of the video cues to act on.

In this scenario the Fade Cue and Group cue have a bit of a fade-out / fade-in battle. Then once the Fade Cue runs out of time, it hard stops children video cues, and takes its bat and ball home. Poor outcome for everyone.

(I think that's why I started messing with a specific fade cue for each video cue & a stop cue for the group cue as I posted initially).

Also seems at what stage in the Group Cue loop that the Fade Cue is triggered has an effect. Could be the start of one child, with both, looping back to top, etc etc.
To fix this the fade cue should be relatively short. Perceptually 1 to 3 seconds seems to work. 

So from my quick experimenting...

Guardrail 2 - Set the Fade Cue length & Group Cue cross-fade time to the same value. A couple of seconds for both seems robust.

PS My future self better appreciate this... :) 

micpool

unread,
Nov 9, 2023, 5:12:54 AM11/9/23
to QLab
Hi Tim,

Sorry my  "Future you might want to see what happens to your fade and stop if you change it to a 20 sec duration!" didn't really give any insight into what the problem might be.

In reply to your original post, I was going to suggest fading the playlist group rather than the original cue with an example, but it didn't behave as expected, so I didn't post it (on the basis I try only to post solutions I have fully tested)

After you and Steven posted solutions involving fading the groups,  I only had time to post my brief one-liner as a warning that fading groups (of any mode)  of video cues in QLab 5 have some very unusual quirks, some of which you have listed in your last post,  which on the basis they don't manifest when fading audio cues,  I had concluded were possibly a bug and reported to Figure 53.

So I think the current situation is that your playlist method of crossfade looping cues, currently works great for audio cues, and is theoretically  the best method for video cues, but currently isn't usable  because fading groups (any mode)  of video cues  may not be working as intended.

Screen recording attached video vs audio.



Mic
Croosfade Loops.mov

Tim Fox

unread,
Nov 9, 2023, 5:29:33 AM11/9/23
to QLab
Yeah, I think your screen recording of the video loop fade is what I described above, where new instances of the clips have tiggered while the fade is running. 
Almost seems  there's a fundamental difference between how the Fade and Stop playlist cues work.
- With video, it seems to apply the fade to each running clip
- With audio, its like a master fader riding across the whole group.

I'm sure the folks at F53 would be able to clarify.

Once I finished building the show (there's probably a couple of hundred cues I need to author), I'll retest. Might be cleaner to just render the clips longer and simplify the cue list. Been an interesting problem to solve though. Always the best way to learn a new app.

Thanks again for contibuting on this (and to the others as well). Appreciate the time and effort reproducing and screen recording etc.

Nice to find a helpful bunch of folks. Might have a couple of other questions come up, but I'll put them in threads specific for those topics.

Cheers from Melbourne Australia!
.tf

Steven Sokulski

unread,
Nov 9, 2023, 10:45:07 AM11/9/23
to ql...@googlegroups.com
Huh… I had observed something like this recently.

I was trying to do a down and dirty composite of two videos during rehearsal to show a designer. I masked them and laid them out in a QLab group. But when I faded them the videos all seemed to fade individually, so the opacity where two clips overlapped appeared to fade at a different rate as the two video files opacities appeared to be summed

I think your metaphor of “audio is a master fader, video is individual” is apt. I’d be curious if this is the intended behavior, a technical limitation of audio vs. video engines, or something else.

Sent from my iPhone

On Nov 9, 2023, at 2:29 AM, Tim Fox <timm...@gmail.com> wrote:

Yeah, I think your screen recording of the video loop fade is what I described above, where new instances of the clips have tiggered while the fade is running. 
--
Contact support anytime: sup...@figure53.com
Follow QLab on Twitter: https://twitter.com/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/86fhh6plE9s/unsubscribe.
To unsubscribe from this group and all its topics, send an email to qlab+uns...@googlegroups.com.

Greg Leeper

unread,
Nov 13, 2023, 4:08:47 PM11/13/23
to QLab
A trick I've used before is to edit so the dissolve gets placed in the middle of your new clip:
Edit 2 copies of the clip together with the crossfade you like, then trim the head and tail to the same point and just play that new clip as a loop - this assumes your machine can play a seamless loop without a pause.

Tim Fox

unread,
Nov 13, 2023, 4:12:55 PM11/13/23
to QLab
Now that’s an interesting approach. Basically offset the join so the start / end of the clips will match. I like it. Thanks!
Reply all
Reply to author
Forward
0 new messages