Capture everything in high quality :)
⚠️ Public BetaNessStudio 2.0.0 is a major architecture update. The current generation is focused on native screen capture, independent recording tracks, reliable session metadata, recording previews, and FFmpeg-based export workflows.
NessStudio is a Windows-native recording application capable of capturing your screen, webcam, microphone, and system audio.
It is ideal for tutorials, classes, onboarding, technical support, product demos, software demonstrations, gameplay clips, and quick everyday recordings.
- Windows-native screen capture: screen recording is powered by Windows Graphics Capture (WGC).
- Native muxing path: screen output is encoded and muxed through NessMuxer.
- Independent capture channels: screen, webcam, microphone, and system audio can be recorded alone or together.
- Draw Area support: capture a full monitor or a custom screen region.
- Draw Area overlay: custom-region recordings display a visual capture overlay while recording.
- Pause / Resume: pause and continue active sessions without losing the recording state.
- Master Session Clock: sessions store a real start time, stop time, and duration reference for better export sync.
- Recording previews: thumbnails are generated from the screen track first, with webcam fallback.
- Project library: recent recordings can be opened, exported, or deleted from the home screen.
- FFmpeg export: generate final MP4, MKV, MP3, WAV, or separated editing tracks from a recording session.
- Diagnostics: optional debug logs help validate capture behavior and troubleshoot issues.
A recording session may contain one or more of these tracks:
| Source | Output |
|---|---|
| Screen | screen.mkv |
| Webcam | webcam.mp4 |
| Microphone | mic.wav |
| System audio | system.wav |
| Metadata | manifest.json and session.manifest.json |
| Preview | preview.png when a video track exists |
Audio-only sessions are supported. In that case, no visual preview is generated.
NessStudio 2.0.0 adds a dedicated export workflow based on the recording manifest.
Create one shareable file from selected video and audio sources.
Supported video layouts:
| Layout | Description |
|---|---|
| No video · Audio only | Exports only the selected audio tracks |
| Screen only | Exports the screen track |
| Webcam only | Exports the webcam track |
| Screen + Webcam · Picture-in-picture | Places webcam over the screen |
| Screen + Webcam · Side by side | Places screen and webcam next to each other |
Supported audio modes:
| Mode | Description |
|---|---|
| No audio | Exports video without audio |
| Microphone only | Uses only mic.wav |
| System audio only | Uses only system.wav |
| Microphone + System audio | Mixes both audio tracks |
Supported containers:
| Container | Use case |
|---|---|
| MP4 | Recommended video export |
| MKV | Video export with Matroska container |
| MP3 | Audio-only export |
| WAV | Audio-only lossless export |
Supported quality presets:
| Type | Presets |
|---|---|
| Video | Fast, Balanced, High quality |
| MP3 | 128 kbps, 192 kbps, 320 kbps |
| WAV | 44.1 kHz / 16-bit, 48 kHz / 16-bit, 48 kHz / 24-bit |
Export synchronized editing assets into a folder:
| Output | Description |
|---|---|
screen.mp4 |
Screen track converted/copied for editing |
webcam.mp4 |
Webcam track copied for editing |
audio_mix.wav |
Mixed microphone/system audio |
Screen (WGC) ──→ WgcScreenCapturePipe ──→ NessMuxerWriter ──→ screen.mkv
Webcam (WinRT) ──→ MediaCaptureWebcamSession ─────────────────────→ webcam.mp4
Mic (WASAPI) ──→ MicCaptureService ─────────────────────→ mic.wav
System (WASAPI) ──→ SystemLoopbackService ─────────────────────→ system.wav
Session clock ──→ StartedAtUtc / StoppedAtUtc / DurationMs
Manifest writer ──→ manifest.json + session.manifest.json
Project ingest ──→ preview.png + local project database
Export service ──→ FFmpeg final output / separated tracks
The screen track uses NessMuxer as the encoding and muxing backend. NessMuxer.dll is a standalone native C library used by the screen recording pipeline.
FFmpeg is used for export only. The application no longer depends on FFmpeg as the main screen-recording engine.
Version 2.0.0 is a major update over the original 1.0.0 release.
- Replaced the old FFmpeg-based recording path with a Windows Graphics Capture pipeline.
- Added
WgcScreenCapturePipefor screen capture. - Added
NessMuxerInteropandNessMuxerWriterfor native screen encoding/muxing. - Added Media Foundation helpers for thumbnail generation and video metadata reading.
- Added a persistent screen capture session with improved pause/resume behavior.
- Added a recording warmup fix so the screen track does not start late after pressing record.
- Screen, webcam, microphone, and system audio now behave as independent tracks.
- Screen output is stored as
screen.mkv. - Webcam output is stored as
webcam.mp4. - Microphone output is stored as
mic.wav. - System audio output is stored as
system.wav. - Audio-only recordings are valid sessions.
- Added manifest version 2.
- Added
StartedAtUtc,StoppedAtUtc, andDurationMs. - Added per-track metadata for screen, webcam, microphone, and system audio.
- Added crop metadata for Draw Area recordings.
- Preserved compatibility by writing both
manifest.jsonandsession.manifest.json.
- Added a real session-duration reference independent of individual track lengths.
- The app records the true start/stop time of the recording session.
- Export uses the session duration when available to reduce timing drift between video and audio.
- Added a visual overlay for custom region recordings.
- Overlay appears during recording, hides on pause, returns on resume, and closes on stop.
- Added protection for invalid Draw Area selections that span multiple monitors or fall outside the selected screen.
- Added a dedicated Export Recording window.
- Added Single file export.
- Added Separate tracks export.
- Added MP4 and MKV video export.
- Added MP3 and WAV audio-only export.
- Added screen-only, webcam-only, picture-in-picture, and side-by-side layouts.
- Added microphone/system audio mix controls.
- Added audio quality presets for MP3 and WAV.
- Added validation to prevent empty exports, such as “no video + no audio”.
- Added FFmpeg discovery under
Native/FFmpeg/ffmpeg.exe.
- Replaced the old delete-only action with a more complete options menu.
- Added Open, Export, and Delete actions for recent recordings.
- Improved thumbnail loading and fallback behavior.
- Improved project deletion flow.
- Recording previews now prefer
screen.mkvfirst. - If no screen track exists, previews fall back to
webcam.mp4. - Audio-only recordings intentionally show no visual preview.
- Added recording preferences persisted as JSON.
- Added selectable FPS options.
- Added selectable countdown timer options.
- Added debug log toggling from the About window.
- Added performance/diagnostic helpers for recording validation.
- Updated the Home screen visual style.
- Updated the Menu/sidebar visual style.
- Updated Recent Recordings cards.
- Updated About screen.
- Updated Recording screen.
- Updated Saving Recording screen.
- Updated Splash screen.
- Added a modern dark theme with rounded panels, improved spacing, and consistent red accent styling.
- Removed old FFmpeg recording helper classes from the previous pipeline.
- Added the
Recording/namespace with session, WGC, Media Foundation, and NessMuxer-related components. - Added
View/ExportScreen. - Added
View/DrawAreaScreen/CaptureOverlayWindow. - Added
View/SavingRecordingScreen. - Added new image assets for detected track cards and export UI.
- Updated project settings to target
net8.0-windows10.0.19041.0.
Requirements:
- Windows 10 or 11 x64
- Visual Studio Community 2022 or newer
- .NET 8 SDK / runtime support
- .NET desktop development workload
Steps:
- Clone the repository.
- Open
NessStudio.slnin Visual Studio. - Make sure
NessMuxer.dllexists underNessStudio/Native/NessMuxer/. - For export support, place
ffmpeg.exeunderNessStudio/Native/FFmpeg/ffmpeg.exe. - Build and run the project with
F5.
The native NessMuxer.dll dependency is copied to the output directory during build. FFmpeg is used by the export workflow and is copied when present.
Recording Folder/
├─ screen.mkv
├─ webcam.mp4
├─ mic.wav
├─ system.wav
├─ manifest.json
├─ session.manifest.json
├─ preview.png
└─ Exports/
├─ recording_export.mp4
└─ recording_tracks/
├─ screen.mp4
├─ webcam.mp4
└─ audio_mix.wav
NessStudio 2.0.0 is ready for public beta testing, but it should still be labeled as beta.
Areas still worth testing before calling it stable:
- Long recordings with screen + webcam + microphone + system audio.
- Screen frame pacing and timeline seek behavior in
screen.mkv. - Export sync on longer gameplay or tutorial sessions.
- Clean installation on a fresh Windows 10/11 machine.
- Missing-dependency behavior when
ffmpeg.exeorNessMuxer.dllis not present. - Different monitor setups, DPI scales, and Draw Area selections.
- C# / .NET 8
- Windows Presentation Foundation (WPF)
- SQLite
- Windows Graphics Capture (WGC)
- NessMuxer — native C screen encoding/muxing backend
- FFmpeg — final export workflow
- NAudio — WASAPI microphone and system audio capture
- MaterialDesignThemes — WPF UI components
Major recording architecture, export, sync, and UI update. Adds independent tracks, WGC/NessMuxer screen recording, manifest v2, master session clock, Draw Area overlay, FFmpeg export window, audio-only export, separate tracks export, and refreshed application screens.
Introduced the native recording direction using Windows Graphics Capture and NessMuxer, replacing the old FFmpeg-first recording approach and improving session metadata/control.
Initial public version. Provided Windows screen, webcam, microphone, and system audio recording with simple project/session output and FFmpeg-based workflow.
Want to create new features for NessStudio? Create a new feature branch and submit a Pull Request. Feel free to open issues for bug fixes, improvements, or feature requests.
This project is open-source and available under the MIT License.




