Release notes for version 5.0.1

CaptureCast Platform

  • More up-to-date x264 dependency included (that replaces the older one from Xuggler)
  • All python scripts ported to python 3
  • Updates to ensure compatibility with Ubuntu 18.04
  • sysvinit init script removed in favor of systemd service
    • service renamed from catturaCB (“Cattura Capture Box”) to cattura-capturecast for consistency
  • Event handling in the configuration agent improved and made more ergonomic
  • Reduce network connectivity checking to only check for our registration server.
  • Do not create “guest” account (if no users exist in the system, the Web Setup Plugin will prompt the user to create an admin account)

Plugin System

  • Plugin directory tree restructured by type, not which process loads them
  • i.e. instead of “configurator” and “processor”, plugin types are “capturing,” “integration,” “publishing,” “encoding,” “metadata,” etc.
  • Plugin settings split into user and system settings, like the main platform
    • Plugin system and user settings are pulled from various sources (CaptureCast settings, plugin directories etc) and injected into the plugin at load time
    • v4 style of plugin user settings (“settings.set” and “settings.get” services) removed
  • Data store object (for configuration agent plugins only) made more ergonomic

Web UI Plugin

  • Completely rewritten using in-house UI framework as a completely JavaScript plugin with no Java backend (and very minimal JavaScript backend)
  • nginx configuration added to enable UI to be served directly by nginx server, instead of by the embedded web server plugin
    • This means when CaptureCast is down, the UI will still be shown, but with a notice inviting the user to restart CaptureCast (in v4 this was a plain web page generated by nginx)
  • Electron wrapper added for localhost use
  • New extensions system for allowing other plugins to create bundled UI extensions (JavaScript, pug templates, CSS) which are then loaded by the UI plugin.
    • Many UI elements specific to certain plugins have thus been able to be split off from the core UI plugin into their specific plugins
    • This means that, for example, the code for the Kaltura configuration form is provided by the Kaltura plugin, not the UI plugin

Dashboard

  • Added ability to attach tags to a Quick Capture

Improved recording preview

  • Automatically refreshing thumbnail of recording shown by default, with opt-in live preview

Templates

  • Add/Edit Template modal redesigned as a wizard
  • More flexible template creation: publishers and media canvas are now optional
    • Media canvas can be added to any source copy, not just the “primary” compositor copy
    • Static or dynamic text is now supported as an overlay on a media canvas
  • If using a live streaming provider, written copy is optional (but generally recommended)
  • Streamlined workflow for authorizing an OAuth account right from the Publishing section
  • Template UI can now pass in writer plugin configuration directly to the template builder, or opt out of creating writers altogether.

Manage

  • Added tag filter
  • Edit Info modal: added ability to edit tags
  • VOD player (VideoJS/MediaElement.js) replaced with new (Shaka) VOD player
  • Added transcript editor. This is a core platform feature independent of the transcription plugins themselves, as transcripts can enter CaptureCast through e.g. the media package import/ingest plugins, or by manually attaching them somehow.

Schedule

  • Add/Edit Event modal redesigned as a wizard
  • Import Schedule modal redesigned
    • It is now possible to batch up imported events and assign them different properties per batch (currently template is the only property)
  • External schedule event details are now shown in the read-only View Event modal

Devices

  • Moved to Settings modal

Settings

Accounts

  • Add ability to add OAuth client id and secret directly to CaptureCast.
    • This enables the ability to authorize a client through the OAuth browser flow.
  • Add ability to add logins (i.e. OAuth access/refresh tokens) directly to CaptureCast.

Licensing and Updates

  • New section that allow for checking the license status of CaptureCast and checking for updates
  • Shows log of recent updates intiiated from this UI
  • If not already registered, user can supply a valid license key to register CaptureCast and gain access to updates
  • Update checks are done in the background and can be initiated manually

Live Preview Plugin

  • WebM (Cattura Web Streamer) preview removed
  • VideoJS Flash RTMP player removed
  • DASH stream player (Shaka) added
  • Live preview streams are created on demand (i.e. when the client requests the DASH manifest) and destroyed when no longer in use
    • Applies for both devices and recordings
    • Applies on a per-source basis, not the entire recording: i.e. the stream for any source in the recording is created at the moment the user requests it, and destroyed if no more users are viewing it
  • API enhanced to expose the data structure for a recording preview (thumbnails and live streams)
  • No longer has a hard dependency on cattura-nginx and can be configured to use a custom rtmp server + dash fragment directory.

RTMP Streaming Plugin

  • Red5 implementation completely dropped and replaced by native rtmpdump implementation
    • Problematic Tatvik h264/AAC library dependency dropped
  • Support for RTMPS added

Command Center Integration Plugin

  • Improved dispatch of events to multiple Command Centers by using a single thread per Command Center (similar to how the processor-engine works)
  • Un-promisify plugin internals so responses are handled synchronously.
  • Do not transmit events to Command Center v1 if that version does not understand them (e.g. AudioLevelsEvent)
  • Do not log pushing certain high-frequency events (such as AudioLevelsEvents)
  • Add compatibility for Command Center v2
  • Push network/storage updates to Command Center v1 and v2
  • Push three-year range of scheduled events, for the Command Center’s Agenda view
  • Push software update status to Command Center v2

Web Setup Plugin

  • New plugin that allows users to set up the CaptureCast admin user themselves.

Text Generator Plugin

  • New plugin that allows static or dynamic text to be added to a recording session.

ALSA Capture Plugin

  • Add ability to configure device filters or add custom filters in plugin settings.

Amazon Transcription Plugin

  • New plugin that allows submitting finished recordings to Amazon’s transcription API.
  • Not included by default

