1. The Recording Problem in Unreal Engine
Unreal Engine does not ship with a built-in way to record gameplay video in a packaged game. The editor has Movie Render Queue and the Replay System, but neither produces an MP4 that works in a shipping title on all platforms.
This matters because recording video at runtime is a requirement for a growing number of use cases: QA testing, instant replay features, bug reporting, content creation, VR training footage, and CI/CD pipelines. Each of these has different constraints around platform support, performance overhead, and whether the recording happens in the editor or in a packaged build.
The approaches available today fall into five categories. Each solves part of the problem and ignores the rest.
2. Movie Render Queue
Movie Render Queue (MRQ) is Epic's tool for rendering high-quality cinematic sequences. It renders frames at whatever rate it needs, which means it can produce output at higher quality than real-time but takes longer to complete. A 30-second sequence might take 10 minutes to render.
Good for
- Cinematic trailers and marketing materials
- Pre-rendered cutscenes
- Architectural visualization walkthroughs
Does not work for
- Recording gameplay in a packaged game
- Real-time capture (it is not real-time)
- Mobile, VR, or console platforms
- Anything outside the editor
If you need a polished cinematic rendered from a Sequencer track, MRQ is the right tool. If you need to record what a player is doing in your shipped game, it is not an option.
3. Replay System
Unreal's Replay System records network data and gameplay events, then replays them by re-simulating the game. It was built for kill cams and match replays in multiplayer games. It does not produce a video file.
Good for
- Kill cams and match replay viewers in multiplayer games
- Debugging network replication issues
- Free-camera spectator replays
Limitations
- Output is a replay file, not an MP4. Players cannot share a video.
- Requires the game to re-simulate the recorded data. Heavy on memory and CPU.
- Non-replicated state (particles, audio, UI) may not replay accurately.
- Complex to set up for non-multiplayer games.
The Replay System is useful if you want an in-game replay viewer. It is not a video recording solution. If your goal is to produce an MP4 file that a player can upload or a QA tester can attach to a bug report, you need something else.
4. External Tools (OBS, ShadowPlay, Game Bar)
OBS Studio, NVIDIA ShadowPlay, and Windows Game Bar capture video at the OS or GPU driver level. The player or developer installs them separately and runs them alongside the game.
Good for
- Developers recording footage during development on their own PC
- Streamers and content creators who already have OBS configured
Does not work for
- Your players. You cannot ship OBS inside your game.
- Mobile (Android, iOS). No external capture tools exist.
- VR headsets. Screen capture does not reach the eye buffers.
- CI/CD servers. OBS requires a display.
- Programmatic control. You cannot call "start recording" from Blueprints.
External tools solve the problem for the developer sitting at a desk. They do not solve it for the shipped game, automated tests, or any non-desktop platform.
5. FFmpeg Wrappers
Several Marketplace plugins wrap FFmpeg to encode video from within Unreal Engine. They pipe raw frames to an FFmpeg process which encodes and muxes them into a video file.
Good for
- Desktop recording where you can bundle FFmpeg binaries
- Projects that need specific codecs FFmpeg supports
Trade-offs
- Licensing. FFmpeg is LGPL/GPL depending on configuration. Bundling it in a commercial game requires careful legal review.
- Binary distribution. You need to ship FFmpeg executables for each target platform. Console and mobile platforms complicate this.
- Software encoding. Most FFmpeg wrappers use CPU-based encoding (libx264), which competes with the game for CPU time. Hardware encoder access through FFmpeg requires additional platform-specific configuration.
- Crash safety. If the game crashes, the FFmpeg process may not finalize the file. Corrupted output is common.
- Mobile. Running a separate FFmpeg process on Android or iOS is impractical.
FFmpeg wrappers work on desktop if you accept the licensing complexity and CPU overhead. They struggle on mobile, break on crash, and add deployment friction.
6. Native Recording (Runtime Video Recorder)
This approach captures frames directly from Unreal Engine's render pipeline and encodes them using the platform's native hardware encoder. No external process, no FFmpeg, no display required.
Runtime Video Recorder (RVR) is the implementation of this approach. It works by reading frames from the GPU backbuffer or a render target, feeding them to the platform's hardware encoder (Windows Media Foundation on Windows, AVFoundation on Mac/iOS, MediaCodec on Android), and writing the output to an MP4 file.
What this means in practice
Hardware encoding
The GPU's dedicated encoder chip does the work, not the CPU. Near-zero overhead instead of 15-30% with software encoding.
No external binaries
Uses APIs already present on every OS. Nothing to bundle, no license to audit.
Cross-platform
Same Blueprint and C++ API on Windows, Mac, Linux, Android, iOS, and Meta Quest.
Crash safe
Continuous MP4 muxing means the file is valid even if the process terminates unexpectedly.
Recording modes
RVR captures from multiple sources depending on what you need:
Records what the player sees. Works for standard gameplay recording, instant replay, and QA testing.
Records from a scene capture component or render target. Required for VR (where there is no single viewport) and useful for security camera mechanics, picture-in-picture, and multi-camera setups.
Records from a specific camera actor. Useful for cinematic replay angles and spectator views.
Replay buffer (instant replay)
RVR keeps a rolling buffer of the last N seconds of gameplay. When something worth saving happens, call SaveReplayBuffer() and the buffer is written to disk as a complete MP4. No retroactive encoding, no rewinding. The video is ready immediately.
This is how instant replay features, highlight saves, and automated bug capture work. The game is always recording; you just choose when to keep the footage.
7. Full Comparison
| Feature | MRQ | Replay System | OBS / ShadowPlay | FFmpeg Plugin | RVR |
|---|---|---|---|---|---|
| Produces MP4 | EXR/PNG | No | Yes | Yes | Yes |
| Works in packaged game | No | Yes | External | Desktop only | Yes |
| Mobile (Android/iOS) | No | Replay only | No | No | Yes |
| VR (Meta Quest) | No | Replay only | No | No | Yes |
| Hardware encoding | N/A | N/A | Yes | Rarely | Yes |
| Performance overhead | Offline | 10-20% | 5-15% | 15-30% | <1% |
| Blueprint API | Editor only | Yes | No | Varies | Yes |
| Instant replay buffer | No | Yes | ShadowPlay | No | Yes |
| External dependencies | None | None | Separate app | FFmpeg binaries | None |
| Headless / CI-CD | No | Partial | No | Partial | Yes |
| Crash recovery | No | Partial | Partial | No | Yes |
8. Which Method for Your Use Case
"I need a cinematic trailer from a Sequencer animation"
Use Movie Render Queue. It renders at maximum quality with full post-processing, motion blur, and path tracing. Real-time performance does not matter.
"I need a kill cam or match replay viewer in my multiplayer game"
Use the Replay System. It records game state for re-simulation, which lets players scrub through time and change camera angles. If you also need a shareable video, combine it with RVR to encode the replay playback to MP4.
"I'm a developer and I want to record my screen while testing"
Use OBS or ShadowPlay. They're free, well-documented, and work for personal desktop recording. They just don't help with anything you ship.
"I need video recording in my shipped game"
Use Runtime Video Recorder. It is the only option that produces MP4 files from inside a packaged Unreal Engine game across desktop, mobile, and VR platforms without external dependencies.
"I need instant replay, highlight saves, or always-on QA recording"
Use Runtime Video Recorder with the replay buffer enabled. It continuously records the last N seconds and writes to MP4 on demand. No re-simulation, no delay.
"I need video from automated tests in a CI/CD pipeline"
Use Runtime Video Recorder. It runs headless, requires no display, and recovers video even if the test crashes. See the CI/CD guide.
Summary
Movie Render Queue and the Replay System solve specific problems well. External tools work for developer desktops. But if you need actual video recording in Unreal Engine at runtime, across platforms, in a packaged game, there is one tool that does it.
Runtime Video Recorder ships with no dependencies, uses hardware encoders on every platform, handles crash recovery, and provides a Blueprint and C++ API that works identically on Windows, Mac, Linux, iOS, Android, and Meta Quest. It is trusted by Amazon Games and 50+ studios.
Frequently Asked Questions
What is the best way to record video in Unreal Engine?
It depends on what you are building. For offline cinematics, use Movie Render Queue. For shipped games that need video recording at runtime on any platform, Runtime Video Recorder is the only solution that covers desktop, mobile, and VR with hardware encoding and no external dependencies.
Can you record video in Unreal Engine without FFmpeg?
Yes. RVR uses native platform APIs for encoding: Windows Media Foundation, AVFoundation on Mac and iOS, and MediaCodec on Android. There are no FFmpeg binaries, no codec packs, and no GPL licensing concerns.
How do you record gameplay video on mobile in Unreal Engine?
External screen recorders do not work for this purpose on mobile. You need a recorder that captures frames directly from the render pipeline and encodes them on the device. RVR does this on both Android and iOS with the same API you use on desktop.
Does recording video in Unreal Engine affect performance?
The impact varies by method. Movie Render Queue is offline and not real-time. OBS adds 5-15% overhead. FFmpeg wrappers using software encoding add 15-30%. RVR uses hardware encoders on the GPU's dedicated encoding chip, resulting in near-zero overhead. The game's framerate is not affected in any meaningful way.
Can you record VR gameplay in Unreal Engine?
Standard screen capture tools cannot access VR eye buffers. You need to capture from a render target or scene capture component inside the engine. RVR supports render target recording on Meta Quest and other VR platforms, which is the only way to get video from a VR headset without external hardware.