Smart Transcode

Install as a Linux service

The installer asks no questions. It installs what is missing, builds a private Python environment, starts a systemd service and checks that it can write to your media.

Read this first

Whether the service can write your media depends on user and group IDs. Read User and group IDs before you start; it takes five minutes and saves an evening.

  1. Download and unpack as shown above, then enter the folder.
  2. Find who owns your media. This decides which account the service runs as, see User and group IDs.
    stat -c '%u:%g  %U:%G' /srv/media
  3. Run the installer with your media folder (repeat --media for more folders).
    sudo ./install.sh --media /srv/media
    The service runs as the owner of the first media folder. Change that only if you must: --user NAME picks an existing account, --uid N --gid N creates one with exactly those IDs.
  4. Open the page: http://your-server:8080. In Settings → General add your root folders, in Settings → Video pick your GPU.
OptionMeaning
--media DIRA media folder (repeatable). Used to choose the account and to check write access at the end.
--user NAMERun as this existing account.
--uid N --gid NCreate the account transcode with these numeric IDs.
--port NWeb port (default 8080).
--data-dir DIRDatabase and logs (default /var/lib/smart-transcode). Keep it on a local disk.
--log-level LDEBUG, INFO (default), WARNING or ERROR.
--vaapi-device PATHRender node for Intel / AMD (default: the first /dev/dri/renderD*).
--uninstall --purge-dataRemove the service; with --purge-data also delete the database.
systemctl status smart-transcode          # is it running
journalctl -u smart-transcode -f          # the log
sudo smart-transcode-auth --help          # users and passwords from the command line

NVIDIA, Intel or AMD on a bare-metal install

The service uses whatever ffmpeg is on the machine. After the install the installer lists the encoders it found (hevc_nvenc, hevc_vaapi, hevc_qsv, libx265…). If yours is missing, use a fuller ffmpeg build or switch to the Docker image. Intel and AMD need the usual VA-API driver packages (intel-media-driver or mesa-va-drivers); NVIDIA needs the proprietary driver. The installer adds the service to the groups that own /dev/dri by itself.