Pubblicare contenuti di Servizi multimediali di Azure mediante .NET

Overview

È possibile trasmettere in streaming un set MP4 a velocità in bit adattiva creando un localizzatore di streaming OnDemand e un URL di streaming. L'argomento relativo alla codifica di un asset illustra come codificare un asset in un set MP4 a bitrate adattivo.

Nota

Se il contenuto è crittografato, configurare i criteri di distribuzione degli asset (come descritto in questo argomento) prima di creare un localizzatore.

È inoltre possibile usare un localizzatore di streaming OnDemand per creare URL che puntano a file MP4 scaricabili in modo progressivo.

Questo argomento illustra come creare un localizzatore di streaming OnDemand, per pubblicare l'asset e creare URL di streaming Smooth, MPEG DASH e HLS, e come creare URL di download progressivo.

Creare un localizzatore di streaming OnDemand

Per creare un localizzatore di streaming OnDemand e ottenere gli URL, è necessario effettuare le operazioni seguenti:

  1. Se il contenuto viene crittografato, definire i criteri di accesso.
  2. Creare un localizzatore di streaming OnDemand.
  3. Se si pianifica lo streaming, ottenere il file manifesto di streaming (.ism) nell'asset.

    Se si pianifica il download progressivo, ottenere i nomi dei file MP4 nell'asset.

  4. Creare URL che puntano al file manifesto o ai file MP4.

Nota

È previsto un limite di 1.000.000 di criteri per i diversi criteri AMS (ad esempio per i criteri Locator o ContentKeyAuthorizationPolicy). Se si usano sempre gli stessi giorni/autorizzazioni di accesso, usare lo stesso ID criterio. Ad esempio, i criteri dei localizzatori che devono rimanere sul posto per molto tempo (criteri di non-caricamento). Per altre informazioni, vedere questo argomento.

Usare l'SDK di Servizi multimediali per .NET

Creare URL di streaming

private static void BuildStreamingURLs(IAsset asset)
{

    // Create a 30-day readonly access policy. 
      // You cannot create a streaming locator using an AccessPolicy that includes write or delete permissions.
    IAccessPolicy policy = _context.AccessPolicies.Create("Streaming policy",
        TimeSpan.FromDays(30),
        AccessPermissions.Read);

    // Create a locator to the streaming content on an origin. 
    ILocator originLocator = _context.Locators.CreateLocator(LocatorType.OnDemandOrigin, asset,
        policy,
        DateTime.UtcNow.AddMinutes(-5));

    // Display some useful values based on the locator.
    Console.WriteLine("Streaming asset base path on origin: ");
    Console.WriteLine(originLocator.Path);
    Console.WriteLine();

    // Get a reference to the streaming manifest file from the  
    // collection of files in the asset. 
    var manifestFile = asset.AssetFiles.Where(f => f.Name.ToLower().
                                EndsWith(".ism")).
                                FirstOrDefault();

    // Create a full URL to the manifest file. Use this for playback
    // in streaming media clients. 
    string urlForClientStreaming = originLocator.Path + manifestFile.Name + "/manifest";
    Console.WriteLine("URL to manifest for client streaming using Smooth Streaming protocol: ");
    Console.WriteLine(urlForClientStreaming);
    Console.WriteLine("URL to manifest for client streaming using HLS protocol: ");
    Console.WriteLine(urlForClientStreaming + "(format=m3u8-aapl)");
    Console.WriteLine("URL to manifest for client streaming using MPEG DASH protocol: ");
    Console.WriteLine(urlForClientStreaming + "(format=mpd-time-csf)"); 
    Console.WriteLine();
}

Gli output:

