Filtry

Logo usługi Media Services w wersji 3


Ostrzeżenie

Usługa Azure Media Services zostanie wycofana 30 czerwca 2024 r. Aby uzyskać więcej informacji, zobacz Przewodnik po wycofaniu usługi AMS.

W przypadku dostarczania zawartości klientom (zdarzenia transmisji strumieniowej na żywo lub wideo na żądanie) klient może potrzebować większej elastyczności niż opisano w pliku manifestu domyślnego elementu zawartości. Usługa Azure Media Services oferuje manifesty dynamiczne oparte na wstępnie zdefiniowanych filtrach.

Filtry to reguły po stronie serwera, które umożliwiają klientom wykonywanie takich czynności jak:

  • Odtwórz tylko sekcję filmu wideo (zamiast odtwarzać cały film wideo). Na przykład:
    • Zmniejsz manifest, aby wyświetlić podciąg wydarzenia na żywo ("filtrowanie podciągów") lub
    • Przycina początek filmu wideo ("przycinanie wideo").
  • Dostarczaj tylko określone odwzorowania i/lub określone ścieżki językowe obsługiwane przez urządzenie używane do odtwarzania zawartości ("filtrowanie odwzorowań").
  • Dostosuj okno prezentacji (DVR), aby zapewnić ograniczoną długość okna DVR w odtwarzaczu ("dostosowywanie okna prezentacji").

Usługa Media Services umożliwia tworzenie filtrów konta i filtrów zasobów dla zawartości. Ponadto można skojarzyć wstępnie utworzone filtry z lokalizatorem przesyłania strumieniowego.

Typy filtrów

Istnieją dwa typy filtrów:

  • Filtry konta (globalne) — mogą być stosowane do dowolnego zasobu na koncie usługi Azure Media Services, mają okres istnienia konta.
  • Filtry zasobów (lokalne) — można stosować tylko do zasobu, z którym filtr został skojarzony podczas tworzenia, ma okres istnienia zasobu.

Filtry kont i typy filtrów zasobów mają dokładnie te same właściwości do definiowania/opisywania filtru. Z wyjątkiem tworzenia filtru zasobów, należy określić nazwę zasobu, z którym chcesz skojarzyć filtr.

W zależności od scenariusza decydujesz, jaki typ filtru jest bardziej odpowiedni (filtr zasobów lub filtr konta). Filtry kont są odpowiednie dla profilów urządzeń (filtrowanie odwzorowań), w których filtry zasobów mogą służyć do przycinania określonego elementu zawartości.

Aby opisać filtry, użyj poniższych właściwości.

Nazwa Opis
firstQuality Pierwsza szybkość transmisji bitów jakości filtru.
presentationTimeRange Zakres czasu prezentacji manifestu wydarzenia na żywo. Ta właściwość jest używana do filtrowania punktów początkowych/końcowych manifestu, długości okna prezentacji i położenia rozpoczęcia na żywo.
Aby uzyskać więcej informacji, zobacz PresentationTimeRange.
Utworów Śledzi warunki wyboru. Aby uzyskać więcej informacji, zobacz ścieżki

presentationTimeRange

Użyj tej właściwości z filtrami zasobów. Nie zaleca się ustawiania właściwości za pomocą filtrów konta.

