Generally speaking, videos uploaded to u2be suffer a drop in quality in the conversion process. This can be offset by uploading in high resolution, but one thing you can’t avoid is the 30 frame per second limit on framerate. This can be problematic for video game footage: Games display at around 60 fps and older hardware may rely on the high frequency for visual effects, and combo videos become difficult to study frame by frame.
Sprite flickering was especially prominent in 2D games to indicate that something was appearing, disappearing, invisible, or invincible. It’s also employed in situations where there are more sprites on screen than the hardware can handle. Dropped frames cause flickering objects to remain solid or disappear entirely. Maj recently reupped his SF? Guile Exhibition in high res, and that’s what happened to the barrel debris in the bonus stage intermission.
Sonic Booms present a similar problem: the animation cycle is in four parts, with the sprite changing on each frame. With half those frames gone, the animation looks incomplete. The difference can be easily spotted at around 1:11 when the Sonic Boom on screen goes from half to fully animated during the KO slowdown. Hadoukens also have a four-part animation, but two frames pass between segments, so losing every other frame makes no discernible difference.
You may be able to reduce the inevitable quality damage by performing the framedrop with your own video editing software before uploading. Let’s examine a short sample clip from the barrel dropping bonus stage in the arcade version of Street Fighter II: Champion Edition. This clip has lots of flickering and high-frequency effects that have the potential to be spoiled: The barrel debris, the scoreboard, the Hadoukens and the rapid-fire punches and kicks.
I’ll be using Avisynth scripts to describe the editing operations. You can use most any video editor to do these things but Avisynth is controlled by plain-text scripts that can easily be shared. Here is the avs script file used for the examples below. Click on the headers to download the video that results after filtering and encoding.
This is what it’s supposed to look like. We want to keep it as close as possible to this after reducing the framerate.
selecteven/selectodd simply keeps every other frame and drops the rest. In this case, even makes the barrels vanish, while odd keeps the debris solid. Actually the solid doesn’t look too bad, except for the fact that player 1’s light-up tally isn’t being shown. (The reason the lights are bright on both sides in the Guile video is that clip is from World Warrior, and the flickering was introduced in CE.) Hadoukens flicker on and off for two frames each, so they appear normal after the frame loss.
Here, the clip is divided into both even and odd frames, then the two sets are mashed together with
merge. Each pair of frames dissolves together like this:
Flickering objects are effectively rendered half transparent and appear a little dim. It’s possible to intensify some objects by weighting the merge operation toward one set, but this would also cause the complementary set to dim and the light-up boards on each side would appear at different brightness. Another downside of any blending is that it blurs all graphical changes. Moving sprites and scrolling backgrounds get smeared out over an extra frame.
Instead of merging even and odd frames, you can alternate them. This can be done by halving the original frames twice and then interleaving. Since there’s no blending there’s no blur, but the animation is a little choppy because an unequal amount of time passes between consecutive displayed frames: Instead of skipping every other frame, it’s alternating between skipping zero and two. This means the flicker effect is preserved (at half rate) in the barrel debris and lights, which change every frame. However, the animation for Hadoukens and rapid fire punches and kicks changes every two frames, so now they are prone to being spoiled. In this case, the Hadoukens are OK but the punches and kicks don’t animate. If the even/odd filter pattern is changed up you can reverse that but something’s going to be broken.
changefps sets the framerate to the specified value by simply deleting frames while maintaining the duration. Youtube’s method is likely to be similar to this. Since the source framerate, at 59.6, is not an exact multiple of 30, the result alternates between showing the even and odd frames, which you can tell from the periodic disappearance of each player’s score display.
Avisynth has a special filter,
convertfps, just for dealing with this kind of problem, but it didn’t work so well. This filter seems to divide the screen into an even domain and an odd domain, with the boundary determined by the third argument,
zone. The result is barrel pieces disappearing at the top of the screen then fading back in at the bottom, and only one player’s scoreboard visible.
Keep in mind that it’s not necessary to do anything if the effects can still be observed at the reduced framerate: In the Guile Exhibition, the debris in the first oil drum clip (9:34) doesn’t flicker properly, but it looks better in the next clip. This is because the second clip is from Hyper Fighting. The random frameskip in HF effectively makes the flickering pattern random and avoids the masking effect of the framedrop.
Has anyone got any other tricks or suggestions on how to deal with this?
Thanks to error1 and Maj for input on this.