URL to manifest for client streaming using Smooth Streaming protocol:
http://amstest1.streaming.mediaservices.windows.net/3c5fe676-199c-4620-9b03-ba014900f214/BigBuckBunny.ism/manifest
URL to manifest for client streaming using HLS protocol:
http://amstest1.streaming.mediaservices.windows.net/3c5fe676-199c-4620-9b03-ba014900f214/BigBuckBunny.ism/manifest(format=m3u8-aapl)
URL to manifest for client streaming using MPEG DASH protocol:
http://amstest1.streaming.mediaservices.windows.net/3c5fe676-199c-4620-9b03-ba014900f214/BigBuckBunny.ism/manifest(format=mpd-time-csf)

Nota

Lo streaming dei contenuti può essere eseguito anche tramite una connessione SSL. A questo scopo, verificare che gli URL di streaming inizino con HTTPS. Attualmente AMS non supporta SSL con domini personalizzati.

Creare URL di download progressivo

private static void BuildProgressiveDownloadURLs(IAsset asset)
{
    // Create a 30-day readonly access policy. 
    IAccessPolicy policy = _context.AccessPolicies.Create("Streaming policy",
        TimeSpan.FromDays(30),
        AccessPermissions.Read);

    // Create an OnDemandOrigin locator to the asset. 
    ILocator originLocator = _context.Locators.CreateLocator(LocatorType.OnDemandOrigin, asset,
        policy,
        DateTime.UtcNow.AddMinutes(-5));

    // Display some useful values based on the locator.
    Console.WriteLine("Streaming asset base path on origin: ");
    Console.WriteLine(originLocator.Path);
    Console.WriteLine();

    // Get MP4 files.
    IEnumerable<IAssetFile> mp4AssetFiles = asset
        .AssetFiles
        .ToList()
        .Where(af => af.Name.EndsWith(".mp4", StringComparison.OrdinalIgnoreCase));

    // Create a full URL to the MP4 files. Use this to progressively download files.
    foreach (var pd in mp4AssetFiles)
        Console.WriteLine(originLocator.Path + pd.Name);
}

Gli output:

http://amstest1.streaming.mediaservices.windows.net/3c5fe676-199c-4620-9b03-ba014900f214/BigBuckBunny_H264_650kbps_AAC_und_ch2_96kbps.mp4
http://amstest1.streaming.mediaservices.windows.net/3c5fe676-199c-4620-9b03-ba014900f214/BigBuckBunny_H264_400kbps_AAC_und_ch2_96kbps.mp4
http://amstest1.streaming.mediaservices.windows.net/3c5fe676-199c-4620-9b03-ba014900f214/BigBuckBunny_H264_3400kbps_AAC_und_ch2_96kbps.mp4
http://amstest1.streaming.mediaservices.windows.net/3c5fe676-199c-4620-9b03-ba014900f214/BigBuckBunny_H264_2250kbps_AAC_und_ch2_96kbps.mp4

. . . 

Usare le estensioni dell'SDK di Servizi multimediali per .NET

Il codice seguente chiama i metodi delle estensioni dell'SDK per .NET che creano un localizzatore e generano URL Smooth Streaming, HLS e MPEG-DASH per lo streaming adattivo.

// Create a loctor.
_context.Locators.Create(
    LocatorType.OnDemandOrigin,
    inputAsset,
    AccessPermissions.Read,
    TimeSpan.FromDays(30));

// Get the streaming URLs.
Uri smoothStreamingUri = inputAsset.GetSmoothStreamingUri();
Uri hlsUri = inputAsset.GetHlsUri();
Uri mpegDashUri = inputAsset.GetMpegDashUri();

Console.WriteLine(smoothStreamingUri);
Console.WriteLine(hlsUri);
Console.WriteLine(mpegDashUri);

Percorsi di apprendimento di Servizi multimediali

Altre informazioni sui percorsi di apprendimento di Servizi multimediali di Azure:

Fornire commenti e suggerimenti

Usare il forum di suggerimenti degli utenti per fornire commenti e suggerimenti su come migliorare Servizi multimediali di Azure. È anche possibile passare direttamente a una delle categorie seguenti:

Passaggi successivi