Ausgeben von Metadaten
Warnung
Azure Media Services wird am 30. Juni 2024 eingestellt. Weitere Informationen finden Sie im Leitfaden zur Einstellung von AMS.
Ein Codierauftrag ist einem Eingabeasset (oder mehreren) zugeordnet, für das Sie einige Codieraufgaben durchführen möchten. Beispiele: Codieren einer MP4-Datei in H.264 MP4 Adaptive Bitrate-Sätze, Erstellen einer Miniaturansicht, Erstellen von Überlagerungen. Nach Abschluss einer Aufgabe wird ein Ausgabeasset erzeugt. Das Ausgabeasset enthält Video-, Audio-, Miniaturansichts- und weitere Dateien. Das Ausgabeasset enthält auch eine Datei mit Metadaten zum Ausgabeasset. Der Name der JSON-Metadatendatei weist das folgende Format auf: <source_file_name>_manifest.json
(Beispiel: BigBuckBunny_manifest.json
). Sie sollten nach „*_metadata.json“ suchen und die enthaltene Dateipfad-Zeichenfolge abfragen, um den Quelldateinamen (ohne Kürzung) zu suchen.
Media Services scannt Eingabeobjekte nicht im Vorhinein, um Metadaten zu generieren. Eingabemetadaten werden nur dann als Artefakt generiert, wenn ein Eingabeasset in einem Auftrag verarbeitet wird. Dieses Artefakt wird dann in das Ausgabeasset geschrieben. Zum Generieren von Metadaten für Eingabe- und Ausgabeobjekte werden verschiedene Tools eingesetzt. Deshalb weicht das Schema der Eingabemetadaten leicht von dem der Ausgabemetadaten ab.
In diesem Artikel werden die Elemente und Typen des JSON-Schemas beschrieben, auf denen die Ausgabemetadaten (<Quelldateiname>_manifest.json) basieren.
BaseName-Zeichenlänge für die Voreinstellungen CopyVideo und CopyAudio
Das für die Benennung der ausgegebenen Metadatendatei verwendete Dateinamensmakro {baseName} wird bei standardmäßigen Codierungsvoreinstellungen und benutzerdefinierten Voreinstellungen auf 32 Zeichen gekürzt. Zur Vermeidung von Namenskonflikten bei Verwendung einer der CopyCodec-Operationen (CopyAudio oder CopyVideo) in einer benutzerdefinierten Voreinstellung ist {BaseName} auf 64 Zeichen beschränkt. Dadurch werden auch Szenarien unterstützt, in denen alle Ausgabedateien eines Medienobjekts archiviert werden sollen. Bei sehr langen Dateinamen sind die ersten 32 Zeichen zueinander gehöriger Ausgabedateien oft identisch. In diesem Fall würde eine Kürzung auf 32 Zeichen bei CopyVideo oder CopyAudio zu doppelten Ausgabedateien führen. Daher werden bei Verwendung von CopyCodec in einer Voreinstellung weiterhin 64 Zeichen für {BaseName} unterstützt.
Sie finden den vollständigen Schemacode und das JSON-Beispiel am Ende des Artikels.
AssetFile
Sammlung von „AssetFile“-Einträgen für den Codierauftrag.
Name | BESCHREIBUNG |
---|---|
Sources | Sammlung von Eingabe-/Quellmediendateien, die verarbeitet wurde, um diese Medienobjektdatei zu erzeugen. Beispiel: "Sources": [{"Name": "Ignite-short_1280x720_AACAudio_3551.mp4"}] |
VideoTracks | Jede physische Medienobjektdatei kann null oder mehr Videospuren enthalten, die zu einem entsprechenden Containerformat zusammengeführt werden. Siehe dazu VideoTracks. |
AudioTracks | Jede physische Medienobjektdatei kann null oder mehr Audiospuren enthalten, die zu einem entsprechenden Containerformat zusammengeführt werden. Dies ist die Sammlung aller dieser Audiospuren. Weitere Informationen finden Sie unter AudioTracks. |
Name Erforderlich |
Der Name der Medienobjektdatei. Beispiel: "Name": "Ignite-short_1280x720_AACAudio_3551.mp4" |
Größe Erforderlich |
Größe der Assetdatei in Byte Beispiel: "Size": 32414631 |
Duration Erforderlich |
Dauer der Inhaltswiedergabe. Weitere Informationen finden Sie in der Dokumentation zum ISO8601-Format. Beispiel: "Duration": "PT1M10.315S" |
VideoTracks
Jede physische Medienobjektdatei kann null oder mehr Videospuren enthalten, die zu einem entsprechenden Containerformat zusammengeführt werden. Das VideoTracks-Element stellt eine Sammlung aller Videotitel dar.
Name | BESCHREIBUNG |
---|---|
Id Erforderlich |
Nullbasierter Index dieser Videospur. Hinweis: Diese Id ist nicht unbedingt die „TrackID“, die in einer MP4-Datei verwendet wird. Beispiel: "Id": 1 |
FourCC Erforderlich |
FourCC-Code des Videocodecs, der von ffmpeg gemeldet wird. Beispiel: "FourCC": "avc1" | "hev1" | "hvc1" |
Profil | H264-Profil (gilt nur für den H264-Codec) Beispiel: "Profile": "High" |
Level | H264-Pegel (gilt nur für den H264-Codec). Beispiel: "Level": "3.2" |
Width Erforderlich |
Breite des codierten Videos in Pixel Beispiel: "Width": "1280" |
Height Erforderlich |
Höhe des codierten Videos in Pixel Beispiel: "Height": "720" |
DisplayAspectRatioNumerator Erforderlich |
Seitenverhältnis-Zähler der Videoanzeige Beispiel: "DisplayAspectRatioNumerator": 16.0 |
DisplayAspectRatioDenominator Erforderlich |
Seitenverhältnis-Nenner der Videoanzeige Beispiel: "DisplayAspectRatioDenominator": 9.0 |
Framerate Erforderlich |
Gemessene Videobildfrequenz im Format „.3f“ Beispiel: "Framerate": 29.970 |
Bitrate Erforderlich |
Durchschnittliche Videobitrate in Bits pro Sekunde gemäß Berechnung anhand der Objektdatei. Zählt nur die elementare Datenstrom-Nutzlast, ohne den Aufwand für das Packen einzubeziehen. Beispiel: "Bitrate": 3551567 |
TargetBitrate Erforderlich |
Durchschnittliche Bitrate dieser Videospur entsprechend der Anforderung der Codierungsvoreinstellung in Bit/s. Beispiel: "TargetBitrate": 3520000 |
AudioTracks
Jede physische Medienobjektdatei kann null oder mehr Audiospuren enthalten, die zu einem entsprechenden Containerformat zusammengeführt werden. Das AudioTracks-Element stellt eine Sammlung aller Audiotitel dar.
Name | BESCHREIBUNG |
---|---|
Id Erforderlich |
Nullbasierter Index dieser Videospur. Hinweis: Dies ist nicht unbedingt die „TrackID“, die in einer MP4-Datei verwendet wird. Beispiel: "Id": 2 |
Codec | Codec-Zeichenfolge der Audiospur. Beispiel: "Codec": "aac" |
Sprache | Beispiel: "Language": "eng" |
Channels Erforderlich |
Anzahl der Audiokanäle. Beispiel: "Channels": 2 |
SamplingRate Erforderlich |
Audiosamplingrate in Stichproben/Sekunde oder Hz Beispiel: "SamplingRate": 48000 |
Bitrate Erforderlich |
Die durchschnittliche Audiobitrate in Bit/s gemäß Berechnung anhand der Medienobjektdatei. Zählt nur die elementare Datenstrom-Nutzlast, ohne den Aufwand für das Packen einzubeziehen. Beispiel: "Bitrate": 128041 |
Beispiel für das JSON-Schema
{
"AssetFile": [
{
"Sources": [
{
"Name": "Ignite-short_1280x720_AACAudio_3551.mp4"
}
],
"VideoTracks": [
{
"Id": 1,
"FourCC": "avc1",
"Profile": "High",
"Level": "3.2",
"Width": "1280",
"Height": "720",
"DisplayAspectRatioNumerator": 16.0,
"DisplayAspectRatioDenominator": 9.0,
"Framerate": 29.970,
"Bitrate": 3551567,
"TargetBitrate": 3520000
}
],
"AudioTracks": [
{
"Id": 2,
"Codec": "aac",
"Language": "eng",
"Channels": 2,
"SamplingRate": 48000,
"Bitrate": 128041
}
],
"Name": "Ignite-short_1280x720_AACAudio_3551.mp4",
"Size": 32414631,
"Duration": "PT1M10.315S"
},
{
"Sources": [
{
"Name": "Ignite-short_960x540_AACAudio_2216.mp4"
}
],
"VideoTracks": [
{
"Id": 1,
"FourCC": "avc1",
"Profile": "High",
"Level": "3.1",
"Width": "960",
"Height": "540",
"DisplayAspectRatioNumerator": 16.0,
"DisplayAspectRatioDenominator": 9.0,
"Framerate": 29.970,
"Bitrate": 2216326,
"TargetBitrate": 2210000
}
],
"AudioTracks": [
{
"Id": 2,
"Codec": "aac",
"Language": "eng",
"Channels": 2,
"SamplingRate": 48000,
"Bitrate": 128041
}
],
"Name": "Ignite-short_960x540_AACAudio_2216.mp4",
"Size": 20680897,
"Duration": "PT1M10.315S"
},
{
"Sources": [
{
"Name": "Ignite-short_640x360_AACAudio_1150.mp4"
}
],
"VideoTracks": [
{
"Id": 1,
"FourCC": "avc1",
"Profile": "High",
"Level": "3.0",
"Width": "640",
"Height": "360",
"DisplayAspectRatioNumerator": 16.0,
"DisplayAspectRatioDenominator": 9.0,
"Framerate": 29.970,
"Bitrate": 1150440,
"TargetBitrate": 1150000
}
],
"AudioTracks": [
{
"Id": 2,
"Codec": "aac",
"Language": "eng",
"Channels": 2,
"SamplingRate": 48000,
"Bitrate": 128041
}
],
"Name": "Ignite-short_640x360_AACAudio_1150.mp4",
"Size": 11313920,
"Duration": "PT1M10.315S"
},
{
"Sources": [
{
"Name": "Ignite-short_480x270_AACAudio_722.mp4"
}
],
"VideoTracks": [
{
"Id": 1,
"FourCC": "avc1",
"Profile": "High",
"Level": "2.1",
"Width": "480",
"Height": "270",
"DisplayAspectRatioNumerator": 16.0,
"DisplayAspectRatioDenominator": 9.0,
"Framerate": 29.970,
"Bitrate": 722682,
"TargetBitrate": 720000
}
],
"AudioTracks": [
{
"Id": 2,
"Codec": "aac",
"Language": "eng",
"Channels": 2,
"SamplingRate": 48000,
"Bitrate": 128041
}
],
"Name": "Ignite-short_480x270_AACAudio_722.mp4",
"Size": 7554708,
"Duration": "PT1M10.315S"
},
{
"Sources": [
{
"Name": "Ignite-short_320x180_AACAudio_380.mp4"
}
],
"VideoTracks": [
{
"Id": 1,
"FourCC": "avc1",
"Profile": "High",
"Level": "1.3",
"Width": "320",
"Height": "180",
"DisplayAspectRatioNumerator": 16.0,
"DisplayAspectRatioDenominator": 9.0,
"Framerate": 29.970,
"Bitrate": 380655,
"TargetBitrate": 380000
}
],
"AudioTracks": [
{
"Id": 2,
"Codec": "aac",
"Language": "eng",
"Channels": 2,
"SamplingRate": 48000,
"Bitrate": 128041
}`
],
"Name": "Ignite-short_320x180_AACAudio_380.mp4",
"Size": 4548932,
"Duration": "PT1M10.315S"
}
]
}
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.