Filter
Warnung
Azure Media Services wird am 30. Juni 2024 eingestellt. Weitere Informationen finden Sie im Leitfaden zur Einstellung von AMS.
Bei der Inhaltsbereitstellung für Ihre Kunden (Livestreaming von Ereignissen oder Video on Demand) benötigen Ihre Kunden möglicherweise mehr Flexibilität als in der Manifestdatei für das Standardmedienobjekt beschrieben. Azure Media Services bietet dynamische Manifeste, die auf vordefinierten Filtern basieren.
Filter sind serverseitige Regeln, die Ihren Kunden Folgendes ermöglichen:
- Wiedergabe von einzelnen Abschnitten eines Videos (anstelle des gesamten Videos) Zum Beispiel:
- Reduzieren des Manifests, um einen Subclip eines Liveereignisses anzuzeigen („Filtern von Subclips“), oder
- Kürzen des Starts eines Videos ("Kürzen eines Videos").
- Ausschließliche Bereitstellung der angegebenen Wiedergaben und/oder Sprachspuren, die vom Gerät für die Inhaltswiedergabe unterstützt werden („Filtern der Wiedergabe“)
- Anpassen des Präsentationsfensters (DVR), um eine begrenzte Größe des DVR-Fensters im Player anzugeben („Anpassen des Präsentationsfensters“).
Media Services ermöglicht es Ihnen, Kontofilter und Medienobjektfilter für Ihre Inhalte zu erstellen. Darüber hinaus können Sie Ihre zuvor erstellten Filter einem Streaminglocator zuordnen.
Filtertypen
Es gibt zwei Arten von Filtern:
- Kontofilter (global): Diese Filter können auf jedes Medienobjekt im Azure Media Services-Konto angewendet werden und haben die Lebensdauer des Kontos.
- Medienobjektfilter (lokal): Sie können nur auf ein Medienobjekt angewendet werden, dem der Filter bei der Erstellung zugeordnet wurde, und haben die Lebensdauer des Medienobjekts.
Die Typen Kontofilter und Medienobjektfilter besitzen exakt dieselben Eigenschaften zum Definieren/Beschreiben des jeweiligen Filters. Außer beim Erstellen des Medienobjektfilters müssen Sie den Namen des Medienobjekts angeben, dem Sie den Filter zuordnen möchten.
Abhängig vom Szenario entscheiden Sie, welcher Filtertyp (Medienobjektfilter oder Kontofilter) besser geeignet ist. Kontofilter eignen sich für Geräteprofile (Wiedergabefilterung), Medienobjektfilter hingegen können zum Kürzen eines bestimmten Medienobjekts eingesetzt werden.
Sie verwenden die folgenden Eigenschaften zum Beschreiben der Filter.
Name | BESCHREIBUNG |
---|---|
firstQuality | Die erste Qualitätsstufe der Bitrate für den Filter. |
presentationTimeRange | Der Präsentationszeitbereich eines Liveereignismanifests. Diese Eigenschaft wird zum Filtern der Start-/Endpunkte des Manifests, der Länge des Präsentationsfensters und der Livestartposition verwendet. Weitere Informationen finden Sie unter PresentationTimeRange. |
tracks | Die Bedingungen zur Spurauswahl. Weitere Informationen finden Sie unter tracks. |
presentationTimeRange
Verwenden Sie diese Eigenschaft mit Medienobjektfiltern. Die Verwendung dieser Eigenschaft mit Kontofiltern wird nicht empfohlen.
Name | Beschreibung |
---|---|
startTimestamp | Gilt für Video on Demand (VoD) oder Livestreaming. Dies ist ein Long-Wert, der einen absoluten Startpunkt des Streams darstellt. Er wird auf den nächstgelegenen GOP-Start gerundet. Die Einheit ist die Zeitskala, daher würde ein „startTimestamp“ von 150000000 einer Zeit von 15 Sekunden entsprechen. Verwenden Sie „startTimestamp“ und „endTimestamp“, um die Fragmente in der Wiedergabeliste (das Manifest) zu kürzen. Wenn Sie z. B. „startTimestamp=40000000“ und „endTimestamp=100000000“ mit der voreingestellten Zeitskala verwenden, wird eine Wiedergabeliste generiert, die Fragmente aus einer Zeitspanne von vier bis zehn Sekunden der VoD-Präsentation enthält. Wenn ein Fragment die Grenze überschreitet, wird das gesamte Fragment in das Manifest aufgenommen. |
endTimestamp | Gilt für Video on Demand (VoD). Bei einer Livestreamingpräsentation wird diese Eigenschaft stillschweigend ignoriert und angewendet, wenn die Präsentation endet und der Stream zu VoD wird. Dies ist ein Long-Wert, der einen absoluten Endpunkt der Präsentation darstellt und auf den nächsten GOP-Start gerundet wird. Die Einheit ist die Zeitskala, daher würde ein „endTimestamp“ von 1800000000 einer Zeit von drei Minuten entsprechen. Verwenden Sie „startTimestamp“ und „endTimestamp“, um die Fragmente in der Wiedergabeliste (das Manifest) zu kürzen. Wenn Sie z. B. „startTimestamp=40000000“ und „endTimestamp=100000000“ mit der voreingestellten Zeitskala verwenden, wird eine Wiedergabeliste generiert, die Fragmente aus einer Zeitspanne von vier bis zehn Sekunden der VoD-Präsentation enthält. Wenn ein Fragment die Grenze überschreitet, wird das gesamte Fragment in das Manifest aufgenommen. |
timescale | Gilt für alle Zeitstempel und Zeiträume in einem Präsentationszeitbereich, der als Anzahl der Inkremente in einer Sekunde angegeben wird. Der Standardwert ist 10000000 – zehn Millionen Inkremente in einer Sekunde, wobei jedes Inkrement 100 Nanosekunden lang sein würde. Dieser Wert ist jedoch von der Videoquelle abhängig und auch davon, ob das Liveereignis in der Cloud codiert wird. Für Video ist die Standardeinstellung 90 Khz bzw. 90000. Wenn Sie z. B. einen Startzeitstempel auf 30 Sekunden einstellen möchten, würden Sie bei Verwendung der Standardzeitskala einen Wert von 300000000 verwenden. Vergewissern Sie sich im Manifest Ihres Medienobjekts, dass die Zeitskala für die Videospur die festgelegte Zeitskala nicht überschreitet. Bei Liveereignissen mit Codierung kann die Zeitskala für Videospuren 90 Khz (90000) und für Audiospuren 48 Khz (48000) betragen. |
liveBackoffDuration | Gilt nur für Livestreaming. Dieser Wert definiert die letzte Liveposition, die ein Client durchsuchen kann. Mit dieser Eigenschaft können Sie die Livewiedergabeposition verzögern und einen serverseitigen Puffer für Spieler erstellen. Die Einheit für diese Eigenschaft ist die Zeitskala (siehe unten). Der maximal zulässige Wert für „LiveBackoffDuration“ beträgt 300 Sekunden (3000000000). Ein Wert von 2000000000 bedeutet z. B., dass der letzte verfügbare Inhalt 20 Sekunden gegenüber der tatsächlichen Liveedge verzögert ist. |
presentationWindowDuration | Gilt nur für Livestreaming. Verwenden Sie „presentationWindowDuration“, um ein gleitendes Fenster mit Fragmenten auf die Wiedergabeliste anzuwenden. Die Einheit für diese Eigenschaft ist die Zeitskala (siehe unten). Legen Sie beispielsweise „presentationWindowDuration=1200000000“ fest, um ein gleitendes Fenster von 2 Minuten anzuwenden. Medien, die in einem 2-Minuten-Zeitraum um die Liveposition liegen, werden in die Wiedergabeliste aufgenommen. Wenn ein Fragment die Grenze überschreitet, wird das gesamte Fragment in die Wiedergabeliste aufgenommen. Die Mindestdauer für das Präsentationsfenster beträgt 60 Sekunden. |
forceEndTimestamp | Gilt nur für Livestreaming. Gibt an, ob die Eigenschaft „endTimestamp“ vorhanden sein muss. Bei „true“ muss „endTimestamp“ muss angegeben werden, da ansonsten ein ungültiger Anforderungscode zurückgegeben wird. Zulässige Werte: false, true. |
Spuren
Sie geben eine Liste von Eigenschaftsbedingungen für die Filterung nach Spuren an (FilterTrackPropertyConditions), anhand derer die Spuren Ihres Streams (Livestreaming oder Video on Demand) in das dynamisch erstellte Manifest aufgenommen werden sollen. Die Filter werden durch einen logischen AND- und OR-Vorgang kombiniert.
Spureigenschaftsbedingungen für die Filterung beschreiben Spurtypen, Werte (siehe nachstehende Tabelle) und Vorgänge („Equal“, „NotEqual“).
Name | BESCHREIBUNG |
---|---|
Bitrate | Verwenden Sie die Bitrate der Spur zur Filterung. Optimal wäre ein Bitratenbereich in Bits pro Sekunde. Beispiel: 0-2427000. Hinweis: Als Bitrate können Sie einen bestimmten Wert angeben, z. B. 250000 (Bits pro Sekunde). Von diesem Ansatz wird jedoch abgeraten, da die Bitraten von Medienobjekten sehr unterschiedlich sein können. |
FourCC | Verwenden Sie den FourCC-Wert der Spur für die Filterung. Der Wert ist das erste Element des Codecs-Formats, wie angegeben in RFC 6381. Aktuell werden die folgenden Codecs unterstützt: Für Video: avc1, hev1, hvc1 Für Audio: mp4a, ec-3 Um die FourCC-Werte für die Spuren in einem Medienobjekt zu bestimmen, müssen Sie die Manifestdatei abrufen und untersuchen. |
Sprache | Verwenden Sie die Sprache der Spur zur Filterung. Der Wert ist das Tag einer Sprache, die Sie einschließen möchten, wie angegeben in RFC 5646. Beispiel: „en“. |
Name | Verwenden Sie den Namen der Spur zur Filterung. |
Typ | Verwenden Sie den Typ der Spur zur Filterung. Die folgenden Werte sind zulässig: video, audio, text |
Beispiel
Das folgende Beispiel definiert einen Livestreamingfilter:
{
"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"
}
]
}
]
}
}
Filtern von HLS- oder DASH-Manifesten bei der Erstellung eines Streaminglocators
Mit Media Services können Sie einen Streaminglocator erstellen, der vorab durch eine Filterserie gefiltert wird, die an die Filtereigenschaft der Streaminglocator-Entität übergeben wurde. Auf diese Weise können Sie alle über diesen Streaminglocator verfügbaren Manifeste vorab filtern. Das ursprüngliche Manifest ist über diesen Streaminglocator nicht mehr verfügbar. Clients, die vom gefilterten Streaminglocator URLs für DASH oder HLS anfordern, können lediglich auf die gefilterte Antwort zugreifen. Dies ist zum Beispiel praktisch, wenn Sie nur einen Teil eines Medienobjekts veröffentlichen möchten. Um zu verhindern, dass Benutzer Zugriff auf das vollständige Originalmanifest des Medienobjekts erhalten, können Sie die Abfragezeichenfolge für die URL des HLS- oder DASH-Manifests mit einem solchen Filter manipulieren.
Sie können eine Liste von Medienobjekt- oder Kontofiltern für Ihren Streaminglocator angeben. Der dynamische Paketerstellungs-Manager wendet diese Liste der Filter zusammen mit den Filtern an, die Ihr Client in der URL angibt. Diese Kombination generiert ein dynamisches Manifest, das auf Filtern in den URL und Filtern basiert, die Sie im Streaminglocator angeben.
Aktualisieren von Filtern
Filter und Streaminglocators können während der Ausführung aktualisiert werden. Allerdings kann es bis zu 10 Sekunden dauern, bis Änderungen auf den Front-End-Webservern aktualisiert werden, so dass beim nachgelagerten CDN-Caching von Inhalten Probleme auftreten können, wenn Sie einen bereits veröffentlichten und in der Produktion verwendeten Streaminglocator aktualisieren.
Daher wird dringend von einer Änderung der Filterdefinition eines bereits veröffentlichten und aktiven Streaminglocators abgeraten, insbesondere in Verbindung mit einem aktiven CDN. Streamingserver und CDNs können interne Caches besitzen, die dazu führen können, dass veraltete zwischengespeicherte Daten zurückgegeben werden.
Wenn die Filterdefinition geändert werden muss, erwägen Sie, einen neuen Filter zu erstellen und diesen der Streaminglocator-URL hinzuzufügen oder einen neuen Streaminglocator zu veröffentlichen, der direkt auf den geänderten Filter verweist.
Anfordern von Hilfe und Support
Sie können Media Services mit Fragen kontaktieren oder unsere Updates mit einer der folgenden Methoden verfolgen:
- Q & A
-
Stack Overflow. Markieren Sie Fragen mit
azure-media-services
. - @MSFTAzureMedia oder verwenden Sie @AzureSupport , um Support anzufordern.
- Öffnen Sie ein Supportticket über die Azure-Portal.