Metadados de saída
Aviso
Os Serviços de Mídia do Azure serão desativados em 30 de junho de 2024. Para obter mais informações, consulte o Guia de Desativação do AMS.
Um trabalho de codificação é associado um ativo (ou ativos) de entrada no qual você deseja executar algumas tarefas de codificação. Por exemplo, codificar um arquivo MP4 em conjuntos de taxa de bits adaptável MP4 H.264; criar uma miniatura; criar sobreposições. Após a conclusão de uma tarefa, um ativo de saída é produzido. O ativo de saída contém vídeo, áudio, miniaturas e outros arquivos. O ativo de saída também contém um arquivo com metadados sobre o ativo de saída. O nome do arquivo JSON de metadados tem o seguinte formato: <source_file_name>_manifest.json
(por exemplo, BigBuckBunny_manifest.json
). Você deve examinar em busca de qualquer * _metadata.json e consultar a cadeia de caracteres filepath nele para localizar o nome de arquivo de origem (sem truncamento).
Os Serviços de Mídia não analisam preventivamente os ativos de entrada para gerar metadados. Os metadados de entrada são gerados apenas como um artefato quando um ativo de entrada é processado em um trabalho. Portanto, este artefato é gravado no ativo de saída. Diferentes ferramentas são usadas para gerar metadados para ativos de entrada e ativos de saída. Portanto, os metadados de entrada têm um esquema um pouco diferente dos metadados de saída.
Este artigo discute os elementos e tipos do esquema JSON no qual os metadados de saída (<nome_do_arquivo_de_origem>_manifest.json) é baseado.
Tamanho do caractere BaseName ao usar predefinições CopyVideo ou CopyAudio
A macro de nomenclatura de arquivo {baseName} usada na nomenclatura do arquivo de metadados de saída é reduzida para 32 caracteres ao usar qualquer predefinição de codificação padrão ou predefinição personalizada. No entanto, para evitar um conflito de nomenclatura ao usar uma das operações CopyCodec (CopyAudio ou CopyVideo) em uma predefinição personalizada, o {Basename} é limitado a 64 caracteres. Isso é para dar suporte a cenários em que os clientes desejam arquivar todos os arquivos de saída em seu ativo. Se o nome do arquivo for muito longo, os primeiros 32 caracteres poderão ser os mesmos em vários arquivos de saída. Nesse caso, os primeiros 32 caracteres produziriam arquivos de saída duplicados ao usar CopyVideo ou CopyAudio. Como resultado, o comportamento de {Basename} deverá reter 64 caracteres se CopyCodec for usado na predefinição.
Você pode encontrar o código de esquema completo e o exemplo JSON no final deste artigo.
AssetFile
Coleção de entradas AssetFile do trabalho de codificação.
Nome | Descrição |
---|---|
Fontes | Coleção de arquivos de mídia de entrada/origem, que foi processada para produzir esse AssetFile. Exemplo: "Sources": [{"Name": "Ignite-short_1280x720_AACAudio_3551.mp4"}] |
VideoTracks | Cada AssetFile físico pode conter zero ou mais faixas de vídeos intercaladas em um formato de contêiner apropriado. Consulte VideoTracks. |
AudioTracks | Cada AssetFile físico pode conter zero ou mais faixas de áudio intercaladas em um formato de contêiner apropriado. Esta é a coleção de todas essas faixas de áudio. Para obter mais informações, consulte AudioTracks. |
Nome Obrigatório |
O nome de arquivo de ativo de mídia. Exemplo: "Name": "Ignite-short_1280x720_AACAudio_3551.mp4" |
Tamanho Obrigatório |
Tamanho do arquivo de ativo em bytes. Exemplo: "Size": 32414631 |
Duration Obrigatório |
Duração da reprodução de conteúdo. Para obter mais informações, consulte o formato ISO8601. Exemplo: "Duration": "PT1M10.315S" |
VideoTracks
Cada AssetFile físico pode conter zero ou mais faixas de vídeos intercaladas em um formato de contêiner apropriado. O elemento VideoTracks representa uma coleção de todas as faixas de vídeos.
Nome | Descrição |
---|---|
Id Obrigatório |
Índice baseado em zero desta faixa de vídeo. Observação: essa ID não é necessariamente a TrackID usada em um arquivo MP4. Exemplo: "Id": 1 |
FourCC Obrigatório |
Código FourCC do codec de vídeo que é relatado por ffmpeg. Exemplo: "FourCC": "avc1" | "hev1" | "hvc1" |
Perfil | Perfil H264 (aplicável somente ao codec H264) Exemplo: "Profile": "High" |
Level | Nível H264 (aplicável somente ao codec H264). Exemplo: "Level": "3.2" |
Largura Obrigatório |
Largura do vídeo codificado em pixels. Exemplo: "Width": "1280" |
Altura Obrigatório |
Altura do vídeo codificado em pixels. Exemplo: "Height": "720" |
DisplayAspectRatioNumerator Obrigatório |
Numerador de taxa de proporção de exibição do vídeo. Exemplo: "DisplayAspectRatioNumerator": 16.0 |
DisplayAspectRatioDenominator Obrigatório |
Denominador de taxa de proporção de exibição do vídeo. Exemplo: "DisplayAspectRatioDenominator": 9.0 |
Framerate Obrigatório |
Medida de taxa de quadros de vídeo em formato .3f. Exemplo: "Framerate": 29.970 |
Bitrate Obrigatório |
Taxa de bits de vídeo média em bits por segundo, calculada com base no AssetFile. Conta apenas o conteúdo de transmissão elementar e não inclui a sobrecarga de empacotamento. Exemplo: "Bitrate": 3551567 |
TargetBitrate Obrigatório |
Taxa de bits média de destino para esta faixa de vídeo, conforme solicitada através da predefinição da codificação, em bits por segundo. Exemplo: "TargetBitrate": 3520000 |
AudioTracks
Cada AssetFile físico pode conter zero ou mais faixas de áudio intercaladas em um formato de contêiner apropriado. O elemento AudioTracks representa uma coleção de todas essas faixas de áudio.
Nome | Descrição |
---|---|
Id Obrigatório |
Índice baseado em zero desta faixa de áudio. Observação: essa não é necessariamente a TrackID usada em um arquivo MP4. Exemplo: "Id": 2 |
Codec | Cadeia de caracteres de codec de faixa de áudio. Exemplo: "Codec": "aac" |
Idioma | Exemplo: "Language": "eng" |
Canais Obrigatório |
Número de canais de áudio. Exemplo: "Channels": 2 |
SamplingRate Obrigatório |
Taxa de amostragem de áudio em amostras/s ou Hz. Exemplo: "SamplingRate": 48000 |
Bitrate Obrigatório |
Taxa média de bits de áudio em bits por segundo, calculada com base no AssetFile. Conta apenas o conteúdo de transmissão elementar e não inclui a sobrecarga de empacotamento. Exemplo: "Bitrate": 128041 |
Exemplo de esquema JSON
{
"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"
}
]
}
Obter ajuda e suporte
Você pode entrar em contato com os Serviços de Mídia com dúvidas ou seguir nossas atualizações por um dos seguintes métodos:
- P & R
-
Stack Overflow. Marque perguntas com
azure-media-services
. - @MSFTAzureMedia ou use @AzureSupport para solicitar suporte.
- Abra um tíquete de suporte por meio do portal do Azure.