Pubblicare contenuti di Servizi multimediali di Azure mediante .NETPublish Azure Media Services content using .NET

OverviewOverview

È possibile trasmettere in streaming un set MP4 a velocità in bit adattiva creando un localizzatore di streaming OnDemand e un URL di streaming.You can stream an adaptive bitrate MP4 set by creating an OnDemand streaming locator and building a streaming URL. L'argomento relativo alla codifica di un asset illustra come codificare un asset in un set MP4 a bitrate adattivo.The encoding an asset topic shows how to encode into an adaptive bitrate MP4 set.

Nota

Se il contenuto è crittografato, configurare i criteri di distribuzione degli asset (come descritto in questo argomento) prima di creare un localizzatore.If your content is encrypted, configure asset delivery policy (as described in this topic) before creating a locator.

È inoltre possibile usare un localizzatore di streaming OnDemand per creare URL che puntano a file MP4 scaricabili in modo progressivo.You can also use an OnDemand streaming locator to build URLs that point to MP4 files that can be progressively downloaded.

Questo argomento illustra come creare un localizzatore di streaming OnDemand, per pubblicare l'asset e creare URL di streaming Smooth, MPEG DASH e HLS,This topic shows how to create an OnDemand streaming locator to publish your asset and build a Smooth, MPEG DASH, and HLS streaming URLs. e come creare URL di download progressivo.It also shows hot to build progressive download URLs.

Creare un localizzatore di streaming OnDemandCreate an OnDemand streaming locator

Per creare un localizzatore di streaming OnDemand e ottenere gli URL, è necessario effettuare le operazioni seguenti:To create the OnDemand streaming locator and get URLs, you need to do the following things:

  1. Se il contenuto viene crittografato, definire i criteri di accesso.If the content is encrypted, define an access policy.
  2. Creare un localizzatore di streaming OnDemand.Create an OnDemand streaming locator.
  3. Se si pianifica lo streaming, ottenere il file manifesto di streaming (.ism) nell'asset.If you plan to stream, get the streaming manifest file (.ism) in the asset.

    Se si pianifica il download progressivo, ottenere i nomi dei file MP4 nell'asset.If you plan to progressively download, get the names of MP4 files in the asset.

  4. Creare URL che puntano al file manifesto o ai file MP4.Build URLs to the manifest file or MP4 files.

Nota

È previsto un limite di 1.000.000 di criteri per i diversi criteri AMS (ad esempio per i criteri Locator o ContentKeyAuthorizationPolicy).There is a limit of 1,000,000 policies for different AMS policies (for example, for Locator policy or ContentKeyAuthorizationPolicy). Se si usano sempre gli stessi giorni/autorizzazioni di accesso, usare lo stesso ID criterio.Use the same policy ID if you are always using the same days / access permissions. Ad esempio, i criteri dei localizzatori che devono rimanere sul posto per molto tempo (criteri di non-caricamento).For example, policies for locators that are intended to remain in place for a long time (non-upload policies). Per altre informazioni, vedere questo argomento.For more information, see this topic.

Usare l'SDK di Servizi multimediali per .NETUse Media Services .NET SDK

Creare URL di streamingBuild Streaming URLs

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:The outputs:

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.You can also stream your content over an SSL connection. A questo scopo, verificare che gli URL di streaming inizino con HTTPS.To do this approach, make sure your streaming URLs start with HTTPS. Attualmente AMS non supporta SSL con domini personalizzati.Currently, AMS doesn’t support SSL with custom domains.

Creare URL di download progressivoBuild progressive download URLs

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:The outputs:

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 .NETUse Media Services .NET SDK Extensions

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.The following code calls .NET SDK extensions methods that create a locator and generate the Smooth Streaming, HLS, and MPEG-DASH URLs for adaptive streaming.

// 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 multimedialiMedia Services learning paths

Altre informazioni sui percorsi di apprendimento di Servizi multimediali di Azure:Read about the Azure Media Services learning paths:

Fornire commenti e suggerimentiProvide feedback

Usare il forum di suggerimenti degli utenti per fornire commenti e suggerimenti su come migliorare Servizi multimediali di Azure.Use the User Voice forum to provide feedback and make suggestions on how to improve Azure Media Services. È anche possibile passare direttamente a una delle categorie seguenti:You also can go directly to one of the following categories:

Passaggi successiviNext steps