Manifestfilterung - AWS Elemental MediaPackage

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Manifestfilterung

Bei der Manifestfilterung erzeugt AWS Elemental MediaPackage dynamisch Clientmanifeste basierend auf Parametern, die Sie in einer Abfrage angeben, die an Ihre Wiedergabeanforderung angehängt wird. Auf diese Weise können Sie beispielsweise den Viewer-Zugriff auf Premium-4K-HEVC-Inhalte einschränken oder bestimmte Gerätetypen und Audio-Samplingratenbereiche anvisieren – alles von einem einzigen Endpunkt aus. Zuvor müssten Sie mehrere Endpunkte konfigurieren, um dieses Verhalten zu erreichen. MediaPackage bietet jetzt eine kostengünstige Möglichkeit, verschiedene Client-Manifeste auf demselben Endpunkt dynamisch zu erzeugen.

Arbeiten mit Manifestfiltern

Wenn Sie einen Manifestfilter verwenden, enthält das resultierende Manifest nur die Audio- und Videostreams, die den Eigenschaften entsprechen, die Sie in der Abfrage angeben. Wenn kein Manifestfilter verwendet wird, sind alle aufgenommenen Streams im Endpunkt-Ausgabestream vorhanden. Die Ausnahme dazu ist, wenn Sie Streamfilter für den Endpunkt festgelegt haben, wie etwa die minimale Videobitrate. In diesem Fall wird der Manifestfilter nach dem Streamfilter angewendet, wodurch die Ausgabe verzerrt werden kann. Dies wird nicht empfohlen.

Die Manifestfilterung kann für alle von unterstützten Endpunkttypen verwendet werden MediaPackage:

  • Apple HLS

  • DASH-ISO

  • Microsoft Smooth Streaming

  • CMAF

Um die Manifestfilterung zu verwenden, fügen Sie Ihrer Wiedergabeanforderung aws.manifestfilter Abfrageparameter an MediaPackage. MediaPackage bewertet die Abfrage und stellt basierend auf diesen Abfrageparametern ein Client-Manifest bereit. Bei Manifestabfragen wird nicht zwischen Groß- und Kleinschreibung unterschieden. Sie können bis zu 1024 Zeichen lang sein. Wenn die Abfrage fehlerhaft ist oder keine Streams vorhanden sind, die den Abfrageparametern entsprechen, gibt MediaPackage ein unvollständiges oder leeres Manifest zurück. Informationen zur Abfragesyntax finden Sie im folgenden Abschnitt.

Anmerkung

Wenn Sie Apple HLS- oder CMAF-Endpunkte verwenden, gelten spezielle Bedingungen. Hinweise zu diesen Bedingungen finden Sie unter Besondere Bedingungen für HLS- und CMAF-Manifeste.

Abfragesyntax

Der Basis-Abfrageparameter ist aws.manifestfilter, gefolgt von optionalen Parameternamen/Werte-Paaren. Um die Abfrage zu erstellen, fügen Sie ?aws.manifestfilter= an das Ende der MediaPackage Endpunkt-URL an, gefolgt von Parameternamen und -werten. Eine Liste aller verfügbaren Parameter finden Sie unter Manifestfilterabfrageparameter.

Eine Apple HLS-Filterabfrage könnte folgendermaßen aussehen:

https://example-mediapackage-endpoint.mediapackage.us-west-2.amazonaws.com/out/v1/examplemediapackage/index.m3u8?aws.manifestfilter=audio_sample_rate:0-44100;video_bitrate:0-2147483647;video_codec:h265;audio_language:fr,en-US,de

Die Abfragesyntax ist in der folgenden Tabelle aufgeführt.

Abfragezeichenfolgekomponente Beschreibung
? Ein eingeschränktes Zeichen, das den Anfang einer Abfrage markiert.
aws.manifestfilter= Die Basisabfrage, gefolgt von Parametern aus Name- und Wert-Paaren. Eine Liste aller verfügbaren Parameter finden Sie unter Manifestfilterabfrageparameter.
: Wird verwendet, um dem Parameternamen einen Wert zuzuordnen. Beispiel: parameter_name:value
; Trennt Parameter in einer Abfrage, die mehrere Parameter enthält. Beispiel: parameter1_name:value;parameter2_name:minValue-maxValue
, Trennt eine Liste von Werten. Beispiel: parameter_name:value1,value2,value3 Durch Kommas getrennte Werte in einer Liste implizieren eine OR-Beziehung.
- Wird verwendet, um den Wertebereich eines Parameters zu definieren. Beispiel: audio_sample_rate:0-44100 Wenn ein numerischer Wert in einem Bereich verwendet wird, wird er in die Bereichsdefinition aufgenommen. Das bedeutet, dass Streams mindestens dem Mindestwert und höchstens dem Höchstwert entsprechen müssen. Bei Bereichen sind die Mindest- und Höchstwerte obligatorisch. Die unterstützten Bereichswerte sind 02147483647.
Anmerkung

