Azure Media Services v3 samples using Java

The samples in this repo are a part of Azure Media Services and demonstrate how to encode, package, protect your videos with Azure Media Services v3 API using the Java client SDK. The repo also contains samples that demonstrate how to analyze videos and perform live ingest in order to broadcast your events.

Contents

Folder Description
VideoEncoding/EncodingWithMESPredefinedPreset The sample shows how to submit a job using a built-in preset and an HTTP URL input, publish output asset for streaming, and download results for verification.
VideoEncoding/EncodingWithMESCustomPreset The sample shows how to submit a job using a custom preset and an HTTP URL input, publish output asset for streaming, and download results for verification.
LiveIngest/LiveEventWithDVR This sample first shows how to create a LiveEvent with a full archive up to 25 hours and an filter on the asset with 5 minutes DVR window, then it shows how to use the filter to create a locator for streaming.
VideoAnalytics/VideoAnalyzer This sample illustrates how to create a video analyzer transform, upload a video file to an input asset, submit a job with the transform and download the results for verification.
AudioAnalytics/AudioAnalyzer This sample illustrates how to create a audio analyzer transform, upload a media file to an input asset, submit a job with the transform and download the results for verification.
ContentProtection/BasicAESClearKey This sample demonstrates how to create a transform with built-in AdaptiveStreaming preset, submit a job, create a ContentKeyPolicy using a secret key, associate the ContentKeyPolicy with StreamingLocator, get a token and print a url for playback in Azure Media Player. When a stream is requested by a player, Media Services uses the specified key to dynamically encrypt your content with AES-128 and Azure Media Player uses the token to decrypt.
ContentProtection/BasicWidevine This sample demonstrates how to create a transform with built-in AdaptiveStreaming preset, submit a job, create a ContentKeyPolicy with Widevine configuration using a secret key, associate the ContentKeyPolicy with StreamingLocator, get a token and print a url for playback in a Widevine Player. When a user requests Widevine-protected content, the player application requests a license from the Media Services license service. If the player application is authorized, the Media Services license service issues a license to the player. A Widevine license contains the decryption key that can be used by the client player to decrypt and stream the content.
ContentProtection/BasicPlayReady This sample demonstrates how to create a transform with built-in AdaptiveStreaming preset, submit a job, create a ContentKeyPolicy with PlayReady configuration using a secret key, associate the ContentKeyPolicy with StreamingLocator, get a token and print a url for playback in a Azure Media Player. When a user requests PlayReady-protected content, the player application requests a license from the Media Services license service. If the player application is authorized, the Media Services license service issues a license to the player. A PlayReady license contains the decryption key that can be used by the client player to decrypt and stream the content.
ContentProtection/OfflinePlayReadyAndWidevine This sample demonstrates how to dynamically encrypt your content with PlayReady and Widevine DRM and play the content without requesting a license from license service. It shows how to create a transform with built-in AdaptiveStreaming preset, submit a job, create a ContentKeyPolicy with open restriction and PlayReady/Widevine persistent configuration, associatethe ContentKeyPolicy with a StreamingLocator and print a url for playback.
DynamicPackagingVODContent/AssetFilters This sample demonstrates how to create a transform with built-in AdaptiveStreaming preset, submit a job, create an asset-filter and an account-filter, associate the filters to streaming locators and print urls for playback.
DynamicPackagingVODContent/StreamHLSAndDASH This sample demonstrates how to create a transform with built-in AdaptiveStreaming preset, submit a job, publish output asset for HLS and DASH streaming.

Prerequisites

  • Install Maven from https://maven.apache.org/download.cgi.
  • Update environment variable PATH to include Maven binaries location e.g. "c:\apache-maven-3.6.1\bin".
  • Install Java JDK 1.8 or higher from http://openjdk.java.net/
  • Update environment variable PATH to include JDK binaries location e.g. "C:\Program Files\Java\jdk-11.0.3\bin".

Setup

  1. Clone or download this sample repository
  2. Open a terminal window and cd to the sample you are interested in (for example, ContentProtection\BasicAESClearKey)
  3. Read README.md to see what key concepts to review and how to set up and run the sample

See also

.Net samples: https://github.com/Azure-Samples/media-services-v3-dotnet

Next steps