Skip to content

refaim/furnace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Furnace

Batch video transcoder for home archival. Scans your movie collection, lets you pick tracks in a TUI, saves a JSON plan, then encodes everything with NVEncC (NVIDIA hardware encoder).

Why Furnace

  • Plan, review, then run — choose tracks and preview in a TUI, save a JSON plan you can inspect or edit before hours of encoding
  • Resumable — failed jobs retry on next run, plan updated atomically after each job
  • Live progress on every long step — ffmpeg extraction, eac3to, qaac, mkvmerge, NVEncC all stream into one unified progress bar; no more silent multi-gigabyte waits
  • Auto quality — CQ value interpolated by pixel area, no manual tuning across SD/720p/1080p/4K
  • Disc demux — Blu-ray (BDMV) and DVD (VIDEO_TS) fed straight into the pipeline with playlist/title selection
  • Anamorphic SAR fix — detects and corrects wrong sample aspect ratio on DVD sources
  • Dolby Vision — Profile 7 FEL (converted to P8.1) and Profile 8 MEL with RPU passthrough via dovi_tool
  • HDR10 passthrough — mastering display, content light level, BT.2020/PQ preserved through encode
  • Auto deinterlace — detects interlaced content from the video stream and applies nnedi (neural network) automatically
  • Smart crop — black bars detected automatically across the timeline
  • mpv preview — audition audio tracks, check subtitles, or preview video right from the TUI before committing
  • Per-track downmix — fold 7.1 or 5.1 into stereo or 5.1 from the track selector, useful when the multichannel mix is a fake upmix or the movie is dialogue-heavy
  • Satellite files — external audio and subtitle files next to the video are picked up as extra tracks automatically

Workflow

furnace plan <source> -o <output> --audio-lang rus,eng --sub-lang rus,eng
# -> opens TUI for track selection -> saves furnace-plan.json

furnace run furnace-plan.json
# -> encodes all pending jobs with live progress TUI

Run TUI

Requirements

Install

uv pip install .

Configuration

Copy furnace.toml.example to furnace.toml and set paths to your tools. Searched in order: --config flag, current directory, %APPDATA%\furnace\.

Usage

Plan with dry run (no TUI, just print what would happen):

furnace plan D:\Movies -o E:\Encoded --audio-lang jpn --sub-lang eng --dry-run

Plan and encode:

furnace plan D:\Movies -o E:\Encoded --audio-lang rus,eng --sub-lang rus,eng
furnace run E:\Encoded\furnace-plan.json

Enable VMAF + SSIM quality scoring (single pass):

furnace plan D:\Movies -o E:\Encoded --audio-lang eng --sub-lang eng --vmaf

Copy eligible video streams verbatim instead of re-encoding (audio still processed, container rebuilt):

furnace plan D:\Movies -o E:\Encoded --audio-lang eng --sub-lang eng --copy-video

Eligible streams are copied as-is (crop/deinterlace skipped); interlaced and Dolby Vision P7 FEL sources fall back to a normal encode, and the plan report shows passthrough (copy video) or encode (<reason>) per file.

Inventory a folder and check Furnace-encode status (read-only — never modifies files):

furnace scan D:\Movies

Each video file is listed with its encode status (Furnace vX.Y.Z, not encoded, or unreadable) and its video, audio and subtitle tracks. Filter by encode status to find files needing a (re)encode — the flags union (OR):

furnace scan D:\Movies --not-encoded            # no parseable Furnace tag
furnace scan D:\Movies --encoded                # encoded by any Furnace version
furnace scan D:\Movies --max-version 1.19.3     # encoded by Furnace <= 1.19.3

The table prints to stdout and is redirect-safe (ASCII box, no ANSI, no truncation); the N of M shown summary and any warnings go to stderr, so furnace scan D:\Movies > out.txt yields a clean plain-text file.

About

Batch video transcoder with interactive TUI for home movie archival — wraps NVEncC, mkvmerge, eac3to, and more

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors

Languages