Rev Transcription Plugin

  • New plugin that allows submitting finished recordings to Rev transcription service.
  • Not included by default

Xuggler Writer Plugin

  • Bitrate options added
  • Now uses fdk-aac codec for audio-video recordings.

Installer Integration Plugin

  • New plugin for integrating the CaptureCast Installer (>= 2.0.0) with CaptureCast.

CaptureCast Installer

  • Now requires registering the CaptureCast instance with a key
  • Ported to Python 3

Frame Compositor Plugin

  • Formerly called Frame Stitcher Plugin
  • Non-native (JVM) implementation of compositor removed

Tesseract OCR Plugin

  • Formerly called Screen Reader Plugin or OCR Plugin
  • Updated to latest Tesseract 4.x release
  • Fix issues where Tesseract/Leptonica objects are not being correctly cleaned up.
  • Reduce number of threads being spawned by this plugin by keeping all Tesseract interaction on a single FrameBuffer thread.
  • Move shutdown/deallocate logic to FrameBuffer thread so we don’t need to synchronize on the Tesseract handle.

ShotDetect Plugin

  • Move shutdown/deallocate logic to FrameBuffer thread so we don’t need to synchronize on the ShotDetect handle.
  • Drop packets while ShotDetect is busy

PPM Viewer Plugin

  • No longer exposes a separate web event source for audio level data.
  • Now starts automatically and transmits audio level data using the standard configuration agent event system.
  • Store all PPM data in ConcurrentMaps so that PPM data can be safely updated while it is being read by the PPM poller thread.

Save Image Plugin

  • Use a single-threaded executor to run save image tasks, so the dispatcher thread does not get cloggged.

Cattura nginx server

  • Updated to nginx 1.18.0
  • Patched to allow CaptureCast Live Preview Plugin to read DASH chunks and manifests.
  • Improved SSL support:
    • ssl-cert-snakeoil used by default - we no longer generate the cert ourselves
    • Let’s Encrypt/Certbot support using a script that will automatically set up and execute the Certbot request given the domain name of the recorder, and configure nginx to use the newly obtained certs
      • /usr/local/nginx/run_certbot $DOMAIN_NAME
      • Certbot is not installed by default

QTFastStart Plugin

  • qt-faststart updated
  • Can now process multiple input video files sequentially.

Panopto Publishing Plugin

  • Ensure client is logged in when making get folders call.

Panopto Scheduling Plugin

  • New plugin for registering CaptureCast as a recorder for Panopto.

Opencast Scheduler Plugin

  • New plugin for registering CaptureCast as a capture agent for an Opencast scheduler.

Opencast Publishing Plugin

  • Fix compatibility with Opencast >= 8.3

Kaltura Scheduler Plugin

  • Copy over templateEntryId field from Kaltura event to Cattura recording task.
  • Fixed an issue where, if the plugin fails to connect to Kaltura on startup, the plugin never tries to reconnect until user explicitly reconnects.
  • Add support for multi-streaming. Allow user to specify encoding, resolution, and fps settings per stream.
  • Prevent user from deleting a template in-use by the Kaltura scheduler.
  • Add privileges setting (default: disableentitlement)
  • Add support for application token.

Kaltura Publishing Plugin

  • templateEntryId parameter exposed in the UI
  • Improved chunk upload retry logic
  • Add support for application token.

Google Drive/YouTube Publishing Plugins

  • Do not fail the publish session if we are unable to get user’s userId.
  • Allow OAuth client id and secret to be passed into plugin config and settings. This is meant to be used for testing and isn’t a UI-facing feature as we use the token refresher plugin there instead.

Vimeo Publishing Plugin

  • Allow OAuth access token to be passed into plugin config and settings. This is meant to be used for testing and isn’t a UI-facing feature as we use the token refresher plugin there instead.
  • Remove hard-coded Cattura credentials.

Web Console Plugin

  • Purge exception infodumps on low disk space threshold.
  • Expose installer logs (generated from the Installer Integration Plugin, e.g. the updater UI)
  • Fix an issue where log file list endpoint does not properly return, and instead reads and outputs all the log files found (which can cause a heap error if there are too many logs)
  • Actually expose attached infodumps
  • Remove ability to install plugins through the console

Log Downloader Plugin

  • Request to download logs is now submitted asynchronously, and the plugin will emit an event when the logs are ready. This is so the request does not time out if there are too many logs or a specific log takes too long to dump.
  • Do not include uninteresting system logs.
  • For exception infodumps, only generate network_debug.log if the exception appears to be network-related.
  • Improve efficiency for situations where multiple plugins request a log/infodump (e.g. notifier plugin, console plugin)

Email Notification Plugin

  • Add ability to connect through SSL/TLS
  • Expose the following settings as user settings:
    • host
    • port
    • ssl
    • tls
    • username
    • password
    • debug
    • fromName
    • fromAddress
    • replyToName
    • replyToAddress

HTTP API Plugin

  • API Plugin now accepts JSON post bodies
  • API key support added
  • HTTP API expanded (see auto-generated API doc)

Media Package Ingester Plugin

  • New plugin that handles ingesting media packages.
  • Provides HTTP API for the CaptureCast Publishing Plugin
  • Also used as the backend for the Media Package Importer Plugin

CaptureCast Publishing Plugin

  • New plugin for publishing media packages to another CaptureCast instance
  • Not included by default

Removed Plugins

Learning Engine Plugin

Cattura Web Streamer Plugin

Scene Change Detection Plugin

Local Storage Plugin

Twitter Plugin

No Signal Frame Plugin