neoCamera adds a modern Windows camera preview, still-image capture, and MP4 recording control to VisualNEO Win. It supports multiple camera devices, enumerates the resolutions and frame rates exposed by each driver, negotiates HD and 4K modes, mirrors the preview, saves full-resolution photographs, and records H.264 MP4 video.
Installation
Install the com.visualneo.neocamera.vnplugin folder through the VisualNEO Win plugin manager. The plugin is compiled for 32-bit VisualNEO Win and has no third-party runtime dependency.
Windows camera privacy settings must allow desktop applications to access the camera. Only one application or capture graph may be able to use a particular device at a time.
neoCamera Viewer
Add neoCamera Viewer from the tool palette. The default size is 400 x 260 pixels. A compact overlay shows camera state, device name, negotiated resolution, and a capture button.
The camera is not opened in the editor by default. Start it with neoCameraStart, enable Start Automatically, or click the center control at runtime.
Properties
| Property | Purpose |
|---|---|
| Camera Device | Friendly name, persistent DirectShow ID, or zero-based device index. Empty selects the first camera. |
| Start Automatically | Opens the camera when the control page becomes ready. |
| Preferred Width / Height | Requested capture dimensions. The closest supported mode is negotiated. |
| Preferred FPS | Requested frames per second. |
| Preview Fit Mode | Contain, cover, stretch, or actual-size presentation. |
| Mirror Image | Mirrors both the preview and saved photographs. |
| Show Camera Controls | Shows the modern bottom overlay and capture control. |
| Show Device and Resolution | Shows the active device and negotiated frame dimensions. |
| Default Capture Path | Used when capture is requested without an explicit path. |
| Automatic Capture Format | PNG, JPEG, or BMP for automatically named captures. |
| JPEG Quality | JPEG compression quality from 1 to 100. |
| Default MP4 Recording Path | Used when recording starts without an explicit path. |
| Video Bitrate | H.264 target bitrate in kilobits per second. |
| Background Color | auto or a hexadecimal color. |
| Inactive Camera Text | Message shown while the camera is off. |
The VisualNEO style panel controls host fill, border color, border width, corner radius, and transparency.
High-resolution cameras
neoCamera reads the native modes reported by the camera driver through DirectShow. Modes such as 1920 x 1080, 2560 x 1440, or 3840 x 2160 are available when the device and its driver expose them to 32-bit desktop applications.
The requested mode is a preference, not a fabricated size. neoCamera selects the closest supported combination while considering dimensions, aspect ratio, and frame rate. Use neoCameraListModes to inspect exact choices before starting.
The saved image uses the negotiated camera-frame resolution, independently of the on-screen control size. High resolutions require more USB bandwidth, CPU time, and memory. Some cameras expose their highest modes only at lower frame rates or through MJPEG.
MP4 recording
neoCamera 1.2 records the full negotiated camera stream as H.264 video in an MP4 container. Encoding is performed by Windows Media Foundation, so no FFmpeg or third-party codec package is required. The recording uses camera timestamps and is finalized when neoCameraStopRecording, neoCameraStop, control destruction, or plugin shutdown occurs.
The red control at the right side of the overlay starts and stops recording. While recording, it changes from a circle to a stop symbol and a pause/resume button appears beside it. Paused time is removed from the output timeline, so the final video contains neither a frozen frame nor a silent timing gap. A path supplied by an action takes priority over the default recording path. If both are empty, neoCamera creates a timestamped MP4 file in the Windows temporary directory.
This release records video only. It does not include a microphone audio track. H.264 availability depends on the Windows Media Foundation components installed by the operating system; Windows N editions may require the Microsoft Media Feature Pack.
Actions
All commands use the neoCamera prefix.
- neoCameraListDevices returns all cameras as JSON.
- neoCameraListModes returns the resolutions, frame rates, and pixel formats exposed by a camera.
- neoCameraStart starts preview, optionally selecting a device.
- neoCameraStop stops preview and releases the camera.
- neoCameraCapture saves the latest full-resolution frame.
- neoCameraSetDevice selects a device by name, ID, or index.
- neoCameraSetResolution changes preferred width, height, and FPS and renegotiates a running camera.
- neoCameraSetMirror controls horizontal mirroring.
- neoCameraGetInfo returns the current device, running state, negotiated mode, and preferences.
- neoCameraRestart closes and reopens the camera.
- neoCameraStartRecording starts full-resolution H.264 MP4 recording with an optional path and bitrate.
- neoCameraStopRecording finalizes and closes the MP4 file.
- neoCameraPauseRecording pauses recording and omits the paused interval from the final video.
- neoCameraResumeRecording resumes recording with continuous video timestamps.
Results are written to [neoCameraResult] and [ModernPluginResult]. Device, mode, and information actions return JSON. If no capture path is supplied, neoCamera uses the configured default path or creates a timestamped file in the Windows temporary directory.
Events
- Camera Started reports the device and negotiated dimensions.
- Camera Frame Ready fires once when the first frame arrives.
- Camera Stopped fires after the device is released.
- Camera Image Captured reports the saved path and image dimensions.
- Camera Error reports startup or capture failures.
- Camera Device Changed fires when a different device is selected.
- MP4 Recording Started reports path, dimensions, FPS, and bitrate.
- MP4 Recording Stopped reports the finalized path and number of written frames.
- MP4 Recording Paused reports the path and number of frames written before the pause.
- MP4 Recording Resumed reports the path and number of frames written before resuming.
Troubleshooting
If no devices are returned:
- Verify that the camera appears in Windows Device Manager.
- Enable camera access and desktop application access in Windows privacy settings.
- Close conferencing, browser, or camera applications that may own the device.
- Try the friendly name or index returned by neoCameraListDevices.
If the negotiated resolution differs from the requested resolution, inspect neoCameraListModes. The driver may offer the desired dimensions only at another frame rate or pixel format.
Implementation and license
neoCamera uses Windows DirectShow, Sample Grabber, Media Foundation, GDI, and GDI+ APIs supplied by the operating system. It introduces no separate camera SDK, encoder, or redistributable dependency.