
The Twistage CDN abstraction layer provides a consistent interface for connecting to any Content Delivery Network (CDN). Twistage serves as a middleware component to connect a variety of delivery methods to every Twistage player and API. Regardless of which CDN is delivering your content, you'll find that Twistage behaves the same way. The fact that Twistage manages the technical integration with each CDN in a uniform fashion means that if you decide to move to a different CDN provider in the future, it's as simple as a configuration toggle within our management console. There is no code to write and no embed codes to update.
Web-based content delivery generally falls into two main categories: progressive download and streaming. With progressive download, your content is downloaded sequentially by the client (typically a Flash or Silverlight video player) using the web's prevalent delivery protocol, HTTP, and played simultaneously as the content becomes available. The content is usually placed in the browser cache so that subsequent replays of the same content do not need to be re-fetched from the server. On the other hand, streaming means that the content is acquired by the client using some version of RTMP (another delivery protocol) and played in real-time but not cached to disk. Streaming is often a better choice for secure content, since the content is never cached to disk, as well as for long-form content, since streaming allows the end-user to randomly seek within the content. Meanwhile, progressive download is often used for short-form content and when users have a wide-range of Internet connections, since the client can download a large amount of the content ahead of time into its buffer to ensure smooth playback.
Delivery - Seek
Many CDNs offer "HTTP seek" technology, providing end-users with a similar experience to streaming with the advantages of HTTP delivery. The user is able to randomly seek throughout the video, even browsing to sections of the video which have not yet been buffered to disk. The player begins downloading the content from the appropriate location each time the user moves the player thumb to a different part of the video. The Twistage abstraction layer makes this work seamlessly across CDNs supporting HTTP seek.
Delivery - Accommodating varying Internet connections
In many cases, your users might be using a wide array of Internet connections. If you were to use a single high-quality version of a video for all connections, users on a slow connection might have trouble viewing the video, particularly if the bitrate of the video exceeds the connection speed with RTMP delivery. On the other hand, if you choose a single low-quality version for all connections, users on fast connections will have a less-than-optimal playback experience. In these situations, the Twistage video player can be configured to automatically detect the user's bandwidth and choose the most appropriate stream. This technology, sometimes called dynamic stream switching, makes several different versions of the same video available to the video player, allowing the player to select the highest quality stream that can be viewed without buffering.
Each of our CDN integrations includes a module designed to analyze log files for reporting purposes. Although each CDN may use a different file format for logging, the Twistage CDN abstraction layer smoothes out these differences to present a single, unified format for reporting data. Log files are downloaded many times throughout the day; once they have been analyzed, the resulting data is available immediately through our web-based management console and via APIs.
Depending on the type of content you plan to offer to your users, you may be interested in securing your content so that only authorized users can access it at any given time. Most CDNs offer a security suite allowing you to lock down your content. CDN security is often implemented through the use of authentication tokens. Twistage's seamless integration makes it easy to configure your account to use CDN security tokens with all of your content. It's also possible to secure a subset of your content by applying special security logic to content in different libraries.