Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flux media converter

A personal media converter with a React frontend and an Express/FFmpeg processing server.

Supported image outputs include JPG, PNG, WEBP, AVIF, TIFF, and Windows ICO. ICO output is fitted and centred within a transparent 256×256 icon canvas.

Requirements

  • Node.js 20+
  • FFmpeg and FFprobe available on PATH

Development

npm install
npm run dev

The Vite frontend runs on port 5173 (or the next available port) and proxies /api to the conversion server on port 8791.

Production

npm run build
npm start

The production server serves both the API and the compiled site at http://localhost:8791.

Environment variables:

  • PORT: HTTP port, defaults to 8791
  • HOST: listen address, defaults to 0.0.0.0 for local-network access
  • MAX_CONCURRENT_JOBS: simultaneous FFmpeg processes, defaults to 2

Uploads are stored in the operating system's temporary directory. Input files are removed after conversion. Output files are removed after a successful download or after one hour.

Default converter settings

Edit public/converter-config.json to control the settings shown when the site first loads:

  • defaultFormats: default output format for video, audio, image, and GIF files
  • quality: number from 10 to 100
  • resolution: Original, 4K, 1080p, 720p, or 480p
  • frameRate: Original, 60 fps, 30 fps, 24 fps, or 15 fps
  • bitrate: Auto, High, Medium, Low, or Custom
  • smartSizeLimit: enables or disables target-size optimisation
  • targetSizeMB: initial target file size in megabytes

The JSON file is loaded directly from public/converter-config.json at runtime in both development and production. Restart the Node server once after introducing this route; later config edits only require refreshing the browser and do not require rebuilding the React bundle.

Local-network access

Production mode serves the website and API together on every network interface:

npm run build
npm start

Open the printed LAN access URL from another device on the same network. For example, if the server computer is 192.168.1.33, use:

http://192.168.1.33:8791

Development mode also listens on the local network. Vite prints its network URL after running npm run dev. Windows Firewall must allow inbound private-network TCP traffic to the selected port.

To add the production firewall rule, open PowerShell as Administrator in the project directory and run:

powershell -ExecutionPolicy Bypass -File .\scripts\allow-lan-firewall.ps1

The script permits TCP port 8791 only on the Windows Private profile and only from LocalSubnet.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages