v0.1.0 — 493 KB

nr Universal
Media Converter

One binary. Zero dependencies. Any format. Convert any media file to any compatible format — ffmpeg is auto-downloaded, you never install it.

nr — convert
$ nr video.mov mp4
Converting: video.mov → video.mp4
✓ Done! (3.2s)
Location: D:\video.mp4
Size: 12.5 MB
$ nr # clipboard → interactive picker
$ nr --force mp4 # batch all clipboard files
Features

Why nr?

Zero-install ffmpeg, clipboard-first workflow, 109 conversion targets, and a 493 KB footprint.

Zero-Install ffmpeg

On first run, nr downloads and caches ffmpeg automatically. You never install it yourself. Works on Windows, Linux, and macOS.

Multi-File Clipboard

Select multiple files in Explorer, Ctrl+C, then nr --force mp4 converts every one. Supports FileDropList format.

Magic Byte Detection

Detects file type by magic bytes (not just extension) for 30+ formats including MP4, MKV, HEIC, AVIF, and more.

Cross-Type Conversion

Image → video slideshow (5s), audio → video with blank frame, video → audio extraction. Any source, any target.

109 Format Targets

24 video containers, 23 audio extracts, 24 audio formats, 25 image formats, 7 slideshow targets, 6 blank-video targets.

493 KB Binary

Written in Rust with LTO, opt-level=z, panic=abort. No TUI framework, no arboard, no infer crate — just clap + anyhow.

Usage

Simple by Design

One command does it all. No flags to memorize for common tasks.

# Interactive — clipboard file, pick format
nr

# Clipboard file directly to mp4
nr mp4

# Specific file, pick format interactively
nr video.mov

# Specific file + target format
nr video.mov mkv

# Batch all clipboard files to one format
nr --force mp4

# Show all 109 supported conversion targets
nr --list
# Extract audio from video
nr video.mp4 mp3

# Image to video slideshow
nr photo.jpg mp4

# Audio wrapped in video container
nr song.mp3 mov

# Lossless remux to MKV
nr video.mov mkv

# Best compression (VP9 + Opus)
nr video.mp4 vp9

# Batch convert all images to WebP
nr --force webp
Format Registry

109 Targets

Every major container, codec, and cross-type path. Variant formats like h265 → .mp4 shown with their real extension.

Video → Video
mp4
h265 mp4
mkv
webm
vp9 webm
avi
mov
wmv
flv
m4v
ogv
mpg
ts
3gp
3g2
gif
dv
m2ts
vob
av1 mkv
mxf
dnxhd
mjpeg
nut
psp mp4
Video → Audio
mp3
wav
flac
ogg
aac
adts
opus
wma
m4a
ac3
eac3
truehd
aiff
au
caf
voc
w64
tta
amr
gsm
ircam
sox
Audio → Audio
mp3
wav
flac
ogg
aac
adts
opus
spx
wma
m4a
ac3
eac3
truehd
aiff
au
caf
voc
w64
tta
amr
gsm
ircam
sox
oga
Image → Image
jpg
png
apng
webp
avif
bmp
tiff
gif
ico
ppm
pgm
pbm
pam
pcx
tga
xbm
xwd
dpx
sgi
jp2
hdr
sun
wbmp
pfm
fits
Cross-Type
mp4 / mkv / webm / vp9 / avi / mov / gif
mp4 / mkv / webm / avi / mov / vp9
Install

One-Line Setup

No package manager needed. Single binary, auto-downloads ffmpeg on first run.

Windows (PowerShell)
iex "& { $(irm https://raw.githubusercontent.com/subhradeepsarkae-ai/noir/main/scripts/install.ps1) }"
Linux / macOS
curl -sSL https://raw.githubusercontent.com/subhradeepsarkae-ai/noir/main/scripts/install.sh | bash
Build from source (requires Rust)
cargo install --git https://github.com/subhradeepsarkae-ai/noir nr
FAQ

Common Questions

Do I need to install ffmpeg?

No. nr auto-downloads ffmpeg on first run and caches it at %LOCALAPPDATA%\noir\ffmpeg\ (Windows) or ~/.cache/noir/ffmpeg/ (Linux/macOS). If ffmpeg is already on your PATH, it uses that instead.

How does the clipboard work?

On Windows, nr reads the FileDropList format (what Explorer uses when you Ctrl+C files). This means multi-select works — all selected files are captured. On Linux/macOS, it reads plain text clipboard paths.

What if I don't have a clipboard?

Pass files directly: nr video.mov mp4. The first argument is auto-detected — if it exists on disk it's a file, if it's a known format name it reads the clipboard.

What codecs are supported?

nr uses the gyan.dev ffmpeg build which includes: libx264, libx265, libvpx-vp9, libaom-av1, libmp3lame, libopus, libvorbis, libtheora, native AAC, AC3/E-AC-3, TrueHD, DNxHD, MJPEG, JPEG2000, and more.