Action Footage Player

Action Footage Player · a free, open-source alternative to the maker's app

Take back control of your action camera footage.

Love your camera, but not its app? Keep using the app for settings and updates, and let Action Footage Player take care of your footage. Open the folder on your computer and watch it all on a big screen, with the light and color as you saw them. No account, no feed, no look you didn't choose.

Early alpha Used daily with DJI Osmo Action 6 Made by a diver in Geneva, Switzerland Free · donations welcome
Camera default In the player · full range
Drag to compare. Drawn illustration, not real footage: a web page can't show what your screen does with the real clip.

What you get back

Your footage, on your terms.

Your files

No account, no cloud, no feed. Plug in the card or copy the folder, and open it. Action Footage Player only reads your originals.

Your screen

Watch on your computer, not squinting at a phone. When you want a clip on your phone or TV, export it in one step.

Everything your camera saw

Your action camera sees more than its default mode keeps. Let your screen show it: a sunset, a bright day on the water, a dive, just as you saw them.

Your look, or none

Nothing is styled for you. Clips play and export natural, so you can add a look later in the editor you like. A look baked into a file can't be taken out.

Your whole archive

Years of clips play as they are, stabilized while they play, without rendering a copy of each one first.

All your cameras

One player for footage from DJI, GoPro and Insta360, instead of one app per camera maker. Support varies by model; see Cameras.

The full range

Turn off your camera's compatibility mode. Capture the scene in all its beauty.

Your camera aims for the average screen

Most cameras are built for standard screens. By default, every clip is processed to look good right away on an average phone or office screen. Modern cameras squeeze a scene's range cleverly, but they have to make trade-offs, and the clip can no longer use the extra brightness and color that most phones and TVs can show (that is what HDR means). In effect, the default mode is a compatibility mode.

The full range, now for everyone

Most of these cameras can also keep the full range, but it hides behind a pro setting called log, and getting a natural look from it on those screens used to take professional software. Action Footage Player does it as you press play, so a sunset, a sunny day, a dive or any high-contrast scene looks the way you remember it.

The trade-off, plainly

Most apps show log clips flat and grey, so you watch them in Action Footage Player or export them first. And on standard screens, even through it, log looks a little worse than the camera's default mode. You give up a little convenience and some sharing quality to keep the moment in full. A scene-aware conversion for standard screens is on the roadmap, and it will apply to the log you have already shot.

How it works

Three steps, and the second one is a double-click.

  1. Shoot in log

    If you watch on HDR screens, set the camera to D-Log M (or GP-Log, I-Log). Under water, also turn EIS off so the camera keeps recording motion data.

  2. Double-click a clip

    It opens in HDR, stabilized, with the telemetry the camera recorded. Highlights you marked with the camera's button show up on the seek bar.

  3. Share a moment

    Press l twice to mark a part, then Shift+E. You get an HDR file that iPhones, Macs and YouTube show correctly.

What it does

Everything happens while the clip plays.

Log in true HDR

D-Log M, GP-Log and I-Log are decoded with the makers' own curves and shown as HDR, with no look added: the scene's brightness relationships stay as they were. Made for HDR screens: that is where log beats the camera's default mode.

D-Log M · GP-Log · I-Log (10-bit)

Stabilized during playback

Built on Gyroflow's engine and the motion data your camera already writes into every clip. Nothing is rendered before you can watch. Three modes: stabilization with crop, stabilization with filled edges, or off.

gyro + accelerometer from the file

Telemetry on screen

Depth, GPS, speed, altitude and exposure appear when the camera recorded them. Fields the clip doesn't have stay hidden.

depth · GPS · speed · ISO · shutter

One-key export

The part you're watching is exported as you see it, stabilization included, in one pass. You get a natural HDR file to share or to adjust to your taste. Exports pause while you play and resume when you stop.

HEVC Main10, HLG · or ProRes 422 HQ

Highlights on the seek bar

Moments you marked with the camera's highlight button become markers. Jump between them instead of scrubbing an hour of footage.

