Advanced Media Add-on
In the latest release of Extended ECM version 24.3, we've introduced enhanced video capabilities through an optional add-on known as the 'Advanced Media Add-on.' With this feature, users can seamlessly convert uploaded videos into streaming-ready formats, play back video content, annotate videos, and extract clips from their uploaded materials.
This is available in the SmartView and allows playback directly within the browser without any client side changes.
How are videos converted
To leverage the Advanced Media Add-on it requires the deployment of another component called the Digital Media Transformation Service (DMTS) this is a component that was originally developed and leveraged by our OpenText Media Management platform that now we are utilizing from Extended ECM.
Video Ingestion Process
- User Uploads Video - The video is stored in the Protected Storage Provider.
- Video Conversion - The DMTS Service is called, and picks up the video file converting it to a streaming copy, and generating thumbnails.
- Storage Rules Run - Once the streaming copy and thumbnails are generated, the original and new copies are processed through the storage provider rules and stored in accordance with them.
- The node has new renditions created on it, for both thumbnails and the streaming media copy.
How do we handle video playback
One of the big challenges with handling video playback in Extended ECM historically has been both concurrent user, and random byte serving. Depending on your storage provider configuration, multiple users accessing the same file may result in it being brought across the network in its entirety to each Extended ECM frontend based on your chosen storage provider. So let's run through the technical changes that happened to support this new capability.
Storage Provider Cache
We've created a new concept called the 'Storage Provider Cache' this is a shared location between all Extended ECM frontends. When a user plays a video with 'Advanced Media Add-on' a copy is moved from whichever storage provider it currently resides on (Archive Center, Object Storage, Core Archive, EFS, etc.) to the Storage Provider Cache, this cache is then shared between authorized users, and the Extended ECM frontends reducing overall network load on backend storage providers.
Items will remain in the cache until they age out at 7 days of no-one accessing them, or if the cache reaches its maximum size in which the least recently access content will be phased out.
Direct Fetch and Byte Serving
Direct Fetch has been around for a very long time in the product, however has in recent years fallen out of use with the proliferation of more advanced storage providers beyond the External File Store.
As a recap, Direct Fetch historically allowed the Extended ECM CGI or Servlet to directly access the External File Store to handle the actual transfer of data to the end users browser after Extended ECM had validated their permissions, security clearance, and other account information. Since the GCI and Servlet have no ability to authenticate with a variety of storage solutions, fewer and fewer customers have been leveraging it. Meaning that we are often tying up an Extended ECM thread to serve content to an end user.
Another change that was made to Extended ECM to support video streaming was the enhancement of Direct Fetch to support Byte Range headers. Now the CGI and Servlet can parse the range headers from the browser which are requesting a specific portion of the file, rather than only supporting returning the entire object. This allows us to support seeking to arbitrary locations in the video stream.
Video Playback Process
- User selects a converted video to play.
- The streaming rendition of the video is transferred to the storage provider cache if not already present.
- The Extended ECM CGI/Servlet byte range serve the video from the storage provider cache to the end user not occupying Extended ECM threads.
- The cache is purged based on exceeding the maximum cache size, or if the object has not been accessed in the last seven days.