FastPix tutorials

How to Build a Video CMS Platform using FastPix APIs

Start building your video CMS platform with features & APIs that bring your vision to reality faster.

Share
This is some text inside of a div block.

A video CMS helps you store, manage, and stream videos without the hassle. Whether you’re running a streaming service, an online course, or a business video library, having a system in place makes everything easier.

FastPix API takes care of the heavy lifting, from uploading and organizing videos to streaming and security. In this guide, we’ll go over how to build a video CMS with FastPix, step by step.

Quick platform overview

Here’s a look at what our platform will provide:

Category Features
Content Management  - Uploads SDK for easy video ingest into CMS
- Chunked uploading for large video files.
- Using APIs to upload video.
- Move videos in batch from other libraries. 
Organizing Video Library  - Dynamic metadata for tagging and categorization.
- Custom fields for detailed video organization
- Content recommendations based on user behavior. 
Video Processing and Transcoding  - Support for multiple video resolutions (up to 4K).
- Multiple video formats.
- Context-aware encoding for more efficiency.
- Track content updates in real time. 
Boost User Experience  - Auto-generated thumbnails.
- Watermarking logos in video.
- Create GIFs from video.
- Add bumpers to video.
- Timeline hover preview using spritesheets. 
AI-features for Advanced Video  - Content moderation using NSFW filter.
- Auto-generated thumbnails.
- Add chapters in video timeline.
- Generate named entities. 
Video Delivery and Playback  - Cross-platform video player with adaptive streaming.
- Built-in playback controls
- Video delivery across different platforms
- Embed video to websites using iframe
- MP4 downloads for offline access 
Analytics & Performance Tracking  - Viewer engagement metrics (watch time, views).
- Geographic reach analysis for audience insights.
- Measure playback, QoE and performance 
Security and Access Control  - Signed URLs for temporary video access.
- DRM encryption for content protection. 

Getting started with FastPix API

First, we'll need FastPix APIs to handle video assets in the platform. You'll need a token key pair, an Access Token ID and a Secret Key. You can think of these as your platform’s credentials for communicating with FastPix.  

Check out this setup guide to get your tokens. These tokens will be used to authenticate API requests you make to FastPix. In the setup guide, you'll find instructions on how to manage access tokens, set permissions, and different authentication methods. Once that's sorted, you can start uploading videos in your application.  


Please note, if you’re just getting started and thinking about migrating to FastPix, we also offer a batch migration tool that lets you easily import all your existing videos from other video platforms, such as Cloudflare Stream, AWS, Mux, api.video and Vimeo. You can always speak to us if you have use case for any other platform.

1. Content management and upload workflows

Building video into your CMS platform is more complicated than you might actually think. Your users would upload videos ranging from short to long form videos. The platform should be able to handle anything that’s thrown at it. For instance, a generic high-resolution lecture recording can easily reach 2-3 GB. Uploading such videos with standard upload limits will be difficult.  

Single-threaded uploads are slow and time-consuming, and uploading large files all at once can place a heavy load on the client’s device. To make things easier, we suggest uploading videos in chunks. With chunked uploading, you can safely upload high-quality videos without worrying about timeouts or connection issues. The system automatically resumes from the last successful chunk if an upload is interrupted.

Example for video upload into CMS:

video upload into CMS

1.1. Uploads SDK for easy video ingest into CMS  

Standard API requests for  direct uploads  only support video files up to 500 MB without chunking. For larger files, the FastPix  resumable uploads SDK  makes it easy to upload and process videos.  

This SDK lets you pause and resume uploads, so if your connection drops or you need to take a break, you won’t have to start over. With resumable uploads, you can send your videos in smaller chunks, which means that your progress is saved even if there’s a brief interruption.

You can install the SDK using:

1npm i @fastpix/uploader

Making API requests with an SDK is always easier. SDKs give you pre-built functions that take care of error handling and authorization for you. FastPix has dedicated SDKs for Web uploads, and for both Android and iOS, so you can easily integrate it into your applications.

After installation, you can run this command in your terminal to import the upload component into your application:

1import { Uploader } from "@fastpix/uploader";  
2
3const fileUploader = Uploader.init({ 
4    endpoint: 'https://example.com/signed-url', // Replace with the signed URL.  
5    file: mediaFile, // Provide the media file you want to upload.  
6    chunkSize: 5120, // Specify the chunk size in kilobytes (KB). Minimum allowed chunk size is 5120KB (5MB).  
7
8    // Additional optional parameters can be specified here as needed  
9
10})

