An AVI file's stream header for a video stream (at least for uncompressed video) is a BITMAPINFOHEADER structure. The height of the video specified in this structure is a SIGNED value, but VLC mistakenly treats it as UNSIGNED. The sign of the value has to do with vertical flipping. As with normal BMP still images, an AVI video with a positive height indicated in the BITMAPINFOHEADER structure is drawn from the bottom up, while if the BITMAPINFOHEADER height is negative it's drawn from the top down. Due to the BITMAPINFOHEADER height field being treated being incorrectly treated as an unsigned value by VLC, when this field has a negative value (such as -480) VLC sees it as a HUGE positive number (it sees -480 as 4294966816). This causes VLC player to consider it an invalid video file, due to the huge height, and it refuses to play the video.
VLC Player developers, please fix this bug. This bug prevents it form playing any uncompressed RGB AVI file that is output by FFMPEG, as FFMPEG always outputs these uncompressed RGB AVIs with a negative value in the BITMAPINFOHEADER height field, to force any player that plays it to draw from the top down.