Table of Contents
About
Transmute provides a simple web based tool to manage your video library. Transmute will watch a directory and automatically transcode videos using FFmpeg & hardware acceloration (if available) so that your entire library meets a specified standard. In addition to transcoding, Transmute can also remove undesired audio tracks, subtitles, perform healthchecks & upscale/downscale video.
Why do I care?
- Transcoding 
MPEG-2/MPEG-4video toh.264/h.265can reduce file size by 50-90% - A more extreme measure is downscaling 
4Kto1080pto reduce size by a further 75% - Stripping out unused audio tracks & subtitles can result in more savings
 - Some devices or players will be unable to play specific formats
 - If you use a self-hosted streaming service, your host will have to transcode videos on the fly when a device doesn't support the original format/resolution leading to choppy playback, transcoding your library ahead of time can avoid this in most cases
 
Why should I use this over __________?
Transmute's goal is to make the transcoding process as fast & simple as possible. Most transcoders provide hundreds of settings requiring some expertise to properly setup. With Transmute you simply specify what your video files should look like & it will transcode your videos as lossless-ly as possible using multiple computers to make short work of large libraries.
How does it work?
After choosing your desired settings & creating a new library in the WebUI, the server will begin scanning videos to collect metadata. If this metadata doesn't match your settings or a healthcheck is required, the server will queue a job.
Once a worker is available, it will request a job from the server & complete it using FFmpeg.
Built With
Setup
  Production
Prerequisites
Instructions
- Download the example compose file on your server: 
curl -o transmute.yml https://gitlab.zakscode.com/zakscode/transmute/transmute/-/raw/main/docker-compose.yml - Read the Configuration Guide & edit the compose file accordingly
 - Run the compose file:
- Using Docker Compose: 
docker compose -f transmute.yml up - Using Docker Swarm: 
docker stack deploy transmute -c transmute.yml 
 - Using Docker Compose: 
 
  Development
Prerequisites
Instructions
- Clone this project: 
git clone - Pull the submodules: 
git submodule update --remote --init - Checkout the latest: 
git submodule foreach git switch develop - Install dependencies: 
git submodule foreach npm i - Link common:
- Link common to npm: 
cd common && npm link - Link common to client (re-run after every 
npm install):cd ../client && npm link @transmute/common - Link common to server (re-run after every 
npm install):cd ../server && npm link @transmute/common - Link common to worker (re-run after every 
npm install):cd ../worker && npm link @transmute/common 
 - Link common to npm: 
 - Start each project as needed:
- Start common: 
cd ../common && npm run watch - Start client: 
cd ../client && npm run start - Start server: 
cd ../server && npm run start - Start worker: 
cd ../worker && npm run start 
 - Start common: 
 
License
Copyright © 2023 Zakary Timson | Available under MIT Licensing
See the license for more information.
