klevze 3e881b79b8 Bring WinUI app to feature/visual parity with WPF, fix drag-and-drop and branding assets
- Restyle Fluent controls (buttons, fields, dialogs, ListView) to match the
  app's navy dark/light palette and consistent corner radii/sizing
- Fix ContentDialog (Settings, exit-confirm, error) styling by binding
  PrimaryButtonStyle/CloseButtonStyle explicitly via new DialogHelper,
  since ContentDialog ignores implicit Button styles and forces accent
  color onto whichever button is DefaultButton
- Remove MicaBackdrop and theme the title bar directly so it no longer
  shows a gray tint mismatched with the app's navy background
- Replace placeholder Assets/*.png (unused VS template art) with the real
  AmiReel logo at all required tile/splash/store sizes
- Set explicit default window size (1280x860, matching the old WPF app)
  with DPI-aware centering and a minimum size, instead of sizing to content
- Fix drag-and-drop silently failing: InputList_Drop needs a
  DragOperationDeferral before the first await or the DataView is torn
  down before GetStorageItemsAsync completes
- Add Preview player path setting (was present in WPF, missing in WinUI)
  and error handling for preview playback
- Accept all ffmpeg-readable video formats (mp4, mov, mkv, webm, ...) for
  file picker and drag-and-drop, not just .avi
- Add exit-confirmation dialog to WinUI, mirroring the WPF app

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-13 13:53:55 +02:00
2026-08-11 10:43:27 +02:00
2026-08-11 10:43:27 +02:00
2026-08-11 10:43:27 +02:00
2026-08-13 12:39:03 +02:00
2026-08-13 12:39:03 +02:00
2026-08-11 10:43:27 +02:00
2026-08-13 12:39:03 +02:00

AmiReel

AmiReel is a Windows video-rendering tool for turning Amiga AVI captures into:

  • a 4K 50 FPS final video,
  • PNG/JPG thumbnails,
  • an animated WebP preview,
  • and a publishable Windows desktop app workflow.

The repository currently contains two desktop frontends that share the same render pipeline:

  • AmiReel.WinUI
    The newer WinUI 3 application. This is the default publish target.
  • AmigaDB.VideoRenderer.csproj
    The existing WPF application.

Features

  • multiple ordered AVI inputs
  • 3840×2160 output at 50 FPS
  • NVIDIA NVENC with automatic CPU libx264 fallback
  • configurable trim, fade, end-card hold, and thumbnail interval
  • optional end-card image
  • live render progress with frame counters
  • FFmpeg log output
  • source video preview and final render preview
  • dark and light themes
  • optional move of source recordings into originals in the output folder
  • optional custom ffmpeg.exe / ffprobe.exe paths
  • automatic FFmpeg detection from PATH
  • single-file WinUI publish for easier distribution

Requirements

For development:

  • Windows 10 or Windows 11
  • .NET SDK
    • WPF project: .NET 8 SDK
    • WinUI project: .NET 10 SDK and WinUI/Windows App SDK support
  • Windows x64 FFmpeg binaries in ThirdParty
    • ThirdParty\ffmpeg.exe
    • ThirdParty\ffprobe.exe

For end users:

  • Windows 10 or Windows 11 x64
  • the published AmiReel executable
  • FFmpeg is not required separately if you distribute AmiReel with embedded ThirdParty FFmpeg binaries

Project Layout

  • AmiReel.WinUI\ WinUI 3 frontend
  • MainWindow.xaml and MainWindow.xaml.cs WPF frontend
  • Services\RenderPipeline.cs Main render workflow
  • Services\ProcessRunner.cs FFmpeg process execution and progress parsing
  • Services\ToolExtractor.cs FFmpeg resolution, extraction, and fallback logic
  • publish-win-x64.ps1 Publish script

Run in Development

WinUI

dotnet build .\AmiReel.WinUI\AmiReel.WinUI.csproj
dotnet run --project .\AmiReel.WinUI\AmiReel.WinUI.csproj

WPF

dotnet build .\AmigaDB.VideoRenderer.csproj
dotnet run --project .\AmigaDB.VideoRenderer.csproj

Publish

Default: WinUI

The publish script now defaults to the WinUI application:

.\publish-win-x64.ps1

This publishes the WinUI app as a self-contained single-file executable.

At the end of the script you will see:

  • the release folder path
  • the final executable path

Example output path:

AmiReel.WinUI\bin\Release\net10.0-windows10.0.26100.0\win-x64\publish\AmiReel.exe

Publish WPF instead

.\publish-win-x64.ps1 -Target Wpf

Installation

For developers

  1. Clone the repository.
  2. Add ffmpeg.exe and ffprobe.exe to ThirdParty.
  3. Restore and build the desired app:
dotnet build .\AmigaDB.VideoRenderer.sln
  1. Run either the WinUI or WPF project.

For end users

  1. Copy the published AmiReel.exe from the publish folder to any location, for example:
C:\Apps\AmiReel\
  1. Double-click AmiReel.exe.
  2. If FFmpeg is embedded in the build, no extra setup is required.
  3. If you want to use your own FFmpeg build: open Settings and select:
    • ffmpeg.exe
    • ffprobe.exe

Optional desktop shortcut

  1. Right-click AmiReel.exe.
  2. Choose Send to -> Desktop (create shortcut).

FFmpeg Behavior

AmiReel resolves FFmpeg in this order:

  1. custom paths from settings
  2. ffmpeg.exe and ffprobe.exe found on system PATH
  3. embedded ThirdParty binaries

If NVENC cannot be initialized, AmiReel automatically falls back to CPU libx264.

Settings Location

User settings are stored in:

%LOCALAPPDATA%\AmiReel\settings.json

This includes values such as:

  • output folder
  • end-card path
  • FFmpeg paths
  • theme
  • encoder selection
  • timing settings
  • whether source videos are moved into originals after a successful render

Notes for Distribution

  • If you distribute FFmpeg binaries with AmiReel, you are responsible for complying with the license terms of the FFmpeg build you use.
  • Keep any required notices, source offer, or attribution required by that FFmpeg distribution.
  • Windows Explorer may cache executable icons. If a freshly published build still shows an old icon, rename the file or refresh the icon cache before assuming the embed failed.

Troubleshooting

App falls back to CPU instead of NVENC

This usually means FFmpeg could not initialize h264_nvenc. AmiReel will continue with CPU encoding automatically.

FFmpeg tool error

If embedded FFmpeg is missing or broken, AmiReel will try:

  1. configured tool paths
  2. FFmpeg from PATH

If needed, set the paths manually in Settings.

Render failed popup

The popup shows a short human-readable summary. Full technical details remain available in the FFmpeg log panel.

Current Default Recommendation

Use the WinUI build for publishing and distribution unless you specifically need the WPF variant.

S
Description
No description provided
Readme 4.2 MiB
Languages
C# 82.9%
Shell 15.9%
PowerShell 1.2%