-
Notifications
You must be signed in to change notification settings - Fork 29
Creating Bink Movies for the Mass Effect Trilogy
by Audemus
This guide is intended as an overview and tutorial for those interested in creating pre-rendered cutscenes and loading screens for the Mass Effect Trilogy. I will be covering both OT and LE, though the process is mostly the same for both. Please note: This guide does not include information about how to set up new videos via sequencing - it is only for replacing existing videos.
This guide also assumes you have at least basic working knowledge of video editing and have already prepared your input video. If you’re looking to edit existing videos, we have the entire "A Lot of Videos" archive backed up online via the Adobe ProRes format (extremely high bitrate), and I’d be happy to grant access to anyone who wants to use it.
Unlike most tutorials here, Legendary Explorer is not required. Instead, you will need the Bink Compressor, which is part of RAD Tools, which is what we will be using to create our .BIK file.
Bink Video is a proprietary video file format created by RAD Game Tools. Many, many games use this format due to the fact that the Bink codec is well-suited for low-performance overhead and file size, making it particularly useful for use on a wide range of hardware (namely consoles). The Original Trilogy uses Bink 1, while Legendary Edition uses Bink 2 (which was released in 2013). LE is also backwards compatible in regards to Bink 1, but Bink 2 videos cannot be loaded in OT.
While the Bink 1 compressor has always been publicly available, the Bink 2 codec was restricted to those who had purchased a very expensive license. However, in 2021 Epic Games bought RAD Tools and folded Bink Video into Unreal Engine development, meaning a free-to-use Bink 2 compressor is now accessible via the Unreal Engine development kit. However, there’s a catch to this regarding LE functionality, which I’ll cover in the Bink 2 portion of this guide.
You can download the public Bink 1 version of Rad Tools below. This can be used to encode Bink videos for OT, and LE if you wish (but I recommend using Bink 2 if you're modding Legendary Edition).
RAD Video Tools: Archive Password: RAD
Let’s start off by exploring the software itself. The top and side buttons are fairly self-explanatory - those are your navigation buttons. At the bottom are our functionality buttons. An overview of what each of these does can be found right here.
Using this software, you can:
- Convert a Bink video to a variety of file formats (including PNG/JPG image sequences, AVI, MP4, WAV, and more).
- Encode an image sequence or video into a Bink (.BIK) file.
- Mix in audio tracks (or remove audio tracks).
- Play Bink Video under a variety of advanced conditions such as forced frame rate, resolution, loop, playlist, and display playback statistics.
- Analyze data rate to see bytes per frame across the timeline, and spot data spikes.
- View file info (such as specific Bink codec version, resolution, frame count, frame rate, and data rate breakdowns).
- Batch encode via command line.
Before we look at encoding the video itself, first make sure that your input video is in a suitable codec. I would recommend MP4 or Quicktime formats such as ProRes. Try to avoid old, antiquated file formats like WMV or AVI. You can also input an image sequence if you want, as long as you set the output frame rate in the settings below.
When you open up the Bink Compressor, you’ll be confronted with a lot of settings. The good news is that most of these can be ignored. Unless you need to do something very advanced, the only thing you should need to touch are the Compression Settings. I highly recommend using specific rates.
When working on ALOV, we did a lot of testing with the Bink codec to figure out the ideal data rate for various resolutions. These are represented in Bytes. I’ll provide our bitrates (along with approximations of BioWare’s vanilla ones) for reference, but first a couple of disclaimers:
First, the Bink 1 codec is very old. It’s not designed for things like 4K 60fps input video. Encoding Bink 1 videos at that quality requires a very high bitrate and a powerful CPU (minimum Intel i7-4770 @ 3Ghz or equivalent). Bink 2 is roughly 60% more efficient and much more forgiving in terms of overhead, but just keep these factors in mind when choosing your input resolution, frame rate, and bitrate.
Second, there appears to be a strange bug in OT where certain resolutions will result in strange visual bugs. For example, 1920x1080 will result in the chroma channels being offset, giving you a really ugly form of chromatic aberration. In ALOV, we fixed this in the 1080p version by using the next highest 16:9 resolution (2048x1152). This doesn’t appear to be an issue in LE, however.
VANILLA OT - 720p (Bink 1)
Data Rate: 1500000 (1.5MB/s)
Peak Data Rate: 2000000 (2MB/s)
ALOV OT - 1152p (Bink 1)
Data Rate: 3000000 bytes (3MB/s)
Peak Data Rate: 3700000 bytes (3.7MB/s)
ALOV OT - 2160p (Bink 1)
Data Rate: 8000000 bytes (8MB/s)
Peak Data Rate: 10000000 bytes (10MB/s)
VANILLA LE - 1620p (Bink 2)
Data Rate: 1500000 (1.5MB/s)
Peak Data Rate: 2000000 (2MB/s)
VANILLA LE - 2160p (Bink 2)
Data Rate: 3000000 bytes (3MB/s)
Peak Data Rate: 3500000 bytes (3.5MB/s)
ALOV LE - 2160p (Bink 2)
Data Rate: 4000000 (4MB/s)
Peak Data Rate: 5000000 (5MB/s)
I would recommend using ALOV’s numbers as a guide for what you should be using if your focus is on quality. Otherwise, you can use the Vanilla numbers. Obviously, higher resolutions and frame rates will require higher bitrates, so choose your data rate carefully.
If you’re working with multiple videos and want to queue up commands, you can use the RAD Batch Editor. Here’s an example:
cd E:\LE1
Binkc artifact_movie_01.mov "E:\Output Folder\artifact_movie_01.bik" /v100 /d3000000 /m3700000 /o /l-1 /p32 /(1920 /)1080
Binkc Citadel_Est.bik New_Citadel_Est.bik /v100 /d3000000 /m3700000 /o /l-1 /p32
Binkc GLO_01_Relay.bik New_GLO_01_Relay.bik /v100 /d3000000 /m3700000 /o /l-1 /p32
Binkc sunset.bik New_sunset.bik /v100 /d3000000 /m3700000 /o /l-1 /p32
This batch command tells the program to locate a folder containing 3 input .MOV videos and to output the Bink Videos to another folder. Let’s break down the command arguments:
- cd = Set the input folder location. This will be followed by something like C:\Users\ModdingGod69\Desktop\Videos
- Binkc = Run Bink Compressor
- artifact_movie_01.mov = Input video name
- "E:\Output Folder\artifact_movie_01.bik" = Output location and file name/type
- /v = The /v command is currently unknown to me. I’ve always seen it set to /v100.
- /d = Data Rate
- /m = Peak Data Rate
- /o = Automatically Overwrite if a matching file name is in the output folder
- /l = Audio Compression Level. -1 = No Audio/Remove Audio. 0 = Lossless. 99 = Very Lossy
- /p = Preview Frames for Bandwidth Allocation (Min 2, Max 64)
- /( = Horizontal Resolution (Only used if output is being scaled to a different resolution than input)
- /) = Vertical Resolution (Only used if output is being scaled to a different resolution than input)
You do not have to type all of this out manually. Clicking the Batch button in the Bink Compressor, Converter or Audio Mixer (located directly underneath the "Bink" button) will automatically generate a line with your chosen settings. Here are the rest of the command arguments I’m aware of:
- BinkConv = Run Bink Converter
- BinkMix = Run Bink Audio Mixer
- /z = Alpha Plane Setting. This should always have a value of /z200
- /s = Start Frame Range
- /e = End Frame Range
- /f = Force (No Adding/Removing) Frame Rate
- /a = Adjust (Adds/Removes) Frame Rate
- /x = Left Crop
- /y = Top Crop
- /w = Width Crop
- /h = Height Crop
If you’re interested in converting an existing video to a format for video editing, you can use the Convert a file button to open up the Bink Converter. From here you can set the Output Type to a variety of formats. I would personally recommend a PNG sequence if you want raw output without loss of quality. Otherwise, MP4 is the most convenient output. Additionally, if a video has an audio track (for example GLO_01_Relay.bik from ME1) you can convert it to WAV to extract the audio.
Additionally, there are options for scaling, cropping, frame rate control, and exporting a specific frame range. I would recommend leaving all image control options blank as there’s no way to preview those changes before export and making those adjustments in video editing software is far more reliable and convenient.
If you’d like to add/remove audio tracks, you can use the Mix in Sound button to open up the Bink Audio Mixer. Your input sound file can be anything that has an audio track (be that an audio file like WAV/OGG, a video file like MP4/MOV, or even a Bink Video with audio like BIK/BK2). Putting a - in the input box will remove any existing audio track instead.
Mass Effect does not make use of multiple audio tracks, so make sure you only mix one mono/stereo track. I also recommend setting the compression level to 0, as the difference it makes to file size is negligible.
You can use the advanced settings if you wish to control audio format and input, but in my years of using this software, I’ve never needed to use those options.
Not many modders have attempted creating Bink 2 videos for Legendary Edition, but I'm happy to say that it's possible to do. There’s simply a certain procedure that has to be followed in order to get these videos working in-game. Allow me to explain:
BioWare created all of the videos in LE using a specific version of the Bink 2 compressor. This version is 2.7q from Sep 2020. The version that we are using for our tooling is 2022.05. Since our compressor is much newer, videos that are encoded with it will not work automatically in-game. In order for them to work, we need to replace the bink2w64.dll with the 2022.05 version, which is supported as of ME3Tweaks Mod Manager 8.1.
We previously used older, more hacky methods to get this to work, but now that we have the 2022.05 functionality, creating Bink 2 videos for LE is incredibly simple. So let’s create some Bink 2 videos!
As I mentioned earlier in this guide, the Bink compressor you can download from RAD Tools’ site is the free, Bink 1 version. The Bink 2 compressor can be downloaded as part of Unreal Engine, but it MUST be 2022.05. If you'd prefer to get it from the official source, you'll need to download Unreal 4.27 via the Epic Games Launcher. Once downloaded, Navigate to UE_4.27\Engine\Binaries\ThirdParty\Bink where you'll find Bink2ForUnreal.exe. You only need this file, so you can copy it elsewhere and delete everything else you just downloaded. However, it's unlikely that 2022.05 will be accessible from Unreal Engine forever, so here is a link to download the specific compressor we need:
The first thing you might notice when opening up the Bink 2 version of this software is that it’s a little less feature-rich than the free version. To my great disappointment, the Batch feature is missing, but that’s probably less important to those of you not trying to encode 100s of videos at a time. Otherwise, the software is pretty much identical.
When running the Bink 2 Compressor, you’ll also notice the main difference is that you have an option between Bink 2 and Bink 2 HDR. I don’t yet know if Bink 2 HDR will work as I haven’t used it yet. All of LE’s videos are standard Bink 2 however and are not HDR. There are also 3 new options for deblocking, VAQ (Variance Adaptive Quantization) and Video Slices. If you’re interested in really fine-tuning your output, you can change these options, but I would recommend leaving these at default as they’re already set for high-quality input.
Once we’ve set up our output settings and have our shiny new Bink 2 video, we can begin converting it for use in LE.
If you've decided to mix an audio track into your video, then scroll up to the Mixing in / Removing Audio section for details on how to use this tool.
That’s the easiest part! First, make sure that you change the file extension of your video from .BK2 to .BIK
Then, simply create a folder inside your DLC mod called Movies and place any BIK files inside. If the video is named the same as a vanilla video and your mod is mounted higher, your one will load instead, just like .PCC files.
Disclaimer: It's not possible to override Movies inside of ME1 DLC mods. It will work for LE1, but not OT. In that instance, you would have to directly replace the files in the BASEGAME Movies folder, or place your uniquely named .BIK file in that directory as well.
Some of the videos in the Mass Effect trilogy are smaller video files known as TextureMovies. Under the hood, they're functionally identical to other Bink files but they're stored inside TFCs in the same way that textures are. These videos are used inside the game world on various screens and displays. For example, the Eden Prime distress call in ME1's prologue is composed of TextureMovies.
While this guide is not intended to dive into the specifics of package file modding, I will note that it is possible to replace these videos with MassEffectModder (packaged just like a texture mod) since TextureMovies have an attached CRC hash, or replace them in .PCC files.
And that's about it! I hope this guide was clear and helpful. Please let me know if anything was unclear or if I missed anything. Happy modding!