Ctrl+] next · Ctrl+[ previous

Originals stay as they are

Action Footage Player only reads your files. Exports go to a separate stabilized/ folder next to the clip.

read-only on your footage

Your archive

Old trips play stabilized, without re-rendering anything.

Stabilizing footage usually means rendering a new copy of every clip first. Here the stabilization is applied as the video plays, so a folder of old dives is ready to watch as it is.

You want toRender-first workflowAction Footage Player
Watch an old dive, stabilizedOpen the clip, render a copy, wait, open the copyOpen the folder and press play
Go through a terabyte of footageHours of rendering, and new files that take extra spaceNothing is rendered; the originals stay where they are
Find the moment you rememberRender first, then searchScrub through footage that is already steady
Get a file to shareYou always end up with a copyOnly for the parts you export

The stabilization itself comes from Gyroflow, which does this beautifully. Action Footage Player adds playback in real time, HDR from log and telemetry on top, so you can skip the render step when all you want is to watch.

Under water

Steady footage below the surface.

You already know in-camera stabilization falls apart under water. Turn EIS off, keep shooting, and let Action Footage Player stabilize from the motion data, with a correction for how water bends light through the lens.

Tuned for water by default

The default preset accounts for refraction at the dome port. Above water, DJI's own EIS works well, and a preset without refraction is there for EIS-off clips shot in air.

Depth where the camera records it

The Osmo Action 6 logs depth and water status. Turn the readout on and off with Ctrl+t.

Everything for divers on one page →

Frame-to-frame jitter, one test clip

0.16→0.02px

Measured on a single EIS-off clip from an Osmo Action 6, before and after stabilization.

refraction index
1.33
smoothing
0.5
max zoom
140 %
horizon lock
off

Cameras

What works today.

Action Footage Player is developed against real footage from one camera. Everything else is supported in code and waits for someone to try it on their own clips.

CameraStatusNotes
DJI Osmo Action 6VerifiedLog, stabilization, depth telemetry and HDR export, used daily.
DJI Osmo 360ExpectedShould work; not yet checked on real footage.
GoPro HERO12, HERO13, MAX2ExpectedGP-Log and stabilization are in place; not yet checked on real footage.
Other DJI cameras
Action 4, Action 5 Pro, Pocket 3…
PartialStabilization expected; their log is not supported yet.
Insta360, single lensPartial10-bit I-Log, chosen by hand. 8-bit I-Log is not supported.
DJI dronesPartialLog by choosing the curve by hand; stabilization needs a Gyroflow project.

Have one of the cameras marked Expected or Partial? A short sample clip in a GitHub issue is the fastest way to move it to Verified.

Keyboard

The keys you'll actually use.

Mark a part to exportl twice
Export it (press again to cancel)Shift+E
Stabilization: cropped, filled edges, offCtrl+g
Telemetry on or offCtrl+t
Maker's official SDR look, and backCtrl+s / Ctrl+h
Next or previous highlightCtrl+] / Ctrl+[
Noise reduction on or offCtrl+n
Open this clip in GyroflowCtrl+e

Questions

Before you download.

Do I need an HDR screen?

Yes, if you want the benefit. Log pays off when you, and most of the people you share with, watch on HDR screens: recent iPhones, MacBook Pros, HDR TVs and monitors.

On a standard screen, a log clip looks worse than the same scene recorded in the camera's default mode. That is true whether macOS tone-maps it automatically or you switch to the camera maker's official SDR conversion (its Rec.709 LUT) with Ctrl+s. The camera makers' own processing adapts to each scene and keeps bright what most likely matters in it. Getting the same result from log takes professional grading software and a colorist.

So if you mostly watch and share on standard screens, record in the default mode. If you and your audience have HDR screens, record in log.

For clips you mainly share to standard screens, you can still use the camera maker's app. A scene-aware SDR conversion in Action Footage Player is on the roadmap: squeezing the range always takes decisions, and the aim is to keep the result as close as possible to the full-range version rather than add a look of its own. When it lands, the log footage you have already shot gets better too.

I dive and snorkel. Do I need this?

Yes. Under water, log played in HDR is clearly better than the camera's default mode, especially on recent cameras. The difference is night and day. A dive scene runs from bright light at the surface to dark blue at depth, and the default mode has to squeeze all of it into a standard screen, with trade-offs along the way.

On top of that, you get stabilization that works under water (turn EIS off when you shoot) and the depth readout, if your camera records it.

Who needs the stabilization in the player?

If you shoot above water with the camera's stabilization (EIS) on, you probably don't: in-camera EIS does a good job in air.

It's for clips shot with EIS off. Under water, where in-camera EIS fails, that is the way to shoot. It also covers clips where you turned EIS off for the widest view, and archives full of such footage. The camera still records its motion data, and Action Footage Player uses it while the clip plays, with a choice of stabilization with crop, stabilization with filled edges, or off.

One exception: on GoPro HERO8 and newer, you can leave HyperSmooth on under water. Its result won't be perfect, and the player stabilizes it further from the same motion data. On HERO5, HERO6 and HERO7 Black, HyperSmooth has to be off. (This follows Gyroflow's camera notes; GoPro footage in the player is still waiting to be verified.)

Which computers does it run on?

Mac: Apple Silicon with macOS 15 or later. Windows: 10 or 11 on 64-bit Intel or AMD.

Both apps are not signed yet. On a Mac, allow it once in System Settings, Privacy & Security, Open Anyway. On Windows, SmartScreen shows a warning on first launch.

Does it change my original files?

No. Action Footage Player only reads them. Exports are written to a stabilized/ folder next to the clip.

What does an exported file look like?

An HEVC Main10 file tagged as HLG, which iPhones, Macs, most HDR TVs and YouTube display as HDR. If you edit afterwards, ProRes 422 HQ is available as an option.

The file has no look added, so it is a natural starting point: adjust it to your taste in an HDR-capable editor such as iMovie. A look that is baked into a file can't be taken out again: shadows pushed to black stay black.

Why not just use the camera maker's app?

Use it if you like its look. Phone apps are great for quick edits, and some can now show and export log as HDR. That HDR tends to be styled for social media: exposure that shifts as the scene changes, brighter mid-tones, strong local contrast, deep shadows pushed to black.

Action Footage Player does the opposite: a direct conversion from log that keeps the scene's brightness relationships and adds no look of its own, so the clip looks the way the scene did. You can always add a look later; you can't take one out.

It also runs on your computer, plays your whole archive as it is, works with footage from several camera makers, and stabilizes while it plays.

Is it really free?

Yes. It's open source under GPL-3.0, and the code is on GitHub.

Once in a while Action Footage Player will offer you to make a voluntary donation. You can skip it, or ask it never to remind you again. Nothing is locked either way.

Help it grow

It gets better with your footage.

Test your camera

Open an issue with your camera model and a short sample clip. That is how cameras move from Expected to Verified.

Open an issue on GitHub

Tell a diving friend

Most people who need this have never heard of it. A message in your dive club's chat does more than any ad.

Share the project

Star the repository

Stars help other people find the project when they search for log, HDR or Gyroflow.

Star on GitHub