We occasionally get support calls from people that are experiencing strange lagging, stuttering, or freezing of ScreenFlow when they are trying to edit their projects. One of the first questions we ask (after “did you spill a cold beverage on your keyboard?”) is:
Do you have imported video in your projects; and if so what format/codecs are those imported videos?
Editing formats vs. delivery formats:
In the world of digital video there are formats that are designed for editing, and then there are formats that are designed for delivery (or distribution).
If you use a “delivery” format in an editing program (such as ScreenFlow), it can behave distinctly BADLY, causing all sorts of problems that, if you don’t know what’s going on, can appear to be caused by your editing program.
When editing digital video, non-linear editing programs work by accessing and changing the individual frames of that digital file. So, ideally, all the data or information for each frame should be easily accessible to the editing program. This can result in large, uncompressed files with lots of video data.
Alternatively, when delivering a digital video, you want your file to be compressed and as easy as possible for your video player to access, read and display.
To handle these two scenarios, there are two distinct codec types: Intra-frame codecs (best for editing) and Inter-frame codecs (best for delivery).
Intra-frame codecs store all the video information for each frame on every individual frame. As the name suggests, you are basically encoding each separate frame as its own picture. Inter-frame codecs, on the other hand, rely on information in preceding and occasionally upcoming frames. Inter-frame codecs take advantage of redundant information on neighboring frames, and save space by storing the changes between frames.
Look at me getting technical:
To get a little technical, here’s how it works:
Inter-frame codecs use three different types of video frames: I-frames, P-frames, and B-frames.
I-frames, also known as keyframes, contain all the information for a frame on each individual frame. Intra-frame codecs use I-frames exclusively. Every frame is encoded and decoded individually. Inter-frame codecs, alternatively, use very few I-frames. The reason is that the more I-frames you have, the larger the file is, and the goal of delivery codecs like H.264 or WMV is to compress the video as much as possible.
P-frames, or delta frames, contain only the changes from the last frame, making them much smaller in size than I-frames because they are only storing a fraction of the data. However, in order to view a P-frame, the computer has to go back to the last I-frame, and decode every single frame up until that P-frame. Some highly compressed video formats can go 200 or more frames between I-frames. So, if you try to edit video with P-frames, your computer has to go back to the previous I-frame and decode all 200 frames just to view current P-frame, which is a lot of processing, and can result in stuttering or even crashing.
B-frames, or bi-directional frames, are like P-frames, but instead of just saving the changes from the previous frame, they also take information from the next frame. For editing programs not able to handle these types of frames, this can result in frames being displayed out of order.
Because of all the processing needed to decode previous and next frames, Inter-frame video can cause a lot of problems when imported into a non-linear editing program such as ScreenFlow, iMovie or even Final Cut Pro for editing.
You might see
- Slow searching for and decoding of frames
- Frame-accuracy problems
- Crashing or freezing
- Strange artifacts or blocking on your video
- Error messages or displaying black video
What formats should you use?
Here are some common video formats that you should not edit with (i.e. these use Inter-frame codecs and are better for final delivery):
- XviD, DivX, 3iVX
- MPEG-4 / H.264
- VP6, VP7, VP8
Here are some common Intra-frame formats that are good for editing:
- Uncompressed (file sizes can be very large, though)
- x264 lossless mode
How to check the format of your video:
If you don’t know what format your video is, you can easily check it by opening it in QuickTime. Go to “Windows >> Show Movie Inspector” and then under the heading for “Format,” it will list the codec (DivX, H.264, DV, etc).
How to convert from a delivery to editing format:
If you have video in an Inter-frame codec that you would like to edit, then you should convert it to an Intra-frame codec first.
You could, of course, use Episode, which is professional-quality multiformat transcoding software also produced by Telestream.
Or if you have just one or two videos you need to convert, it might be more cost-effective to do a internet search for a software encoding product that will handle just the format you need to convert.
That’s basically it. So if you find yourself struggling to edit a video in ScreenFlow, check your imported videos, and make sure you’re using editing formats.