0

Cross fade videos using dissolves

I read another post that suggested using a plugin to dissolve a video and create a crossfade to another video. There was no other information given so I thought I'd ask here if anyone has attempted it.

I dug around a bit and it looks like you could maybe do this with ChromaLuma-Key-Editor. Set up the first video to dissolve to full transparency and the 2nd to fade back in from transparent to opaque. I see how you set the transparency using the script (I think) so my question now is; do I have to do a whole bunch of events, each one with a slightly greater (or lesser) level of transparency every 500 milliseconds or so or is there a better way to do it?

Thanks in advance for any advice.

29 comments

  • 0
    Avatar
    Lyndon

     

    This plugin has a fade command...

    https://www.brightsignnetwork.com/download/Scripts/rotateplus-tckv8.brs

     

    The plugin name is: custom

    The command you would send is: fade!5000

    This tells the unit to fade over a period of 5 seconds.  

    So, to fade at the end of a video, you'd use interactive playback, and add a video time code event to trigger the face when you get near the end of a video. 

     

  • 0
    Avatar
    Bill

    Thanks for this Lyndon. I'll play with it the office tomorrow. I'm still not sure it will work for me if it has to be triggered by a timecode event. I need to fade a video out when the brightsign unit receives an external trigger, currently expected to be UDP input or Serial input. Maybe I can have the input trigger an event that can trigger the fade...?

  • 0
    Avatar
    Lyndon

     

    It can fade on a signal as well. You can send the command at any time. You'd only need the time code if you wanted it to trigger right before the end of a video. 

  • 0
    Avatar
    David Herde

    Be cool if you could capture or load the video time length and use that to load a negative length of time on a media end control.

  • 0
    Avatar
    Jordi Casanovas

    As I can understand in these previous post I have a similar requirement. In my case, 8 videoclips must be triggered at any time by means of 8 pushbuttons. Every time a button is pushed the new video is played transitioning with fade effect with the current video. Do I need to add this plugin: https://www.brightsignnetwork.com/download/Scripts/rotateplus-tckv8.brs ?

    How to set up the script with BrightAuthor?

    Thank you in advance.

     

  • 0
    Avatar
    Lyndon

     

    THe plugin doesn't do a crossfade, just a fade out from the existing video. If you're asking how to setup the plugin, you'd add it under the file menu, properties, under autorun. There's a box for plugins. The name of this plugin is "custom", so you'd add it with that name.

     

    If you're comfortable with html, I have an html example that my colleague put together that uses css to handle fades between two videos. It's very smooth, BUT requires a player that can handle two videos at once because it uses both video players to do the smooth transition. So, it would work on an XD2 or XD3 or XT3, but not an LS or HD player. 

     

     

  • 0
    Avatar
    Jordi Casanovas

    Hi Lyndon,

    Thank you for your prompt reply. I'm not a code programmer but If you can send me the HTML example I can show it to other colleagues that can program for me.

     

     

  • 0
    Avatar
    Chris Schelzel

    I am interested in an example too! :)

     

    Greetz Chris

  • 0
    Avatar
    Lyndon
  • 0
    Avatar
    alexander Kunkels

    Hi Lyndon

    i would like to fade out the current video at any time when i trigger the button

    but i can't figured it out how to do it

    what am i doing wrong?

    i put the plugin message on the trigger (0) but when i press it fades the next video.

    please help me

    Alexander

  • 0
    Avatar
    Jon Schroeder

    Alexander,

    I have been trying to do the same thing and finally got it to work this morning. The fade!5000 command wouldn't work for me until I dropped the time value from 5000 to 99.  If I go over two digits I get all sorts of strange behaviour, including fading out and jumping right back in, pulsing as it fades out (starts to fade, down to 90% back up to 95%, down to 85%, back up to 90%) it will eventually fade out but it isn't the fade we need.  I found setting my time to 99 seems to take about a second to fade.  Not as long as I would like but it will work.  I am interested to hear what Lyndon has to say.  

    I also had to re-format my cards at one point and re-push the presentation.  Before doing this, it worked for a while and then stopped. I also found some issues with capitalization.  I tried updating fade commands with the correct capitalization on the UDP commands but it didn't fix the problem.  I had to delete them, push the presentation, recreate them with the correct capitalization, and re-push the presentation to make everything work.

     

    Jon

  • 0
    Avatar
    Alan Eidson

    Has anyone been able to get this to work using GPIO event as Alexander has mentioned. 

  • 0
    Avatar
    Lyndon

    Jon, I'll take a look at the plugin to correct any capitalization issues. I hadn't heard of any issues fading with values over two digits. The player assumes the time is in milliseconds.  What firmware and what player were you testing with when you got add behavior with fading? I updated the posted plugin to fix the case sensitivity. 

     

    Here's a video I made explaining how the fade plugin works with gpio.

    https://www.brightsignnetwork.com/download/Scripts/fadeplugin-gpio.mp4

    If you're editing the plugin, you can usually call "lcase" to make a string lower case. SO, you can change

    msg$ = event

    to 

    msg$ = lcase(event)

     

    To change all letters to lower case. 

     

     

  • 0
    Avatar
    Alan Eidson

    Lyndon,

    I see that your project is for an XT.  Does this plugin work on HD models for you?  Like the HD224?   When adding this plugin to the advanced tab on the GPIO on an HD224, the video jumps to the next video and then applies a fade out of that video for a duration of about .5 seconds no matter what duration that I set it to.   It may not even be doing a fade... , nevertheless, it goes to black after the video starts.  With a media end event, the initial video begins.

     

    Thanks

    Alan

  • 0
    Avatar
    Lyndon

     

    Yes, it should work on any model.

  • 0
    Avatar
    Alan Eidson

    Hi Lyndon,

    Thanks for your support.

    I have tried this with an HD224,  v8.0.48 as well as v8.0.6.6 and with a 4K1142 (v8.0.48) that i have laying around; and with both, I constantly get the same results... When using GPIO 0 to transition to a new state to a different video and putting the string command "fade!3000" into the GPIO Event/Advanced/Send/Send Plugin Message/custom; the device transitions to the next video with a cut, and then performs the fade.   If I put the command into the Exit command of any video, it cuts to the next video and then performs the fade. 

    I would use this plugin A LOT, if it worked for me. 

    **** link to my results:  https://www.dropbox.com/s/rrh0b6sofe00hvg/IMG_8035.MOV?dl=0

     

  • 0
    Avatar
    Lyndon

    Alan, can you send a sample presentation to support  at brightsign. I"m sorry I didn't see this message sooner. 

  • 0
    Avatar
    Taylor West

    Hey Lyndon - I am currently working on a project that would benefit from this plugin, but I am seeing the same behavior as Alan Eidson.  Following the steps in the video you posted, when I trigger GPIO 0 it jumps to the next video then quickly fades it to black.  I was expecting to have the first video fade to black, then the next video should appear. Have you been able to find a solution to this issue?

    I am using a HD1024 - Firmware 4.7.2.12.

  • 0
    Avatar
    alexander Kunkels

    Hi Lyndon -
    Same problem for me

  • 0
    Avatar
    Lyndon

     

    Ok, not sure why I didn't notice this before. The problem is the trigger to go to the next state executes before the fade plugin. This first workaround is a little involved. I'll look at reworking the plugin so fewer steps are needed. But, this works for me currently. 

    when the fade ends, it sends a plugin msg event "ef", just those two letters. 

    In my example below, I'm using udp to indicate I want to switch videos. My udp events are set to remain on current state because I want to send the fade command before I actually try to leave that video, and I then use the "ef" string to transition from that video to the next.  I'll look at the plugin to find a cleaner way of doing this. I should be able to look at any trigger, see if it's destination is another video, and then send that same trigger back as a plugin event, so that this can be simpler..

     

    This shows three videos, each with a udp event that sends the fade command, but each udp event remains on that state and doesn't transition to another state.  You can replace udp with gpio.

     

    UDP event  - set to remain on current state

     

    UDP event, advanced - sending fade command

     

    Plugin Message Event that handles jumping from  first video to second video using "ef" string.

     

     

     

    So, for a gpIO example, it would look like this..

     

     

     

     

  • 0
    Avatar
    Shawn Flanagan

    Hi Lyndon, 

    Were you ever able to take the time to rework the plugin? I tried using your workaround for UDP but am not having any luck with it.

  • 0
    Avatar
    Roni

    Hi Lyndon,

    Thanks for all your work on this plugin!

    I tried with gpio and plugin message event, exactly how you did but the video is not triggered, I don't know why it's not working
    Do you have an idea ?

  • 0
    Avatar
    Tedo

    Lyndon,

    I'm also trying to use this plugin, but using the "ef" plugin message workaround doesn't appear to provide enough flexibility. Using the example above, all of your changes are sequential - A to B, B to C, and C to A. I want to be be able to fade-transition from A to either B or C.

  • 0
    Avatar
    Lyndon

     

    I'm not sure what you're asking. You can have transitions from any video to another. What are you saying this doesn't allow you to do?

  • 0
    Avatar
    Tedo

    Using your example, from the branding video, I want to be able to send a UDP command to trigger either fantastic four or cars and have the branding video fade to black before switching. However, since I must change the UDP trigger to "Remain on current state" and then use the plugin with the "ef" message, I can only switch to ONE of those videos as the plugin message dictates where to go next. 

    I have tried using multiple "ef" plugins - a different one for each video that I want to go to, but the UDP trigger is now effectively disabled, since it is to remain on the state, and all of the "ef" plugin messages have no idea when to trigger.

  • 0
    Avatar
    Tedo

    Lyndon,

    Perhaps this will better explain what I'm trying...

    The problem is the the UDP commands, which contained the instruction for what to play next, are now not going anywhere. And, the plugins, which have been added and DO contain the instruction for what to play next, all have the same message, "ef", and so there is no discreet control. Sending any UDP message (clicking any button) results in the same video playing every time.

  • 0
    Avatar
    Lyndon

     

    ok, understood. One way that could work is to use a playfile widget to do playback. so the ef message will lead back to the playfile widget. 

     

    and, we'd add a variable that will be used to play the ne xt file. You can send a udp message that sets the variable value. Use ef to transition back into the playfile widget. And, in the playfile widget use a variable as the source for the index value that tells the player what to play next. 

     

     

  • 0
    Avatar
    Tedo

    Ahhh – this makes sense. Thank you. I’m not certain I’m fluent enough to get through this without assistance, but I’ll give it a shot.

  • 0
    Avatar
    Tedo

    I feel like I'm close to getting this to work, but I'm not sure that it can...

    I followed your instructions and I think it went pretty well. I can successfully set the variable with the triggers, the video fades out, the ef sends me to the Video Play File, the play file reads the variable and the correct video plays. But, the videos in the Play File are new instances of videos, and they don't listen for UDP commands. So, that selected video plays and ignores any commands and just repeats forever.

    Am I missing something?

Please sign in to leave a comment.