Nazwa Opis
startTimestamp Dotyczy wideo na żądanie (VoD) lub transmisji strumieniowej na żywo.
Jest to długa wartość, która reprezentuje bezwzględny punkt początkowy strumienia. Wartość jest zaokrąglany do najbliższego następnego uruchomienia GOP. Jednostka jest skalę czasu, więc wartość startTimestamp 150000000 będzie wynosić 15 sekund.
Użyj parametru startTimestamp i endTimestamp, aby przyciąć fragmenty, które będą znajdować się na liście odtwarzania (manifest).
Na przykład startTimestamp=400000000 i endTimestamp=100000000 przy użyciu domyślnej skali czasu spowoduje wygenerowanie listy odtwarzania zawierającej fragmenty z zakresu od 4 sekund do 10 sekund prezentacji VoD. Jeśli fragment oddziela granicę, cały fragment zostanie uwzględniony w manifeście.
endTimestamp Dotyczy wideo na żądanie (VoD).
W przypadku prezentacji transmisji strumieniowej na żywo jest ona dyskretnie ignorowana i stosowana po zakończeniu prezentacji, a strumień staje się voD.
Jest to długa wartość reprezentująca bezwzględny punkt końcowy prezentacji zaokrąglony do najbliższego następnego początku gop. Jednostka jest skalę czasu, więc endTimestamp 18000000000 będzie przez 3 minuty.
Użyj parametru startTimestamp i endTimestamp, aby przyciąć fragmenty, które będą znajdować się na liście odtwarzania (manifest).
Na przykład startTimestamp=400000000 i endTimestamp=100000000 przy użyciu domyślnej skali czasu spowoduje wygenerowanie listy odtwarzania zawierającej fragmenty z zakresu od 4 sekund do 10 sekund prezentacji VoD. Jeśli fragment oddziela granicę, cały fragment zostanie uwzględniony w manifeście.
skala czasu Dotyczy wszystkich sygnatur czasowych i czasów trwania w zakresie czasu prezentacji, określony jako liczba przyrostów w ciągu jednej sekundy.
Wartość domyślna to 100000000 – dziesięć milionów przyrostów w ciągu jednej sekundy, gdzie każda przyrostowa wynosiłaby 100 nanosekund. Jednak wartość może się różnić w zależności od źródła wideo lub jeśli używasz wydarzenia na żywo z kodowaniem w chmurze (wartość domyślna to 90Khz lub 90000 dla wideo).
Jeśli na przykład chcesz ustawić wartość startTimestamp na 30 sekund, użyj wartości 3000000000 podczas korzystania z domyślnej skali czasu. Pamiętaj, aby sprawdzić manifest zasobu, aby potwierdzić, że skala czasu śledzenia wideo znajduje się w ustawionej skali. W przypadku korzystania z wydarzeń na żywo z kodowaniem skala czasu może być 90Khz (90000) dla utworów wideo i 48khz (48000) dla utworów audio.
liveBackoffDuration Dotyczy tylko transmisji strumieniowej na żywo.
Ta wartość definiuje najnowszą pozycję na żywo, do której klient może dążyć.
Przy użyciu tej właściwości można opóźnić położenie odtwarzania na żywo i utworzyć bufor po stronie serwera dla graczy.
Jednostka tej właściwości to skala czasu (patrz poniżej).
Maksymalny czas trwania wycofywania na żywo to 300 sekund (3000000000).
Na przykład wartość 200000000000 oznacza, że najnowsza dostępna zawartość jest opóźniona o 20 sekund od rzeczywistej krawędzi na żywo.
presentationWindowDuration Dotyczy tylko transmisji strumieniowej na żywo.
Użyj prezentacjiWindowDuration, aby zastosować przesuwane okno fragmentów do uwzględnienia na liście odtwarzania.
Jednostka tej właściwości to skala czasu (patrz poniżej).
Na przykład ustaw wartość presentationWindowDuration=1200000000, aby zastosować dwuminutowe okno przewijania. Multimedia w ciągu 2 minut od krawędzi na żywo zostaną uwzględnione na liście odtwarzania. Jeśli fragment oddziela granicę, cały fragment zostanie uwzględniony na liście odtwarzania. Minimalny czas trwania okna prezentacji wynosi 60 sekund.
forceEndTimestamp Dotyczy tylko transmisji strumieniowej na żywo.
Wskazuje, czy właściwość endTimestamp musi być obecna. Jeśli wartość true, parametr endTimestamp musi zostać określony lub zostanie zwrócony nieprawidłowy kod żądania.
Dozwolone wartości: false, true.

Prowadnice

Należy określić listę warunków właściwości śledzenia filtru (FilterTrackPropertyConditions), na podstawie których ścieżki strumienia (transmisja strumieniowa na żywo lub wideo na żądanie) powinny być uwzględniane w dynamicznie utworzonym manifeście. Filtry są łączone przy użyciu operacji logicznych AND i OR .

Filtrowanie warunków właściwości śledzenia opisuje typy śledzenia, wartości (opisane w poniższej tabeli) i operacje (Equal, NotEqual).

Nazwa Opis
Bitrate Użyj szybkości transmisji bitów ścieżki do filtrowania.

Najlepszą wartością jest zakres szybkości bitów w bitach na sekundę. Na przykład "0-2427000".

Uwaga: chociaż można użyć określonej wartości szybkości transmisji bitów, takiej jak 250000 (bitów na sekundę), to podejście nie jest zalecane, ponieważ dokładne szybkości transmisji bitów mogą wahać się z jednego elementu zawartości do drugiego.
Fourcc Użyj wartości FourCC ścieżki do filtrowania.

Wartość jest pierwszym elementem formatu codecs określonym w specyfikacji RFC 6381. Obecnie obsługiwane są następujące kodery koderów:
Dla wideo: "avc1", "hev1", "hvc1"
Dla dźwięku: "mp4a", "ec-3"