Wenn Sie Amazon CloudFront als CDN verwenden, müssen Sie möglicherweise zusätzliche Konfigurationen festlegen. Weitere Informationen finden Sie unter Konfigurieren der Cache-Verhaltensweisen für alle Endpunkte.

Manifestfilterabfrageparameter

MediaPackage unterstützt die folgenden Abfrageparameter.

Kategorie Name Beschreibung Beispiel
Audio audio_bitrate
  • Die Audiobitrate in Bits pro Sekunde.

  • Akzeptierte Werte: Zwei Ganzzahlen, die mit einem Bindestrich aggregiert werden, die einen eingeschlossenen Bereich definieren. Die unterstützten Bereichswerte sind 02147483647.

stream.mpd?aws.manifestfilter=audio_bitrate:0-2147483647
Audio audio_channels
  • Die Anzahl der Audiokanäle.

  • Akzeptierte Werte: Zwei Ganzzahlen, die mit einem Bindestrich aggregiert werden, die einen eingeschlossenen Bereich definieren. Die unterstützten Bereichswerte sind 132767.

stream.mpd?aws.manifestfilter=audio_channels:1-8
Audio audio_codec
  • Der Audio-Codec-Typ.

  • Akzeptierte Werte: AACL, AACH, AC-3, EC-3. Sie müssen die - für AC-3 und EC-3 einschließen.

    Bei den Wertnamen wird die Groß- und Kleinschreibung nicht beachtet.

stream.mpd?aws.manifestfilter=audio_codec:AACL,AC-3
Audio audio_language
  • Audiosprachen oder Funktionscodes, die vom Encoder-Passthrough abgeleitet werden.

  • Akzeptierte Werte: Beliebige Zeichenfolgen, wie etwa zwei- oder vierstellige ISO-639-1-Sprachcodes. Sie müssen dieselben Sprachzeichenfolgen verwenden, die für Ihren Encoder festgelegt sind.

    Bei den Wertnamen wird die Groß- und Kleinschreibung nicht beachtet.

stream.mpd?aws.manifestfilter=audio_language:fr,en-US,de
Audio audio_sample_rate
  • Die Audio-Abtastrate in Hz.

  • Akzeptierte Werte: Zwei Ganzzahlen, die mit einem Bindestrich aggregiert werden, die einen eingeschlossenen Bereich definieren. Die unterstützten Bereichswerte sind 02147483647.

stream.mpd?aws.manifestfilter=audio_sample_rate:0-44100
Untertitel subtitle_language
  • Die Untertitelsprache oder Funktionscodes, die vom Encoder-Pass-Through abgeleitet werden.

  • Akzeptierte Werte: Beliebige Zeichenfolgen, wie etwa zwei- oder vierstellige ISO-639-1-Sprachcodes. Sie müssen dieselben Sprachzeichenfolgen verwenden, die für Ihren Encoder festgelegt sind.

    Bei den Wertnamen wird die Groß- und Kleinschreibung nicht beachtet.

stream.mpd?aws.manifestfilter=subtitle_language:en-US, hi
Video trickplay_height
  • Die Höhe des Trick-Play-Bildes in Pixeln. Dies gilt sowohl für das I-Frame- als auch für das bildbasierte Trickplay.

    Anmerkung

    Wenn Sie diesen Parameter nur mit I-Frame-Trickplay verwenden trickplay_height und ähnliche Werte haben video_height sollten. Wenn die Werte nicht identisch sind, werden möglicherweise nur I-Frame-Tracks aus einem Manifest entfernt.

  • Der trickplay_height Filter wird vor dem Tiling für DASH auf VOD angewendet.

  • Akzeptierte Werte: Zwei Ganzzahlen, die mit einem Bindestrich aggregiert werden, die einen eingeschlossenen Bereich definieren. Die unterstützten Bereichswerte sind 12147483647.