This SDK makes it easy to upload large files from your browser by splitting them into smaller chunks, which are much more manageable than one large file. Plus, you can also manage the upload lifecycle process using methods such as:

- Pause an upload

- Resume an upload

- Abort an upload

1.2 Using APIs to upload video

Video uploads are the foundation of your CMS platform. FastPix handles multiple upload methods while managing large files efficiently, ensuring your content gets processed quickly and reliably.

We make it easy to upload videos by supporting direct uploads from your device's storage as well as from a public URL through our APIs.

When you upload a video, FastPix assigns it a unique ID, which helps you manage your content easily. If your videos are already stored with other cloud storages like S3, Google Cloud Storage, Azure Blob Storage, and other public CDNs; then you can easily pull those videos using our create media from URL endpoint. For more details, be sure to check out this guide.

To upload your first video, simply send a POST request to the /on-demand endpoint with the URL of a publicly shareable video file.  

1curl -X POST 'https://v1.fastpix.io/on-demand' \ 
2   --user {Access Token ID}:{Secret Key} \ 
3   -H 'Content-Type: application/json' \ 
4   -d '{ 
5   "inputs": [ 
6      { 
7         "type": "video", 
8         "url": "https://static.fastpix.io/gtv-videos-bucket/sample/ForBiggerJoyrides.mp4" 
9      }, 
10   ], 
11   "accessPolicy": "public", 
12   "maxResolution": "1080p" 
13}' 

Otherwise, if you prefer to upload directly from your device or local storage using our API, you can follow our guide on how to upload media from device.

FastPix uses webhooks to notify your application about events that occur in the background beyond the standard API request flow. For example, when a media file is created, we’ll send a POST message to the address of your application with the webhook event video.media.created.

You can follow this guide for setting up webhooks:  Webhooks for status.

1.3 Move videos from other libraries

Migrating your video library to your new CMS platform doesn’t have to be a daunting task. Here’s how you can make the transition smooth and efficient:

  1. Access your current library:  Identify the videos you want to migrate, their formats, and associated metadata like titles and descriptions. 
  2. Choose your migration method:  We support accelerated uploads for faster video uploads.  
  • Bulk upload: If you have a large number of videos, you can use our batch migration tool  to upload multiple files at once from other video platforms, such as Cloudflare Stream, AWS, Mux, api.video and Vimeo. (Please note this is one of our beta features)
  • API integration: Connect directly to your existing storage or library for automated migration. 

Move videos from other libraries

2. Organize videos with metadata and tags

We understand that categorizing videos is important for helping users find what they need. That’s why FastPix supports dynamic metadata, allowing you to create flexible keys that can hold any value. You can implement a feature that allows users to search for videos using these specific key-value pairs, such as "key": "value."

You can add up to 10 custom fields for each video, with each field able to hold up to 255 characters. This lets you tag your videos with details like category, location, breaking news status, and event type. This makes it easier for teams to manage their content and for viewers to find the information they’re looking for.

2.1 Organizing video content for better recommendations

A personalized content experience keeps users engaged and coming back for more. You can build a recommendation system using metadata like tags, titles, and descriptions. Suppose, you can build a system that pulls keywords from those to figure out what videos are similar. Then, take into account: users' viewing history, interests, and the content they interact with to suggest relevant material.

By understanding what users enjoy and engage with, the system can recommend similar articles or videos that match their preferences. This way, users can easily find content they'll love.‍

3. Video processing and transcoding

When you upload your videos, we take care of everything to make sure they look great on any device. We transcode your videos, which means we convert them into different formats and qualities.  

This way, whether someone is watching on a phone, tablet, or computer, they’ll get the best experience possible. We use adaptive bitrate streaming, so the video quality adjusts based on the viewer's internet speed. This ensures smooth playback without interruptions.

3.1 Video transcoding options

To get started with transcoding, we help you set up quality profiles. This means you can choose how good you want your videos to look. You can also adjust the maxResolution parameter, which defaults to 1080p when uploading a new video. The maximum resolution tier determines the highest quality your media will be available in. The maxResolution can be set to 360, 480, 720, 1080, 1440, or 2160.

