Movie Scratching and Reverse Playback

So…

I feel like this has been brought up before, but I’ve never gotten a decent answer, other than “don’t bother”.

Does anyone have any ideas of how to get good quick access scrubbing (back and forth) of a photo jpeg movie (or other better codec for that matter). I feel like the intrinsic problem is that the movie player only looks ahead, not behind… So even when I set the playback speed to be -1, its pre-reading the frames ahead, not behind, is this true? I’ve never seen very smooth reverse playback out of touch.

Anyways, thinking about trying to implement some scrubbing tools for vjing, and just wanted to put the question out there.

-P

I’ve got a few comps I’ve built that do time stretch forward/reverse and stutter forward/reverse and another that works like an audio slicer/chopper on an incoming stream of video all using the cache TOP. They don’t manipulate a moviein TOP but they constantly cache the stream coming into the comp so you can reverse and or scratch as far back as the cache size. I’m sure you could build something using the cache TOP possibly even scrubbing forward with a moviein TOP if using the prefill (of the cache TOP) parameter. Also with a moviein TOP you should be able to drive the index with a chop channel easily.

I could post the stutter and timestretch comps if you want to check them out. The beat grid slicer is posted in the components forum (BufferShuffler comp) but its designed to be connected to a M4L device in Ableton, unless it’s modified it won’t work without Ableton and the TDsync project. Let me know if you want and I’ll post the other two.

cheers
Keith

Hi Keith,

would you be able to post the comps to take a look at how you were able to build the network?

thanks,

jack

For good reverse playback of video, you have to have an understanding of what movie codecs do to your video in the first place. Because most compression algorithms assume you are playing forwards, they optimize for that case at the expense of reverse playback. In order to optimize against this, you want to find codecs that only utilize ‘intra-frame compression’ which store every single frame as opposed to ‘inter-frame compression’ which utilizes temporal redundancy in video to reduce filesize. Two Good choices for this are MPEG 2 files that are transcoded as ‘I-Frame Only’ or Quicktime Animation. Additionally Image sequences may work well for this.

I’m unsure how HAP currently handles reverse playback, but I feel like the last time I tried it wasnt so great.

TlDR Version: Use Mpeg 2 I Frames Only

Hi Jack I’ll get you an example soon. Right now my looper is part of a bigger project and has a bunch of dependencies so it will take a bit to make it work standalone. I’ll get it to you though, it work pretty good.

Yeah for codes that play backwards well I found animation works best and photo jpeg next (I’ve done quite a bit of testing) although I haven’t test HAP yet. They’re still not perfect though. Turning down Pre-Read Frames on the moviein TOP to 0 helps though

cheers
Keith

Hi Mkohler,

I understand what you mean about the codes and compression. I will try out the mpeg 2 iFrames only.

I have a noob question: How can I load an image sequence ( _render0000.png, _render0001.png, _render0002.png, etc.).

Thanks,

Jack

Hi Keith,

Thanks a lot! I have been exploring the CacheTop and other video formats like the individual frames.

Basically trying to use the Kinect to drive the forward and backward movement of a video clip. Simillar to :

[vimeo]https://www.vimeo.com/18499643[/vimeo]

What is HAP btw. Thanks for the tip as well about turning down the Pre-Read Frames.

Thanks,

Jack