Convoy integration

Integration with Convoy

ew-vodingest replaces the legacy ew-recorder tool for recording and uploading VoD with better performance and resource usage.

Wrapper Scripts for Additional Parameters

Convoy’s configuration (/etc/convoy/convoy.conf) only passes a limited set of parameters to the ingest script. To use additional ew-vodingest options not supported by Convoy’s configuration, create a wrapper script.

Some use cases:

  • Enable thumbnails (--thumbnails and --thumbnails-sizes)
  • Configure timeouts (--maxtime)
  • Troubleshooting (--leavepartial and --loglevel)

Example wrapper template:

#!/bin/bash
set -e
export PATH="$PATH:/usr/bin"  # Ensure tools like ffmpeg are found
/usr/bin/ew-vodingest --thumbnails --loglevel debug "$@"

Save to a file (e.g., /usr/bin/ew-custom-recorder) and make it executable:

chmod +x /usr/bin/ew-custom-recorder

Then reference it in Convoy configuration:

ingest_script = /usr/bin/ew-custom-recorder

Installation

ew-vodingest 1.12.0 and older

dnf install -y <path to ew-vodingest RPM>

ew-vodingest 1.14.0 and newer

Version 1.14.0+ replaces ew-recorder completely and requires --allowerasing:

dnf install -y --allowerasing <path to ew-vodingest RPM>

Important: Due to dependency issue of Convoy older than 3.4.0, before upgrading/downgrading those versions of Convoy, rollback to ew-repackaging-recorder then install ew-vodingest again once upgrading/downgrading is done:

rpm -e --nodeps ew-vodingest
dnf install -y <path to ew-repackaging-recorder RPM>

Recording Configuration

Basic setup

Set ingest_script in Convoy configuration:

ccmi.webtv_recorders {
  liveingest1 {
    host = 1.2.3.4
    port = 8090
    live_buffer = 600
    storage = storage1
    ingest_script = /usr/bin/ew-vodingest
    channel_groups = { swlive }
  }
}

With image-based thumbnails

Use a wrapper script with the --thumbnails parameter (see “Wrapper Scripts” section above).

Recording failure diagnostics

When recording fails with --logfile defined (default in Convoy), input files are collected to:

  • Same folder as logfile: /tmp/XXX-input-files (if logfile is /tmp/XXX)
  • Output directory (if --leavepartial is defined)

Uploading Configuration

Convoy 2.30 and newer

Point to ew-vodingest or your custom wrapper script:

upload.repackager_bin = /usr/bin/ew-vodingest
# Or with wrapper script:
upload.repackager_bin = /usr/bin/ew-custom-recorder

Older Convoy versions

Use symlinks:

ln -sf /usr/bin/ew-vodingest /usr/bin/recorder
# Or with wrapper script:
ln -sf /usr/bin/ew-custom-recorder /usr/bin/recorder

Legacy thumbnail workaround (ew-vodingest 1.12.0 only)

For older versions where ew-check-variant-alignment of ew-recorder does not accept thumbnail tracks, create /usr/bin/ew-custom-checker:

#!/bin/bash
set -e
/usr/lib64/ew-repackaging-recorder/bin/ew-check-variant-alignment "$@"
/usr/bin/ew-thumbnails-generator -i "$2"

Then: ln -sf /usr/bin/ew-custom-checker /usr/bin/ew-check-variant-alignment