Need a video/audio 'time base corrector' with a very large time buffer We'll be receiving a media stream that will suffer varying time shifts, and we need a solution that will clock the video+audio out at a predictable rate. We can time stamp the input stream (assume SMPTE LTC) to aid in identifying the amount of shift that has occurred.

This is basically what a TBC does, but these delays may be on the order of seconds, so the buffer would have to be quite large. Total delay through the system is not important, as long as the time jitter is ultimately removed.

EDIT: This could also be thought of as a rate corrector. The incoming video will have a long-term average frame rate of (say) 30fps, but the short-term rate could vary +/- 10% from that. The goal is to buffer enough video so that the output rate can be exactly 30 fps.

Something that worked with encoded (say MP4 over RTSP) video would be ideal, but if we need to work in baseband (SDI etc) that's acceptable.

Anyone know of such a device or system?
You can do this with GStreamer and a plugin called rtpjitterbuffer. There is an example usage on the bottom of that page with the gst-launch tool to do a simple desktop playback of an rtp stream with network errors.

gst-launch-1.0 rtspsrc location=rtsp://192.168.1.133:8554/mpeg1or2AudioVideoTest ! rtpjitterbuffer ! rtpmpvdepay ! mpeg2dec ! xvimagesink


You can customize this to your need and set specific timeouts and also make a new network stream instead of doing desktop playback. You can do pretty much anything with gstreamer, you just have to read a bit into it.

Regarding hardware I don't know of any that does this but I'd guess its pretty expensive like it usually is with very specialized hardware.