Decode Smacker and Bink Videos with FFmpeg

This article provides a quick guide on how to decode and convert vintage Smacker (.smk) and Bink (.bik) video formats using the FFmpeg command-line tool. You will learn the exact commands required to transcode these classic video game formats into modern, compatible formats like MP4, ensuring you can play or edit them on modern systems.

Understanding Smacker and Bink in FFmpeg

Smacker and Bink are proprietary media formats developed by RAD Game Tools, widely used in video games from the 1990s and 2000s for cutscenes and intro logos. FFmpeg includes native, built-in decoders for both formats. This means you do not need to install any external codecs or third-party tools to read these files; a standard installation of FFmpeg is fully capable of handling them.

How to Convert Smacker (.smk) Videos

To convert a Smacker video to a standard MP4 file (using H.264 video and AAC audio), use the following basic command in your terminal or command prompt:

ffmpeg -i input.smk output.mp4

If you want to extract the video without re-encoding it (lossless copy), keep in mind that modern players cannot play raw Smacker streams inside an MP4 container. Therefore, re-encoding to a modern codec like H.264 is the recommended approach.

How to Convert Bink (.bik) Videos

Bink videos can be converted in the same straightforward manner. Run the following command to convert a Bink file to MP4:

ffmpeg -i input.bik output.mp4

Handling Multiple Audio Tracks in Bink Files

Bink files often contain multiple audio tracks for different language localizations or surround sound channels. By default, the basic command above will only copy the first audio track.

To merge all audio tracks or select a specific one, you can use FFmpeg’s mapping options.

To inspect the file and see all available audio streams, run:

ffprobe input.bik

To convert the video and map a specific audio track (for example, the second audio stream, which is index 1):

ffmpeg -i input.bik -map 0:v:0 -map 0:a:1 output.mp4

Batch Converting Multiple Files

If you are extracting videos from a game directory and have dozens of files to convert, you can automate the process.

On Windows (Command Prompt):

for %i in (*.bik) do ffmpeg -i "%i" "%~ni.mp4"

On Linux / macOS (Bash):

for f in *.bik; do ffmpeg -i "$f" "${f%.bik}.mp4"; done

These commands will search the current directory for all Bink files and convert them to MP4 files with their original filenames. Replace .bik with .smk in the scripts to process Smacker files instead.