stream.mpd?aws.manifestfilter=trickplay_height:200-1200
Video trickplay_type
  • Der Spurtyp „Trickplay“. Sie können nach iframe- oder Bild-Trickplay-Tracks filtern oder den Wert verwendennone, um alle Trickplay-Tracks (sowohl iframe als auch image) herauszufiltern.

  • Akzeptierte Werte: iframe, image, none.

    Bei den Wertnamen wird die Groß- und Kleinschreibung nicht beachtet.

stream.mpd?aws.manifestfilter=trickplay_type:iframe
Video video_bitrate
  • Die Videobitrate in Bits pro Sekunde.

    Anmerkung

    Wenn Sie diesen Parameter verwenden, empfehlen wir, nur den video_bitrate-Filterparameter zum Festlegen der Videobitrate zu verwenden. Legen Sie nicht auch die minimale und maximale Videobitrate über die MediaPackage Konsole oder festAWS CLI. Der video_bitrate-Filter gilt für die am Endpunkt erstellten Videobitrateneinstellungen. Wenn Sie den Parameter verwenden und die Bitrate in der Konsole oder AWS CLI festlegen, ist die Ausgabe möglicherweise verzerrt.

  • Akzeptierte Werte: Zwei Ganzzahlen, die mit einem Bindestrich aggregiert werden, die einen eingeschlossenen Bereich definieren. Die unterstützten Bereichswerte sind 02147483647.

  • Anmerkung

    Sie können diesen Parameter nicht mit Trick-Play-Streams verwenden.

stream.mpd?aws.manifestfilter=video_bitrate:0-2147483647
Video video_codec
  • Der Video-Codec-Typ.

  • Akzeptierte Werte: H264, H265.

    Bei den Wertnamen wird die Groß- und Kleinschreibung nicht beachtet.

stream.mpd?aws.manifestfilter=video_codec:h264
Video video_dynamic_range
  • Der dynamische Bereich des Videos.

  • Akzeptierte Werte: hdr10, hlg, sdr.

    Bei den Wertnamen wird die Groß- und Kleinschreibung nicht beachtet.

stream.mpd?aws.manifestfilter=video_dynamic_range:hdr10
Video video_framerate
  • Der Bereich der Videobildrate im NTSC-Format.

  • Akzeptierte Werte: Zwei mit einem Bindestrich aggregierte Gleitkommazahlen, die einen eingeschlossenen Bereich definiert. Jede Zahl kann bis zu drei optionale Bruchwerte haben. Zum Beispiel 29.97 oder 29.764. Die unterstützten Bereichswerte sind 1999.999.

stream.mpd?aws.manifestfilter=video_framerate:23.976-30
Video video_height
  • Die Höhe des Videos in Pixeln.

    Anmerkung

    Wenn Sie diesen Parameter nur mit I-Frame-Trickplay verwenden trickplay_height und ähnliche Werte haben video_height sollten. Wenn die Werte nicht identisch sind, werden möglicherweise nur I-Frame-Tracks aus einem Manifest entfernt.

  • Akzeptierte Werte: Zwei Ganzzahlen, die mit einem Bindestrich aggregiert werden, die einen eingeschlossenen Bereich definieren. Die unterstützten Bereichswerte sind 132767.

stream.mpd?aws.manifestfilter=video_height:720-1080

Beispiele für Manifestfilterung

Dies sind Manifestfilterbeispiele.

Beispiel 1: Wählen Sie einen Player, der AVC und eine Audio-Abtastrate von 44,1k unterstützt

Der Viewer spielt Inhalte auf einem Gerät ab, das nur AVC und eine Audio-Abtastrate von 44,1k unterstützen kann. Sie legen video_codec und audio_sample_rate fest, um Streams herauszufiltern, die diesen Anforderungen nicht entsprechen.

?aws.manifestfilter=audio_sample_rate:0-44100;video_codec:h264

Beispiel 2: Schränken Sie 4k-HEVC-Inhalte ein.

Ihr 4K-HEVC-Stream umfasst 15 Mbit/s und alle Ihre anderen Streams umfassen weniger als 9 Mbit/s. Um den 4K-Stream aus dem Streamsatz auszuschließen, legen Sie einen Schwellenwert von 9 000 000 Bit pro Sekunde fest, um die höhere Bitrate herauszufiltern.