If you want to include audio or different video qualities, you can adjust the mp4Support parameter with these options:

  • capped_4k: Generates an mp4 video file up to 4k resolution.
  • audioOnly: Generates an m4a audio file of the media file.
  • audioOnly, capped_4k: Generates both video and audio media files for offline viewing.

3.2 Support for multiple video formats

Allows users to upload video content in various formats and codecs, such as H.264, VP8, MP4, AVI, MKV, MOV, etc. FastPix supports all widely used video formats and codecs eliminating any need to convert. Therefore, speeding up the video generation workflow and reducing turnaround time.  

You can integrate video uploads into your applications without worrying about format compatibility, providing you a consistent experience across all platforms.

3.3 Context-aware encoding for more efficiency

Context-Aware Encoding, also known as per-title encoding, is a feature in video streaming APIs that optimizes the encoding process based on the specific characteristics of each video. This ensures the best possible quality and efficiency for video playback, enhancing the overall viewing experience.

At FastPix, we understand the importance of both quality and cost-efficiency when it comes to streaming. That’s why we’ve video technologies like Context-Aware Encoding (CAE) pre-build into our system, helping you reduce streaming costs while maintaining an exceptional viewing experience.

With FastPix, you can easily leverage CAE to:

  • Reduce storage costs by up to 66%.
  • Save on bandwidth with up to 30% less consumption.
  • Optimize video quality without overusing resources.

3.4 Track content updates in real time

FastPix uses webhooks to notify your app about background events, such as when a media file is created but not yet processed. For example, a POST message will be sent to your application’s web address with the event video.media.created. For more details, you refer to the guides on setting up webhooks – Webhooks for status.

4. Boost user experience

4.1 Creating thumbnails for your videos

To create thumbnails for your uploaded videos, just send a request to this URL. Make sure to replace {PLAYBACK_ID} with your video's ID:

1https://images.fastpix.io/{PLAYBACK_ID}/thumbnail.{png|jpg|webp}

You can choose from JPG, PNG, and WEBP formats for your thumbnails, but we recommend using WEBP. It strikes a nice balance between quality and fast loading, which is perfect for video platforms.

You can also customize your thumbnails by adjusting the width and height, and you can flip them either horizontally or vertically. If you’d like to learn more about how to use these options, check out our guide on extracting thumbnails from videos.

4.2 Adding a watermark to your videos

To add a watermark image to your video, you’ll want to set up your API request with a payload that outlines both the video and watermark details. You can control where the watermark appears using alignment and margin settings and customize its look by adjusting the size and opacity.

Follow our guide here to add watermarks to videos: Watermark your videos.

 Adding a watermark to your videos

4.3 Create GIFs from videos

FastPix makes it simple to turn videos into GIFs, which can add some fun and shareable content to your app. GIFs are perfect for social media and messaging, making your platform livelier. Here’s a quick guide on how to create GIFs from videos.

To make a GIF, just send an API request to FastPix with the video’s playback ID and the start and end times for the clip you want. You can also pick the output format (GIF or WEBP) and set the size.

1https://image.fastpix.io/{PLAYBACK_ID}clip.{gif | webp}

You can customize it just the way you want, choose the start and end times on the video timeline, along with the height, width (in pixels), and frames per second (fps) for the GIF.

4.4 Adding bumpers to videos

To add bumpers (intro/outro) to your video, simply provide the media URLs for the bumper files in your API request. Bumpers act as introductions and conclusions for your content.

1{
2    "inputs":
3    [
4        {
5            "type": "video",
6            "url": "https://static.fastpix.io/Mainvideo.mp4",
7            "introUrl": "https://static.fastpix.io/introvideo.mp4",
8            "outroUrl": "https://static.fastpix.io/outrovideo.mp4",
9        }
10    ]
11} 

Here, url is the base video URL of your main video, introUrl is the intro video’s URL and outroUrl is the outro video’s URL.

For detailed instructions, check out this guide for adding intros and outros: Add an intro and outro to your video.

4.5 Timeline hover previews using spritesheets

Spritesheets are a great way to create quick video previews, but many people struggle with challenges with the technicality of compiling frames and ensuring smooth playback.  

But don’t worry, check out our guide here:  Add timeline hovers using spritesheets.

Timeline hover previews using spritesheets

5. AI-features for your video CMS