Aby określić wartości FourCC dla ścieżek w zasobie, pobierz i zbadaj plik manifestu.
Język Użyj języka ścieżki do filtrowania.

Wartość to tag języka, który chcesz uwzględnić, zgodnie z opisem w specyfikacji RFC 5646. Na przykład "en".
Nazwa Użyj nazwy ścieżki do filtrowania.
Typ Użyj typu ścieżki do filtrowania.

Dozwolone są następujące wartości: "wideo", "audio" lub "text".

Przykład

W poniższym przykładzie zdefiniowano filtr transmisji strumieniowej na żywo:

{
  "properties": {
    "presentationTimeRange": {
      "startTimestamp": 0,
      "endTimestamp": 170000000,
      "presentationWindowDuration": 9223372036854776000,
      "liveBackoffDuration": 0,
      "timescale": 10000000,
      "forceEndTimestamp": false
    },
    "firstQuality": {
      "bitrate": 128000
    },
    "tracks": [
      {
        "trackSelections": [
          {
            "property": "Type",
            "operation": "Equal",
            "value": "Audio"
          },
          {
            "property": "Language",
            "operation": "NotEqual",
            "value": "en"
          },
          {
            "property": "FourCC",
            "operation": "NotEqual",
            "value": "EC-3"
          }
        ]
      },
      {
        "trackSelections": [
          {
            "property": "Type",
            "operation": "Equal",
            "value": "Video"
          },
          {
            "property": "Bitrate",
            "operation": "Equal",
            "value": "3000000-5000000"
          }
        ]
      }
    ]
  }
}

Filtrowanie manifestów HLS lub DASH przy tworzeniu lokalizatora przesyłania strumieniowego

Usługa Media Services umożliwia utworzenie lokalizatora przesyłania strumieniowego, który jest wstępnie filtrowany, przekazując kolekcję filtrów we właściwości filtru w jednostce lokalizatora przesyłania strumieniowego. Dzięki temu można wstępnie filtrować wszystkie manifesty w lokalizatorze przesyłania strumieniowego. Oryginalny manifest nie jest już dostępny za pośrednictwem tego lokalizatora przesyłania strumieniowego, a tylko odfiltrowana odpowiedź będzie dostępna dla klientów żądających adresów URL interfejsu DASH lub HLS z filtrowanego lokalizatora przesyłania strumieniowego. Jest to przydatne w sytuacjach, w których chcesz opublikować tylko część elementu zawartości i uniemożliwić użytkownikom uzyskanie dostępu do pełnego oryginalnego manifestu zasobu przez manipulowanie ciągiem zapytania adresu URL manifestu HLS lub DASH.

Możesz określić listę filtrów zasobów lub kont w lokalizatorze przesyłania strumieniowego. Dynamic Packager stosuje tę listę filtrów wraz z tymi, które klient określa w adresie URL. Ta kombinacja generuje manifest dynamiczny, który jest oparty na filtrach w adresie URL + filtry określone w lokalizatorze przesyłania strumieniowego.

Aktualizowanie filtrów

Filtry i lokalizatory przesyłania strumieniowego można aktualizować na bieżąco, ale należy pamiętać, że aktualizacja aktualizacji na serwerach frontonu sieci Web może potrwać do 10 sekund, a w przypadku aktualizowania tego samego lokalizatora przesyłania strumieniowego , który został już opublikowany i używany w środowisku produkcyjnym, mogą wystąpić problemy z buforowaniem podrzędnym usługi CDN.

Nie zaleca się aktualizowania definicji filtrów skojarzonych z aktywnie opublikowanym lokalizatorem przesyłania strumieniowego, zwłaszcza gdy sieć CDN jest włączona. Serwery przesyłania strumieniowego i sieci CDN mogą mieć wewnętrzne pamięci podręczne, które mogą powodować zwracanie nieaktualnych danych buforowanych.

Jeśli definicja filtru musi zostać zmieniona, rozważ utworzenie nowego filtru i dodanie go do adresu URL lokalizatora przesyłania strumieniowego lub opublikowanie unikatowo nowego lokalizatora przesyłania strumieniowego , który odwołuje się bezpośrednio do zaktualizowanego filtru.

Uzyskiwanie pomocy i obsługi technicznej

Możesz skontaktować się z usługą Media Services z pytaniami lub postępować zgodnie z naszymi aktualizacjami, korzystając z jednej z następujących metod: