Grassvalley AMPP job management application
Find a file
2026-03-31 15:35:26 -04:00
public Add public/index.html 2026-03-31 15:29:50 -04:00
.dockerignore Add .dockerignore 2026-03-31 15:29:48 -04:00
.env.example Add .env.example 2026-03-31 15:29:48 -04:00
ame-log-parser.js Add ame-log-parser.js 2026-03-31 15:29:48 -04:00
docker-compose.yml Add docker-compose.yml 2026-03-31 15:29:48 -04:00
Dockerfile Add Dockerfile 2026-03-31 15:29:48 -04:00
LICENSE Initial commit 2026-03-31 15:26:09 -04:00
package-lock.json Add package-lock.json 2026-03-31 15:29:49 -04:00
package.json Add package.json 2026-03-31 15:29:49 -04:00
prproj-remapper.js Add prproj-remapper.js 2026-03-31 15:29:49 -04:00
README.md Update README.md with documentation 2026-03-31 15:35:26 -04:00
server.js Add server.js 2026-03-31 15:29:49 -04:00
test-remap.js Add test-remap.js 2026-03-31 15:29:50 -04:00

AME Remote Job Manager

A web-based job submission and monitoring tool for Adobe Media Encoder (AME) in a Grassvalley AMPP environment. Editors upload .prproj files through the browser, the server remaps .gves proxy paths to high-resolution UNC paths, then delivers the remapped project to AME's watch folder for automated rendering.

How It Works

  1. Editor uploads a Premiere Pro .prproj file via the web UI
  2. The server parses and remaps any .gves proxy media paths to their high-res UNC equivalents
  3. The remapped project file is written to AME's watch folder
  4. AME picks up the file, renders it, and writes output to the output folder
  5. The job manager polls both folders and updates job status automatically: queued → encoding → complete

Features

  • .prproj path remapping — replaces .gves proxy references with full-resolution UNC paths
  • Dry-run analysis mode — inspect what paths would be remapped before submitting
  • Real-time job status tracking via watch folder and output folder polling
  • AME log parsing — reads AMEEncodingLog.txt and error logs for encoding stats
  • SMB/UNC path configuration via the settings UI
  • Session-based authentication
  • Docker-ready with volume-backed persistent storage

Prerequisites

  • Docker and Docker Compose
  • Adobe Media Encoder running on a Windows machine with a configured watch folder
  • The watch folder and output folder accessible as Docker volume mounts (e.g. via SMB)
  • .prproj files that reference .gves proxy media on the AMPP platform

Quick Start

  1. Clone the repo and copy the example env file:
cp .env.example .env
  1. Edit .env:
PORT=3100
AUTH_USER=admin
AUTH_PASS=changeme

# Docker volume mount paths
WATCH_FOLDER=/watch
OUTPUT_FOLDER=/output
AME_LOG_DIR=/ame-logs

# Polling interval (ms)
POLL_INTERVAL_MS=5000

# Job timeout — mark as error if AME hasn't produced output after this long (ms)
JOB_TIMEOUT_MS=3600000
  1. Mount your watch folder and AME log directory in docker-compose.yml, then start:
docker compose up -d
  1. Open http://localhost:3100 in your browser and log in.

Docker Compose Example

services:
  ame-job-manager:
    build: .
    ports:
      - "3100:3100"
    volumes:
      - /mnt/ame-watch:/watch          # AME watch folder (SMB mount or local)
      - /mnt/ame-output:/output        # AME output folder
      - /mnt/ame-logs:/ame-logs        # AME log directory (contains AMEEncodingLog.txt)
      - job-data:/data
    env_file: .env
    restart: unless-stopped

volumes:
  job-data:

Job Lifecycle

Status Meaning
queued File written to watch folder, waiting for AME to pick it up
encoding File disappeared from watch folder — AME is actively rendering
complete Output file detected in the output folder
error Job timed out or AME log reported an error

The server polls both folders every POLL_INTERVAL_MS milliseconds to detect status transitions.

Path Remapping

The core function of this tool is to make .prproj files renderable on a high-res render machine. Premiere projects created on AMPP workstations often reference .gves proxy files. This server rewrites those references to the corresponding UNC/high-res paths before handing the project to AME.

The remapping logic lives in prproj-remapper.js. You can test a remap without submitting a job using the analyze endpoint or the dry-run button in the UI.

API Reference

Method Endpoint Description
POST /api/login Authenticate and get a session ID
POST /api/logout End session
POST /api/jobs Submit a .prproj file and create a job
POST /api/jobs/analyze Dry-run analysis of a .prproj (no submission)
GET /api/jobs List all jobs
GET /api/jobs/:id Get a single job by ID
DELETE /api/jobs/:id Delete a job record
GET /api/status System status — folder health, job counts, AME log stats
GET /api/ame/logs Full AME log data with recent entries
GET /api/settings Get current settings
POST /api/settings Update settings (watch folder, SMB config, etc.)

All endpoints except /api/login require an x-session-id header from a valid login.

Environment Variables

Variable Default Description
PORT 3100 HTTP port
AUTH_USER admin Login username
AUTH_PASS password Login password
WATCH_FOLDER /watch Path AME watches for new projects
OUTPUT_FOLDER /output Path AME writes rendered output to
DATA_DIR /data Persistent storage for job records and sessions
UPLOAD_TEMP /tmp/uploads Temp dir for incoming file uploads
POLL_INTERVAL_MS 5000 How often to poll watch/output folders (ms)
JOB_TIMEOUT_MS 3600000 Time before a stuck job is marked as error (ms)
AME_LOG_DIR /ame-logs Directory containing AMEEncodingLog.txt