Behavior of VideoWidget

The video widget behaves exactly in the way I want it to: space key pause/play and arrow keys to move forward or backward in time. But, I’m using it for something that requires precision timing and I can’t find any documentation about the amount of this time shift.

Can you tell me, what is the value by which the arrow keys increment or decrement the time of the video in the video widget? Is it one frame?

Hey there! I'm not sure if there's a way to specify the timing precision within the component itself, but here are a few shortcuts I found after doing some research on our end. :slightly_smiling_face:

Increment / decrement by time

It looks like the arrows increment / decrement by 5 seconds. If you need to jump more than five seconds, press the ' J ' key to rewind ten seconds or press the ' L ' key to fast forward 10 seconds.

Jump to %

You can also use the number keys to jump to specific sections in the video!

Pressing the number keys from 1 to 9 seeks (jumps) to that percentage of the video. In other words, 1 jumps to 10%, 2 jumps to 20%, 3 jumps to 30%, etc.

Frame by frame

When the video is paused, you can use ' , ' to move one frame left and ' . ' to move one frame right!

Thanks so very much! The frame-by-frame behavior is exactly what I need!! Finding players that will move frame by frame is not easy, so I was expecting this answer to be no. THANK YOU!

hi @victoria – I may have spoke to soon. ‘,’ and ‘.’ don’t seem to have frame by frame effects on my end unless it’s a youtube video. Is there a way to get this to work with videos from other URLs?

Hello! Bumping this because I still haven't managed to get it to work.

@victoria's solution works when playing a YouTube video within retool, but not when it is a video stored in an S3 bucket. I'm wondering if you could share more information about the video player so I could try to figure this out?

I need to annotate videos to millisecond precision. If we could increment videos by frame, that work make it work perfectly! So far, it doesn't seem to be possible.

A work around I thought of is to add a button that would set video.currentTimeStamp to + 1 millisecond, but it doesn't look like currentTimeStamp is set-able. I tried the following and it has no effect on the video timestamp.

video.currentTimeStamp += 1 

Any suggestions would be greatly appreciated.