5.1 Setting up content moderation

Content moderation is important for maintaining quality and trust with your audience. We recently tested our NSFW filter on a video that mostly showed violent content, and here’s what we found:

  • Violence: 0.94
  • Graphic Violence: 0.85
  • Self-Harm: 0.49

content moderation
( …it’s really graphic!! )

These scores range from zero to one, showing that the filter effectively detects potentially harmful content.

To enable moderation, set the moderation parameter to true with a PATCH request using the video's mediaId. The mediaId is a unique ID for each video, helping the system know which video to moderate. This feature helps keep your content safe and appropriate.

The request will look like this:

PATCH

1/on-demand/<mediaId>/moderation

For more tips on managing your content, check out our blog on using AI for NSFW and profanity filters.

5.2 Creating auto-generated subtitles for videos

FastPix automatically creates and adds subtitles for your video files. To turn on auto-generated subtitles, just include the  createSubtitles  JSON object in your video settings.

Here’s what you need to include in key-value pairs:

  • name: Specify the language of the audio (e.g., "english").
  • metadata: You can add a metadata object to tag specific information with the subtitles.
  • languageCode: The language code that matches the spoken language in the video (e.g., "en" for English).

For detailed guidelines and best practices for adding subtitles, check out this guide:  Add auto-generated subtitles.

5.3 Add Chapters in video timeline

You can add chapters to your video timeline to improve user navigation and enhance the viewing experience. By segmenting your video into chapters, viewers can easily jump to specific sections without needing to scrub through the entire video. This guide will show you how to add chapters to the fp-player video element using the addChapters method.

Add Chapters in video timeline

5.4 Generate named entities from videos

Named entity recognition, or NER, is a natural language processing (NLP) technique that identifies specific entities in text, such as names of people, places, organizations, dates, etc. By tagging these entities, NER turns unstructured text into structured data, making it easier to analyze and use in various applications.

This feature identifies names and gives them meaning in a given context. For example, in the sentence “Apple announced its latest product in California,” NER identifies Apple as a company, not the fruit, and California as a location.

What categories NER can identify?

NER typically focuses on recognizing common categories such as:

  • People (e.g., “John Smith”)
  • Organizations (e.g., “UNICEF”)
  • Locations (e.g., “Mount Everest”)
  • Dates and times (e.g., “July 4, 1776”)
  • Miscellaneous entities like product names (e.g., “iPhone 14”) or monetary values (e.g., “$1,000”)

Read more details in our recent blog.

To generate named entities for new video uploads, you can use either of our upload from URL or device APIs. Create a JSON request and set value for the namedEntities parameter as true to enable named entity extraction.

Request body example (Creating new media from URL):

1{
2  "inputs": [
3    {
4      "type": "video",
5      "url": "https://static.fastpix.io/sample.mp4"
6    }
7  ],
8  "namedEntities": true,
9  "accessPolicy": "public",
10  "maxResolution": "1080p"
11}

See our detailed guide for named entity generation.

6. Video playback setup for your application

Video quality really matters for streaming because viewers want to understand the story and see everything clearly. That’s why our player automatically adjusts the video quality based on the user’s connection speed and device. FastPix Player  natively supports adaptive bitrate streaming (ABR), leading to smoother playback and a better experience for everyone.

To get started, run this command in your terminal to install the Video Player SDK:

1npm install @fastpix/player

Then, you can import the player component into your application:

1import "fastpix-player";

You can easily customize your video player’s look and feel by tweaking the CSS selectors. This lets you adjust controls, height, width, aspect ratio, etc. to match your app’s design.

Here’s how to modify the player component:

  • Height and Width: Change the height and width properties to set the player’s dimensions, ensuring it fits perfectly in your layout. 
  • Aspect Ratio: The aspect-ratio property keeps the video proportions right. For example, setting it to 16/9 gives you a widescreen format, perfect for most videos.

1fp-player {  
2  height: 800px;  
3  width: 600px;  
4  aspect-ratio: 16/9;  
5} 

You can also the player controls interface, whether you want all the controls, a balanced layout, or a compact design, you can set it up just the way you like.

6.1 Built-in playback controls in player

The player gives you lots of options to customize it for your video platform or the CMS that you’re building for your application. You can easily change the controls, branding, and playback settings to match what you need.

