Skip to content

harryhax/node_ffmpeg_transcoder

Repository files navigation

Plex Video Transcoder & Auditor

Version License: MIT Last Commit Discord

Transcode Plex/media libraries with a simple web UI. The project audits files against codec/bitrate/channel rules, then batch transcodes selected files while streaming live progress.

Screenshots

Home (Simple)

Home (Simple)

Run server.js directly (Node + FFmpeg already installed)

If you already have Node.js and ffmpeg/ffprobe installed:

  1. Clone this repository.
  2. Open a terminal in the project folder.
  3. Install dependencies:
    npm install
  4. Start the server:
    node server.js
  5. Open http://localhost:3000.

Guided Setup (Recommended)

  1. Download or clone this project.
  2. Open a terminal in the project folder.
  3. Run:
    ./install/install.sh
  4. Follow the prompts, then open http://localhost:3000.

Windows setup

Run this in PowerShell from the project folder:

.\install\install.ps1

Requirements

  • Node.js 18+
  • ffmpeg and ffprobe

You can either:

  • keep ffmpeg/ffprobe available in your system PATH, or
  • set folder overrides in Settings (folder path only, not the executable file path).

Run the App

npm run server

Then open http://localhost:3000.

macOS no-sleep mode (recommended for long transcodes)

npm run server:no-sleep

Web UI Workflow

  1. Pick a root folder.
  2. Choose codec/bitrate/channel rules.
  3. Run audit.
  4. Select matching files.
  5. Run transcode.

The UI includes:

  • live per-file and overall transcode progress
  • transcode cancel support
  • per-file outcome highlighting
  • optional per-file .log output
  • top-level critical error banner when required tools are missing

Optional Utility

Smoke test fixture generation:

npm run smoke-test -- --out ./smoke-fixtures

Troubleshooting

  • Run npm run check to validate project JS syntax.
  • If tool checks fail, install ffmpeg/ffprobe or set folder overrides in Settings.
  • Verify read/write permissions for media folders and transcode target locations.

Packaging

Packaging is on hold for now. Current supported usage is to clone the repo and run it as a standard Node.js project.

License and Liability

This project is licensed under the MIT License. See LICENSE.

Copyright (c) 2026 Harry Scanlan.

It is provided "AS IS", without warranty of any kind, and the author is not liable for any claim, damages, or other liability arising from use of this software.

Project Structure

  • server.js — Express app and static hosting
  • routes/ — API routes
  • controllers/ — request handlers/orchestration
  • services/ — reusable transcode/audit services
  • public/ — web UI assets

About

Helps you transcode Plex movies and videos to save drive space, reduce storage costs, and optimize your media library. Easier to use than Tdarr, it offers a web UI and CLI for batch auditing and transcoding. Scan, filter, and convert files to efficient codecs with clear feedback—same results as Tdarr, but faster and simpler for Plex user

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors