Przesyłanie strumieniowe przy użyciu technologii PlayReady w trybie offline dla systemu Windows 10

logo usługi Media Services


Uwaga

Zaktualizuj zestawy SDK Azure Media Services REST do wersji 3 do 29 lutego 2024 r. Wersja 3 interfejsu API REST usługi Azure Media Services oraz zestawy SDK klienta dla platformy .NET i języka Java oferują więcej możliwości niż wersja 2. Wycofujemy wersję 2 interfejsu API REST usługi Azure Media Services oraz zestawy SDK klienta dla platformy .NET i języka Java.

Wymagana akcja:Aby zminimalizować zakłócenia obciążeń, zapoznaj się z przewodnikiem migracji, aby przejść z interfejsu API i zestawów SDK w wersji 2 do wersji 3 interfejsu API i zestawu SDK przed 29 lutego 2024 r. Po 29 lutego 2024 r. usługa Azure Media Services nie będzie już akceptować ruchu w interfejsie API REST w wersji 2, interfejsie API zarządzania kontami ARM w wersji 2015-10-01 ani w zestawach SDK klienta platformy .NET w wersji 2. Obejmuje to wszystkie zestawy SDK klienta typu open source innych firm, które mogą wywołać interfejs API w wersji 2. Dowiedz się więcej o najnowszej wersji, począwszy od wersji Media Services v3 — omówienie.

Azure Media Services pobieranie/odtwarzanie w trybie offline z ochroną DRM. W tym artykule o mowa w trybie offline Azure Media Services dla klientów Windows 10/PlayReady. Informacje na temat obsługi trybu offline dla urządzeń z systemami iOS/FairPlay i Android/Widevine można znaleźć w następujących artykułach:

Omówienie

Ta sekcja zapewnia pewne tło podczas odtwarzania w trybie offline, szczególnie dlaczego:

  • W niektórych krajach/regionach dostępność Internetu i/lub przepustowość są nadal ograniczone. Użytkownicy mogą wybrać opcję pobierania jako pierwszej, aby móc oglądać zawartość w wystarczająco wysokiej rozdzielczości, aby uzyskać zadowalający komfort wyświetlania. W tym przypadku częściej problemem nie jest dostępność sieci, a ograniczona przepustowość sieci. Dostawcy OTT/OVP proszą o obsługę trybu offline.
  • Jak po ujawnieniu na konferencji w 3. kwartale 2016 r. w Serwisie Netflix, pobieranie zawartości jest "nieoczywną funkcją", a "jesteśmy na to otwarci" — mówi Reed Hastings, dyrektor naczelny firmy Netflix.
  • Niektórzy dostawcy zawartości mogą nie zezwalać na dostarczanie licencji DRM poza granice kraju/regionu. Jeśli użytkownik musi podróżować i nadal chce oglądać zawartość, wymagane jest pobranie w trybie offline.

Wyzwanie, przed jakim mierzymy się podczas implementowania trybu offline, jest następujące:

  • Mp4 jest obsługiwane przez wiele odtwarzaczy i narzędzi kodera, ale nie ma powiązania między kontenerem MP4 i drm;
  • W dłuższej perspektywie warto wybrać CFF ze spisem CENC. Jednak obecnie ekosystem obsługi narzędzi/odtwarzacza jeszcze nie istnieje. Potrzebujemy rozwiązania już dziś.

Chodzi o to, że format pliku Smooth Streaming(PIFF)z H264/AAC ma powiązanie z PlayReady (AES-128 CTR). Pojedynczy plik ismv smooth streaming (przy założeniu, że dźwięk jest muxed w wideo) sam jest fMP4 i może służyć do odtwarzania. Jeśli zawartość bezproblemowego przesyłania strumieniowego przechodzi przez szyfrowanie PlayReady, każdy plik ismv staje się plikiem MP4 chronionym przez playReady. Możemy wybrać plik ismv z preferowaną siecią transmisji bitów i zmienić jego nazwę na .mp4 do pobrania.

Dostępne są dwie opcje hostowania pliku MP4 chronionego przez playReady do pobierania progresywnego:

  • Można umieścić ten plik MP4 w tym samym zasobie usługi kontenera/multimediów i wykorzystać punkt końcowy Azure Media Services przesyłania strumieniowego do pobierania progresywnego.
  • Lokalizatora sygnatur dostępu współdzielonego można używać do pobierania progresywnego bezpośrednio z usługi Azure Storage, pomijając Azure Media Services.

Można użyć dwóch typów dostarczania licencji PlayReady:

  • Usługa dostarczania licencji PlayReady w usłudze Azure Media Services;
  • Serwery licencji PlayReady hostowane w dowolnym miejscu.

Poniżej przedstawiono dwa zestawy zasobów testowych, pierwszy przy użyciu dostarczania licencji PlayReady w usłudze AMS, a drugi przy użyciu serwera licencji PlayReady hostowany na maszynie wirtualnej platformy Azure:

Zasób nr 1:

Zasób nr 2:

Do testowania odtwarzania używałam aplikacji universal Windows na platformie Windows 10. W Windows 10 przykładach uniwersalnychznajduje się podstawowy przykład odtwarzacza o nazwie Przykład adaptacyjnego przesyłania strumieniowego. Wszystko, co musimy zrobić, to dodać kod, aby wybrać pobrany film wideo i użyć go jako źródła, zamiast adaptacyjnego źródła przesyłania strumieniowego. Zmiany znajdują się w obsłudze zdarzeń kliknięcia przycisku:

private async void LoadUri_Click(object sender, RoutedEventArgs e)
{
    //Uri uri;
    //if (!Uri.TryCreate(UriBox.Text, UriKind.Absolute, out uri))
    //{
    // Log("Malformed Uri in Load text box.");
    // return;
    //}
    //LoadSourceFromUriTask = LoadSourceFromUriAsync(uri);
    //await LoadSourceFromUriTask;

    //willzhan change start
    // Create and open the file picker
    FileOpenPicker openPicker = new FileOpenPicker();
    openPicker.ViewMode = PickerViewMode.Thumbnail;
    openPicker.SuggestedStartLocation = PickerLocationId.ComputerFolder;
    openPicker.FileTypeFilter.Add(".mp4");
    openPicker.FileTypeFilter.Add(".ismv");
    //openPicker.FileTypeFilter.Add(".mkv");
    //openPicker.FileTypeFilter.Add(".avi");

    StorageFile file = await openPicker.PickSingleFileAsync();

    if (file != null)
    {
       //rootPage.NotifyUser("Picked video: " + file.Name, NotifyType.StatusMessage);
       this.mediaPlayerElement.MediaPlayer.Source = MediaSource.CreateFromStorageFile(file);
       this.mediaPlayerElement.MediaPlayer.Play();
       UriBox.Text = file.Path;
    }
    else
    {
       // rootPage.NotifyUser("Operation cancelled.", NotifyType.ErrorMessage);
    }

    // On small screens, hide the description text to make room for the video.
    DescriptionText.Visibility = (ActualHeight < 500) ? Visibility.Collapsed : Visibility.Visible;
}

Odtwarzanie w trybie offline chronionego przez playready fMP4

Ponieważ film wideo jest w obszarze ochrony PlayReady, na zrzucie ekranu nie będzie można dołączyć tego filmu wideo.

Podsumowując, osiągnęliśmy tryb offline na Azure Media Services:

  • Transkodowanie zawartości i szyfrowanie PlayReady można wykonać w Azure Media Services lub innych narzędziach;
  • Zawartość może być hostowana w usłudze Azure Media Services azure Storage do pobierania progresywnego;
  • Licencja PlayReady może być dostarczana z Azure Media Services lub w innym miejscu;
  • Przygotowana zawartość bezproblemowego przesyłania strumieniowego może być nadal używana do przesyłania strumieniowego online za pośrednictwem łącznika DASH lub do bezproblemowego przesyłania strumieniowego z usługą PlayReady jako drmem.

Uwagi dodatkowe

  • Widevine to usługa dostarczana przez firmę Google Inc. z zastrzeżeniem warunków użytkowania usługi i zasad ochrony prywatności firmy Google, Inc.

Następne kroki

Projekt hybrydowego systemu DRM