For on-demand videos, the player has easy-to-use controls like play/pause, a seek bar, volume settings, and fullscreen options. For live streams, it highlights important features like live indicators, picture-in-picture control, and a simple seek bar.  

It prioritizes accessibility with features like keyboard navigation, closed captions, making it user-friendly for everyone. For easy setup, take a look at the FastPix Player documentation.

Built-in playback controls in player

6.2 Managing video distribution across different platforms

The videos you upload with FastPix will work with any player, whether it’s Shaka Player, HLS Player, Exo Player for Android, or AV Player for iOS. This gives you the flexibility to choose the player that fits your needs.

FastPix Player comes with built-in video data and analytics features, and it automatically transcodes videos for different devices, creating an encoding ladder for each one. Our player is cross-platform, so your videos will work on the web, Android, iOS, and more without any extra effort.

6.3 Video URL embedding for websites

To embed your videos on any website, blog, or CMS, just grab the provided iframe embed code. It lets you add the video player directly to your page with full control over playback options, like autoplay, muted sound, or looping.  

Simply paste the iframe code into your HTML file, and the video will be ready to play anywhere. You can even adjust settings like aspect ratio or hide controls for a cleaner look.

1<iframe src="https://play.fastpix.io/?playbackId=<playback-id>&autoplay=true&muted=true&loop=true&hide-controls=true&enableVideoClick=true&aspect-ratio=21/9" width="1920" height="1080"></iframe> 

6.4 Enabling video downloads for offline access

Videos can be accessed anywhere, even in places with limited internet. Our platform allows uploaders to download the master MP4 files of their videos, making it easy to keep important content for offline use. This feature is especially useful for:

  • Creators who need to reference footage in areas with poor connectivity.
  • Teams working across different time zones who want quick access to their content.
  • Uploaders who want to keep the latest versions of their videos on hand for archiving.

The download system ensures that the video quality remains high while keeping file sizes manageable. This way, uploaders can enjoy clear, professional-quality content even when they’re not connected to the internet.

If you’d like to learn how to enable MP4 downloads, check out our guide on MP4 support for offline access.

7. Video analytics and insights for your application

Understanding how your videos are doing is really important for any video platform. Our Video Data tool makes this easy by breaking down performance into over 50 categories, like device type, viewer location, playback method, and time intervals. This way, you can get a clear picture of how your content is performing.

With the Video Data SDK, tracking these key metrics is a breeze. It works well with popular players like Shaka Player, HLS.js, Exo Player for Android, AV Player for iOS, and our own FastPix player. This means you can see how your content is being watched and make changes to keep your viewers engaged.

If you’re looking for help getting started with Shaka Player, take a look at our guide for Shaka Player. These insights can help you fine-tune your streaming and keep your audience interested.

7.1 Monitor viewer engagement

Just looking at view counts doesn’t give you the full picture of how your content is performing. Our analytics system tracks important engagement patterns, showing you how viewers interact with different types of videos.  

For example, you might notice that tutorial videos tend to keep viewers watching longer than promotional clips. Understanding these patterns can help you create content that your audience really enjoys.

Here are some key metrics to keep in mind:

  • Total views: This tells you how many times your video has been watched.
  • Watch time: This measures how long people spend watching your video. More watch time means your content is hitting the mark.
  • Unique views: This counts how many different viewers watched your video, giving you a sense of your audience size.

Learn more about audience metrics here.

7.2 Analyze geographic reach

Knowing where your viewers are can give you great insights into how your content connects with different areas. By tracking where your views are coming from, you can see which topics resonate locally and which ones have a wider appeal.

For instance, if you notice a lot of views from a specific region, you might think about creating more content that speaks to that audience's interests. This can help build loyalty and expand your reach.

7.3 Measuring video playback and quality of experience

Quality of Experience (QoE) metrics help you see how your videos are doing from the viewer's point of view. These metrics focus on the overall experience users have while watching your content. Here are some key QoE metrics to keep in mind:

  • Playback success: This shows how often your videos play without any problems. A higher percentage is better. 
  • Startup time: This measures how fast your video starts after someone clicks play. A faster startup time is always nicer. 
  • Smoothness: This looks at how consistently your video plays. You want it to run smoothly without buffering or interruptions. 
  • Video quality: This checks how clear and sharp your video looks while playing.

For more details, check out the QoE metrics guide here.