?aws.manifestfilter=video_bitrate:0-9000000

Beispiel 3: Video zwischen 23,976 und 30 Frames pro Sekunde einschließen

Wenn Sie Videos nur innerhalb eines bestimmten Bildfrequenzbereichs aufnehmen möchten, verwenden Sie video_framerate. Dieser Parameter akzeptiert Gleitkommazahlen mit bis zu drei optionalen Dezimalwerten.

?aws.manifestfilter=video_framerate:23.976-30

Besondere Bedingungen für HLS- und CMAF-Manifeste

Wenn Sie HLS- oder CMAF-Manifeste verwenden, gelten diese besonderen Bedingungen.

  • Für HLS-Manifeste empfehlen wir dringend die Verwendung von Audiowiedergabegruppen, um zu vermeiden, dass Videostreams, die mit den herausgefilterten Audiostreams multiplexiert sind, entfernt werden. Weitere Informationen zu Wiedergabegruppen finden Sie unter Wiedergabegruppen verweisen in AWS Elemental MediaPackage.

  • In HLS- und CMAF-Manifesten wird die Audio-Abtastrate nicht signalisiert. Daher ist es nicht einfach, die ursprünglichen oder gefilterten Manifeste für diese Einstellung visuell zu überprüfen. Um die Audio-Abtastrate zu verifizieren, überprüfen Sie die Audio-Abtastrate auf Encoder- und Ausgangsebene.

  • In HLS- und CMAF-Manifesten ordnet das BANDWIDTH-Attribut für eine Variante die Bandbreite der Audiospur der Videospur zu, unabhängig davon, ob sie mit der Videospur multiplexiert ist oder ob es sich um eine Audiowiedergabespur handelt, die von der Videospur referenziert wird. Daher können Sie die ursprünglichen und gefilterten Manifeste nicht visuell überprüfen, um zu bestätigen, dass der video_bitrate Filter funktioniert. Um den Filter zu verifizieren, überprüfen Sie die Videobitrate auf Encoder- und Ausgangsebene.

  • Bei HLS- und CMAF-Manifesten führen Anforderungsparameter, die an Bitraten-Wiedergabelisten oder Segmente angehängt sind, zu einem HTTP-400-Fehler.

Fehlerbedingungen

Häufige Fehlerbedingungen sind in der folgenden Tabelle aufgeführt.

Fehlerbedingung Beispiel HTTP-Statuscode
Ein Listenparameter wird nicht gefunden und ist nicht Teil einer eingeschränkten Liste ?aws.manifestfilter=audio_language:dahlia 200
Nur Untertitel-Streams sind im Stream vorhanden ?aws.manifestfilter=audio_sample_rate:0-1;video_bitrate=0-1 200
Doppelte Filterparameter ?aws.manifestfilter=audio_sample_rate:0-48000;aws.manifestfilter=audio_sample_rate:0-48000 400
Ungültiger Parameter ?aws.manifestfilter=donut_type:rhododendron 400
Ungültiger Bereichsparameter ?aws.manifestfilter=audio_sample_rate:300-0 400
Ungültiger Bereichswert (mehr als INT_MAX) ?aws.manifestfilter=audio_sample_rate:0-2147483648 400
Falsch formatierte Abfragezeichenfolge ?aws.manifestfilter=audio_sample_rate:is:0-44100 400
Die Parameterzeichenfolge ist länger als 1024 Zeichen ?aws.manifestfilter=audio_language:abcdef.... 400
Abfrageparameter auf einem HLS- oder CMAF-Bitraten-Manifest index_1.m3u8?aws.manifestfilter=video_codec:h264 400
Abfrageparameter für eine Segmentanforderung ..._1.[ts|mp4|vtt..]?aws.manifestfilter=video_codec:h264 400
Wiederholter Abfrageparameter ?aws.manifestfilter=audio_sample_rate:0-48000;aws.manifestfilter=video_bitrate:0-1 400
Die Anwendung des Filters führt zu einem leeren Manifest (Inhalt enthält keine Streams, die die in der Abfragezeichenfolge definierten Bedingungen erfüllen) ?aws.manifestfilter=audio_sample_rate:0-1;video_bitrate=0-1 400