If you've tried to play a video on the Superconference badge, you'll find out right away that the default firmware is very picky about which .avi's will play and which ones won't. If you have ffmpeg installed on your system, it's (relatively) easy to generate a video file that'll play on the badge.
First things first - let's find out the encoder settings used on the default splash.avi file.
ffprobe splash.avi
ffprobe version 3.4 Copyright (c) 2007-2017 the FFmpeg developers
built with Apple LLVM version 9.0.0 (clang-900.0.37)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.4 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-gpl --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-opencl --enable-videotoolbox --disable-lzma
libavutil 55. 78.100 / 55. 78.100
libavcodec 57.107.100 / 57.107.100
libavformat 57. 83.100 / 57. 83.100
libavdevice 57. 10.100 / 57. 10.100
libavfilter 6.107.100 / 6.107.100
libavresample 3. 7. 0 / 3. 7. 0
libswscale 4. 8.100 / 4. 8.100
libswresample 2. 9.100 / 2. 9.100
libpostproc 54. 7.100 / 54. 7.100
Input #0, avi, from 'splash.avi':
Duration: 00:00:01.84, start: 0.000000, bitrate: 9870 kb/s
Stream #0:0: Video: rawvideo, bgr24, 128x128, 10048 kb/s, 25 fps, 25 tbr, 25 tbn, 25 tbc
We can see it's an .avi container with a 128x128 25 fps rawvideo encoded bgr24 video. I created a 128x128 25fps sequence in Premiere Pro, dropped my target video onto it, scaled/edited it as necessary and exported an x264 video. To convert this to an .avi that'll play on the badge,
ffmpeg -i rick_roll.mp4 -f avi -pix_fmt bgr24 -an -c:v rawvideo -fflags +bitexact rick.avi
-i specifies your input, -f specifies .avi container, -pix_fmt bgr24 instead of yuv, -an disables the audio, -c:v rawvideo chooses the rawvideo codec, -fflags +bitextract prevents ffmpeg from setting the encoder metadata (took me too long to solve this) and then rick.avi for the output file name. ffprobe on the resulting file:
ffprobe rick.avi
ffprobe version 3.4 Copyright (c) 2007-2017 the FFmpeg developers
built with Apple LLVM version 9.0.0 (clang-900.0.37)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.4 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-gpl --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-opencl --enable-videotoolbox --disable-lzma
libavutil 55. 78.100 / 55. 78.100
libavcodec 57.107.100 / 57.107.100
libavformat 57. 83.100 / 57. 83.100
libavdevice 57. 10.100 / 57. 10.100
libavfilter 6.107.100 / 6.107.100
libavresample 3. 7. 0 / 3. 7. 0
libswscale 4. 8.100 / 4. 8.100
libswresample 2. 9.100 / 2. 9.100
libpostproc 54. 7.100 / 54. 7.100
Input #0, avi, from 'rick_roll_2.avi':
Duration: 00:03:32.04, start: 0.000000, bitrate: 9835 kb/s
Stream #0:0: Video: rawvideo, bgr24, 128x128, 9832 kb/s, 25 fps, 25 tbr, 25 tbn, 25 tbc
Looks exactly like we want the output to. Now we can play any video we want on our badges!
This is awesome. I wasted several hours trying to get ffmpeg to output the proper format and never figured it out. Thanks for posting the solution!