Skip to content

baso53/motioncam-fs

 
 

Repository files navigation

MotionCam-FS (FSKit Edition)

A macOS FSKit file-system extension that lets you treat native MotionCam .mcraw files like ordinary disk images.
Mount any .mcraw with a single CLI command—or double-click it through the MotionCamExplorer GUI—browse its full-resolution DNG frames in Finder, and work with them in your favorite editor—no conversion step required.

mount -F -t mcrawfs /path/to/video.mcraw /Volumes/MotionCam

Table of Contents

  1. 🔧 Features
  2. 📋 Requirements
  3. 🏗️ Building from Source
  4. 📦 Installing the Extension
  5. 🚀 Usage
  6. 🖥️ MotionCamExplorer GUI
  7. 🛠️ Troubleshooting
  8. 🤝 Contributing
  9. 📄 License

1. 🔧 Features

  • Native FSKit module – written against Apple’s new FSPathURLResource API (macOS 26+).
  • Read-only, zero-copy access to individual DNG frames inside a .mcraw.
  • FUSE-like workflow but without third-party kernel components—pure user-space.
  • Command-line or GUI (via MotionCamExplorer).
  • Automatic detection of frame rate, resolution and bit-depth metadata.

2. 📋 Requirements

  • macOS 26 or later (FSKit with FSPathURLResource support).
  • Xcode
  • CMake ≥ 3.26.
  • vcpkg for dependency management.

3. 🏗️ Building from Source

# Clone
git clone https://github.com/baso53/motioncam-fs
cd motioncam-fs

# Prepare build directory and generate Xcode project
mkdir build && cd build
cmake -G Xcode .. \
  -DCMAKE_TOOLCHAIN_FILE=$HOME/vcpkg/scripts/buildsystems/vcpkg.cmake

Open MotionCamFuse.xcodeproj and hit Product ▶︎ Build, or build directly:

The resulting .appex is your extension.


4. 📦 Installing the Extension

  1. Register the app extension with the system:

    pluginkit -a MotionCamFuse.appex
  2. Open System Settings to the File System Extensions pane:

    open "x-apple.systempreferences:com.apple.ExtensionsPreferences?extensionPointIdentifier=com.apple.fskit.fsmodule"
  3. Enable MotionCamFuse in the list.
    You might be prompted to grant Full Disk Access the first time.


5. 🚀 Usage

Command-Line

# Mount a .mcraw
sudo mount -F -t mcrawfs \
    /Users/alice/Videos/007-VIDEO_24mm-240328_141729.0.mcraw \
    /tmp/007-VIDEO_24mm-240328_141729.0.mcraw

# Work with the files
open /Volumes/007-VIDEO_24mm-240328_141729.0.mcraw/frame_00042.dng

# Unmount when done
umount /Volumes/007-VIDEO_24mm-240328_141729.0.mcraw

Tips
• The mount point must exist and be empty.
• Only one .mcraw per mount invocation is supported.
• Read-only by design; editing frames in-place is not supported.


6. 🖥️ MotionCamExplorer GUI

Prefer point-and-click? Grab the latest build of MotionCamExplorer from GitHub
➡️ Releases.

  1. Download the .dmg from the Releases page.
  2. Double-click to open it.
  3. Drag MotionCamExplorer.app into Applications.
  4. Launch MotionCamExplorer and simply open any .mcraw file—mounting happens automatically.
  5. Open the MotionCamExplorer by itself to unmount all the mounted files.

8. 🤝 Contributing

Pull requests and bug reports are welcome!

git checkout -b feature/my-awesome-idea
git commit -s -m "Add awesome idea"
git push origin feature/my-awesome-idea

9. 📄 License

Released under the Apache 2.0 License.


About

FSKit implementation for mounting .mcraw files (from Motioncam) with Swift 6 C++ interop

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 79.4%
  • Swift 18.5%
  • CMake 2.1%