A screenshot of a computerAI-generated content may be incorrect.

7.4 Measure video performance

Video performance metrics are more than just numbers; they show you how your video actually perform. Our system checks both technical quality and engagement data to make sure your content is delivered well.

It looks at important factors like stream quality for live broadcasts and on-demand videos, checking how quickly they start and how smoothly they play. This way, your content can reach viewers quickly and maintain a high standard.

When it comes to playback failure, there are a couple of important metrics to keep in mind: playback failure rates and exits before the video starts.

  • Playback failure: This metric shows how often viewers try to play your video but encounter issues that prevent it from starting. A high playback failure rate can indicate technical problems that need addressing.
  • Exits before the video starts: This tracks how many viewers leave before the video even begins to play. If this number is high, it might suggest that your video isn’t capturing interest right away or that there are loading issues.

By monitoring these metrics, you can identify potential barriers that might be frustrating your audience and work on solutions to improve their viewing experience.

Learn more about these metrics here.

8. Securing your video content

Keeping your video content safe is really important, and it needs solid security measures to protect it while still making it easy to access. These measures help make sure your content reaches the right viewers while allowing you to control who can see it.

8.1 Access control for premium content

Managing premium content is essential for keeping it secure. Signed URLs provide a safe way to access exclusive video content. These URLs come with built-in expiration times and specific permissions. For example, a URL might look like this:

https://play.fastpix.io/uploads/...&X-Amz-Expires=7200

In this case, the expiration time is set for two hours, which means these temporary links can’t be shared indefinitely. This helps protect exclusive interviews, special reports, and subscriber-only content while ensuring that only authorized viewers can access it.

8.2 Content protection and DRM setup

Digital Rights Management (DRM) is important for protecting the work of video creators. Our platform uses industry-standard DRM encryption for videos, which stops unauthorized downloads and sharing. This means that video creators can feel confident knowing their content is safe and only available to the right viewers.

To manage who can access your videos, you can change the accessPolicy parameter. By setting it to drm, you enable digital rights management. If you prefer a simpler option, you can set the access policy to private to limit access without the added complexity of DRM. You can choose from public, private, or drm to fit your needs.

Here’s how to set the access policy for DRM:

1"accessPolicy": "drm"

And for private access:

1"accessPolicy": "private"

Example of private and public access in a video platform:

A screenshot of a videoAI-generated content may be incorrect.

In summary…  

Building tech products with video isn’t easy.    

To stream video, many things need to work well. From scalable compute for video encoding, encoding for different types of content, delivering content globally, ensuring it plays across web, mobile and TVs, ensuring it plays well in fluctuating internet, debugging and fixing things before folks holler on social media etc.  

For all these, you need a reliable video infrastructure that makes it easy for developer teams to add video to their products worldwide; .…and we are here to help. Every single part of FastPix is engineered to help you move faster.

If you're interested in more tutorials like this one for videos platforms such as YouTube and TikTok, or e-learning on Udemy, take a look at these guides: YouTube tutorial, TikTok tutorial, Udemy tutorial.

Thinking about adding video to your product? You can get started today. We’d love to hear what you think about our features, feel free to reach out and share your thoughts!

Frequently asked questions

What is a video CMS, and how is it different from a traditional CMS?

A Video CMS (Content Management System) is designed specifically for managing, storing, and delivering video content. Unlike traditional CMS platforms that focus on text and images, a Video CMS includes features like video encoding, adaptive streaming, metadata management, and access control for video libraries.

What are examples of a video CMS?

Content Hub, Microsoft Stream and WordPress are some of the examples.

What is CMS in the OTT platform?

A CMS for OTT is a software application designed to manage and publish content on OTT platforms. It helps store, organize, and update videos and other multimedia elements, while also offering tools for managing user access and workflow.

How can I improve video performance and user engagement on my platform?

Optimizing video performance involves using adaptive bitrate streaming, CDN integration for faster loading, and metadata tagging for better searchability. To boost engagement, enable personalized recommendations, interactive features like comments and likes, and analytics tracking to understand viewer behavior.

What security measures should I implement to protect my video content?

To secure video content, use DRM (Digital Rights Management) to prevent unauthorized access, signed URLs for temporary access control, and encryption protocols like HLS AES-128. Additionally, watermarking and geographic restrictions can help protect premium or licensed content.