“Why is there no free software to delay a live video feed?”
– a broke college student
Live Video Delay is a simple application with a self-explanatory name. It shows a full-screen time-delayed feed from an attached video camera. Stereo audio can be delayed to match. Delay length is limited by your computer’s GPU memory (VRAM).
How To Use It
- Launch the application and choose your video input and sound hardware with the Video Settings and Audio Settings windows. You can choose a camera (see the camera compatibility page) or a Syphon source from another application. The resolution of your input can be adjusted to balance quality and delay time.
- Set your Buffer Length (measured in frames) to the longest duration you think you will need. You will choose your exact delay time later, but the buffer collects frames in the background and it sets the limit for how long your delays can be. While the buffer fills with new frames, your video window may be black. Be patient and wait for your frames to arrive. The buffer uses the VRAM in your GPU. I can’t measure how much is free, so you’ll need to experiment with maximum delay times. If you go too far, crashes may result!
- Set the Video Delay to alter the delay length. (A calculator shows you the approximate delay-time in seconds, based on the current frame-rate.)
- Press the “Esc” key on your keyboard to activate full-screen mode and enjoy your time machine!
- If you want to delay sound too, just choose how many seconds of Audio Delay you require. You can use the calculated delay-time as a starting point and then adjust until you get perfect synchronicity between video and audio. (This process is not automatic. If you alter the video delay length, you must update the audio delay length again.) Audio meters are provided, and you can adjust the Input Gain and Output Gain to desired levels.
- The floating preview window can be set to Full, Half and Quarter resolutions and you can mirror the image for situations where the camera is facing you.
- Use the Video Mix slider to mix the live and delayed signals. Turn up the Video Feedback slider to create trippy trails dood.
- If you check Auto Full-Screen, Live Video Delay will automatically enter full-screen mode each time it starts up.
- All important settings are saved in an XML preferences file when the app closes.
Other Software
- OBS can do live video delay, probably better than my app!
– Add your webcam as a Video Capture source.
– Right-click it and choose “Filters”. In the Audio/Video Filters list, add “Video Delay (Async)”.
– Type the number of milliseconds of delay you want. (Large values seem OK but I haven’t tested the upper limit.)
– To show the image full-screen, right-click on the video window and choose “Fullscreen Projector (Preview)”.
(OBS can’t delay the audio while monitoring live. If you need audio, you need to insert a VST plugin.) - If you are looking for a Windows solution, the free open-source sports analysis package Kinovea does live video delay (among other things.)
- This old post on the Processing forum contains a sketch for delaying live video.
Further Research
- Dan Graham used analog delay-lines in his Time Delay Room piece in 1974. Richard Serra & Nancy Holt did a wonderful piece called Boomerang which used audio delay to probe the formation of meaning in language.
See Installation Instructions. There is no Windows version (details).
Old Versions
v 2014-01-16 (Mac Intel)
January, 2014, 42MB with source “patches” for MAX 6.1.
You may need to adjust your security settings and/or install Java.
Changes in this version:
- re-compiled using MAX 6.1 programming environment (no more PPC support)
- added mirror function
- Restyled the interface a bit
- fixed some of the RAM calculation code
- full-screen key is now “Esc” instead of “F” so it’s easier to find in dark or cramped situations
- audio output level defaults to silent if preferences are not set (to avoid feedback on first launch)
Note: The app now contains 32bit and 64bit options. If you have problems with video not showing up, try forcing it to open in 32bit mode (Get Info on the app to change back and forth).
Known Bugs:
- The software (and your camera/driver) has unavoidable latency, so ultra-short delays may not be possible.
- There appears to be an internal limit on delay memory that I cannot fix. (see table below)
Maximum Buffer Lengths:
- 320 x 240 resolution: 3494 frames (roughly 2 minutes @ 30fps)
- 640 x 480 resolution: 872 frames (roughly 30 seconds @ 30fps)
- 720 x 480 resolution: 775 frames (roughly 25 seconds @ 30fps)
- higher resolutions untested but you get the idea.
Note: Live Video Delay’s GPL license does not explicitly apply to the following included code:
- co.normal.jxs shader
(exact license unknown, supplied with MAX5, www.cycling74.com) - v001.deinterlace shader
(CC-by-nc-sa license, by Vade 001.vade.info) - Shell object
(exact license unknown, open source, originally by Bill Orcutt, recompiled by Jeremy Bernstein http://cycling74.com/toolbox/bernstein-shell )
v 2011-08-17 (Mac Intel/PPC)
August, 2011, 20MB with source “patches” for MAX/MSP/Jitter 5.
Changes in this version:
- Added slider to mix between live and delayed video signal.
- Clarified licenses for included code from other sources
Known Bugs:
- The software (and your camera/driver) has unavoidable latency, so ultra-short delays may not be possible.
- There appears to be an internal limit on delay memory that I cannot fix.
v 2010-10-17 (Mac Intel/PPC)
October, 2010, 20MB with source “patches” for MAX/MSP/Jitter 5. (Tested with Mac OS 10.5 Leopard.)
- Frames are now stored in system RAM and
there is no arbitrary limit on delay time - RAM usage is visible inside the app, to help set your delay buffer.
- De-interlacing option is now available (GPU accelerated)
- Stereo audio delay added
- Mouse pointer is now hidden when in full-screen mode
v 2010-04-08 (Mac Intel/PPC)
April, 2010, 19MB with source “patches” for MAX/MSP/Jitter 5. (Tested with Mac OS 10.5 Leopard.)
For Snow Leopard compatibility you must install Quicktime 7.
- video-only, no audio
- max delay of 148 frames (due to GPU memory concerns)
- might take a few seconds to start, baecause it’s filling your VRAM with frames
- might be slower than some other techniques, or it might be faster