Codificar vídeo e áudio com os Serviços de Multimédia

Logótipo dos Serviços de Multimédia v3


Aviso

Os Serviços de Multimédia do Azure serão descontinuados a 30 de junho de 2024. Para obter mais informações, veja o Guia de Extinção do AMS.

Dica

Quer gerar miniaturas, juntar dois vídeos, subclipar um vídeo ou rodá-lo (entre outras coisas)? Pode encontrar o código de exemplo dos Serviços de Multimédia na página Exemplos .

O termo codificação nos Serviços de Multimédia aplica-se ao processo de conversão de ficheiros que contêm vídeo digital e/ou áudio de um formato padrão para outro, com o objetivo de (a) reduzir o tamanho dos ficheiros e/ou (b) produzir um formato compatível com uma vasta gama de dispositivos e aplicações. Este processo também é conhecido como compressão de vídeo ou transcodificação. Consulte a Compressão de dados e o Artigo O que é a Codificação e a Transcodificação? para saber mais sobre os conceitos.

Normalmente, os vídeos são entregues em dispositivos e aplicações através de transferência progressiva ou através da transmissão em fluxo de velocidade de transmissão adaptável.

transformações e tarefas

Importante

Os Serviços de Multimédia não faturam os trabalhos cancelados ou que geram erros. Por exemplo, uma tarefa que atingiu 50% de progresso e foi cancelada não é faturada em 50% dos minutos da tarefa. Só lhe são cobradas as tarefas concluídas.

  • Para entregar através de transferência progressiva, pode utilizar os Serviços de Multimédia do Azure para converter um ficheiro de multimédia digital (mezanino) num ficheiro MP4 , que contém vídeo que foi codificado com o codec H.264 e o áudio que foi codificado com o codec AAC . Este ficheiro MP4 foi escrito num Recurso na sua conta de armazenamento. Pode utilizar as APIs ou SDKs do Armazenamento do Azure (por exemplo, a API REST de Armazenamento ou o SDK .NET) para transferir o ficheiro diretamente. Se tiver criado o Recurso de saída com um nome de contentor específico no armazenamento, utilize essa localização. Caso contrário, pode utilizar os Serviços de Multimédia para listar os URLs do contentor de recursos.
  • Para preparar o conteúdo para entrega através da transmissão em fluxo de velocidade de transmissão adaptável, o ficheiro mezanino tem de ser codificado a múltiplas velocidades de transmissão (alta a baixa). Para garantir uma transição correta da qualidade, a resolução do vídeo é reduzida à medida que a velocidade de transmissão é reduzida. Isto resulta numa chamada escada de codificação – uma tabela de resoluções e velocidades de transmissão (veja escadote de velocidade de transmissão adaptável gerada automaticamente ou utilize a predefinição de codificação com deteção de conteúdo). Pode utilizar os Serviços de Multimédia para codificar os seus ficheiros mezanino a múltiplas velocidades de transmissão. Ao fazê-lo, obterá um conjunto de ficheiros MP4 e ficheiros de configuração de transmissão em fluxo associados escritos num Recurso na sua conta de armazenamento. Em seguida, pode utilizar a capacidade Empacotamento Dinâmico nos Serviços de Multimédia para fornecer o vídeo através de protocolos de transmissão em fluxo, como MPEG-DASH e HLS. Isto requer a criação de um Localizador de Transmissão em Fluxo e a criação de URLs de transmissão em fluxo correspondentes aos protocolos suportados, que podem ser entregues a dispositivos/aplicações com base nas respetivas capacidades.

Transformações e tarefas

Para codificar com os Serviços de Multimédia v3, tem de criar uma Transformação e uma Tarefa. A transformação define uma receita para as suas definições e saídas de codificação; o trabalho é uma instância da receita. Para obter mais informações, veja Transforms and Jobs (Transformações e Trabalhos).

Ao codificar com os Serviços de Multimédia, utiliza predefinições para indicar ao codificador como os ficheiros de multimédia de entrada devem ser processados. Nos Serviços de Multimédia v3, utiliza o Codificador Standard para codificar os seus ficheiros. Por exemplo, pode especificar a resolução de vídeo e/ou o número de canais de áudio que pretende no conteúdo codificado.

Pode começar rapidamente com uma das predefinições incorporadas com base nas melhores práticas do setor ou pode optar por criar uma predefinição personalizada para direcionar os seus requisitos de cenários ou dispositivos específicos.

A partir de janeiro de 2019, ao codificar com o Codificador Standard para produzir ficheiros MP4, é gerado um novo ficheiro .mpi e adicionado ao Recurso de saída. Este ficheiro MPI destina-se a melhorar o desempenho dos cenários dinâmicos de empacotamento e transmissão em fluxo.

Nota

Não deve modificar ou remover o ficheiro MPI nem assumir qualquer dependência no seu serviço sobre a existência (ou não) de tal ficheiro.

Predefinições incorporadas

Os Serviços de Multimédia suportam as seguintes predefinições de codificação incorporadas:

BuiltInStandardEncoderPreset

BuiltInStandardEncoderPreset é utilizado para definir uma predefinição incorporada para codificar o vídeo de entrada com o Codificador Standard.

As seguintes predefinições incorporadas são atualmente suportadas:

  • EncoderNamedPreset.AACGoodQualityAudio: produz um único ficheiro MP4 que contém apenas áudio estéreo codificado a 192 kbps.

  • EncoderNamedPreset.AdaptiveStreaming: suporta a codificação de velocidade de transmissão adaptável H.264. Para obter mais informações, veja Auto-generating a bitrate ladder (Gerar automaticamente uma escada de velocidade de transmissão).

  • EncoderNamedPreset.H265AdaptiveStreaming : semelhante à predefinição AdaptiveStreaming, mas utiliza o codec HEVC (H.265). Produz um conjunto de ficheiros MP4 alinhados com GOP com vídeo H.265 e áudio AAC estéreo. Gera automaticamente uma escada de velocidade de transmissão com base na resolução de entrada, velocidade de transmissão e taxa de fotogramas. A predefinição gerada automaticamente nunca excederá a resolução de entrada. Por exemplo, se a entrada for de 720p, a saída permanecerá, na melhor das hipóteses, 720p.

  • EncoderNamedPreset.ContentAwareEncoding: expõe uma predefinição para codificação com suporte para conteúdo H.264. Produz um conjunto de MP4s alinhados com GOP através da codificação com deteção de conteúdo. Tendo em conta qualquer conteúdo de entrada, o serviço realiza uma análise simples inicial do conteúdo de entrada e utiliza os resultados para determinar o número ideal de camadas, as definições de velocidade de transmissão e resolução adequadas para entrega através da transmissão em fluxo adaptável. Esta predefinição é particularmente eficaz para vídeos de complexidade baixa e média, onde os ficheiros de saída estarão em velocidades de transmissão mais baixas, mas com uma qualidade que ainda proporciona uma boa experiência aos espectadores. A saída irá conter ficheiros MP4 com vídeo e áudio intercalados. Esta predefinição só produz uma saída até 1080P HD. Se for necessário um resultado 4K, pode configurar a predefinição com PresetConfigurations com a propriedade "maxHeight". Para obter mais informações, veja codificação com deteção de conteúdo.

  • EncoderNamedPreset.H265ContentAwareEncoding: expõe uma predefinição para codificação com suporte para conteúdos HEVC (H.265). Produz um conjunto de MP4s alinhados com GOP através da codificação com deteção de conteúdo. Tendo em conta qualquer conteúdo de entrada, o serviço realiza uma análise simples inicial do conteúdo de entrada e utiliza os resultados para determinar o número ideal de camadas, as definições de velocidade de transmissão e resolução adequadas para entrega através da transmissão em fluxo adaptável. Esta predefinição é particularmente eficaz para vídeos de complexidade baixa e média, onde os ficheiros de saída estarão em velocidades de transmissão mais baixas, mas com uma qualidade que ainda proporciona uma boa experiência aos espectadores. A saída irá conter ficheiros MP4 com vídeo e áudio intercalados. Esta predefinição produz um resultado até 4K HD. Se for necessária uma saída de 8K, pode configurar a predefinição com PresetConfigurations com a propriedade "maxHeight".

  • EncoderNamedPreset.H264MultipleBitrate1080p: produz um conjunto de oito ficheiros MP4 alinhados com GOP, que variam entre 6000 kbps e 400 kbps e áudio AAC estéreo. A resolução começa a 1080p e desce para 360p.

  • EncoderNamedPreset.H264MultipleBitrate720p: produz um conjunto de seis ficheiros MP4 alinhados com GOP, que variam entre 3400 kbps e 400 kbps e áudio AAC estéreo. A resolução começa nos 720p e desce para 360p.

  • EncoderNamedPreset.H264MultipleBitrateSD: produz um conjunto de cinco ficheiros MP4 alinhados com GOP, que variam entre 1600 kbps e 400 kbps e áudio AAC estéreo. A resolução começa nos 480p e desce para 360p.

  • EncoderNamedPreset.H264SingleBitrate1080p: produz um ficheiro MP4 onde o vídeo é codificado com um codec H.264 a 6750 kbps e uma altura de imagem de 1080 píxeis e o áudio estéreo é codificado com o codec AAC-LC a 128 kbps. Se quiser velocidades de transmissão mais baixas para áudio, pode criar uma predefinição de codificação personalizada na sua transformação e ajustar a taxa de amostragem ou a contagem de canais para obter valores mais baixos para AAC-LC.

  • EncoderNamedPreset.H264SingleBitrate720p: produz um ficheiro MP4 onde o vídeo é codificado com um codec H.264 a 4500 kbps e uma altura de imagem de 720 pixels e o áudio estéreo é codificado com codec AAC-LC a 128 kbps. Se quiser velocidades de transmissão mais baixas para áudio, pode criar uma predefinição de codificação personalizada na sua transformação e ajustar a taxa de amostragem ou a contagem de canais para obter valores mais baixos para AAC-LC.

  • EncoderNamedPreset.H264SingleBitrateSD: produz um ficheiro MP4 onde o vídeo é codificado com um codec H.264 a 2200 kbps e uma altura de imagem de 480 pixels e o áudio estéreo é codificado com codec AAC-LC a 128 kbps. Se quiser velocidades de transmissão mais baixas para áudio, pode criar uma predefinição de codificação personalizada na sua transformação e ajustar a taxa de amostragem ou a contagem de canais para obter valores mais baixos para AAC-LC.

  • EncoderNamedPreset.H265SingleBitrate720P: produz um ficheiro MP4 onde o vídeo está codificado com o codec HEVC (H.265) a 1800 kbps e uma altura de imagem de 720 píxeis e o áudio estéreo é codificado com codec AAC-LC a 128 kbps.

  • EncoderNamedPreset.H265SingleBitrate1080p: produz um ficheiro MP4 onde o vídeo é codificado com codec HEVC (H.265) a 3500 kbps e uma altura de imagem de 1080 pixels e o áudio estéreo é codificado com codec AAC-LC a 128 kbps.

  • EncoderNamedPreset.H265SingleBitrate4K: produz um ficheiro MP4 onde o vídeo é codificado com codec HEVC (H.265) a 9500 kbps e uma altura de imagem de 2160 pixels e o áudio estéreo é codificado com codec AAC-LC a 128 kbps.

Para ver a lista de predefinições mais atualizada, veja as predefinições incorporadas a utilizar para codificar vídeos.

Predefinições personalizadas

Os Serviços de Multimédia suportam totalmente a personalização de todos os valores predefinidos para satisfazer as suas necessidades e requisitos de codificação específicos.

StandardEncoderPreset

StandardEncoderPreset descreve as definições a utilizar ao codificar o vídeo de entrada com o Codificador Standard. Utilize esta predefinição ao personalizar as predefinições de Transformação.

Considerações

Ao criar predefinições personalizadas, aplicam-se as seguintes considerações:

  • Todos os valores de altura e largura no conteúdo AVC têm de ser múltiplos de quatro.
  • Nos Serviços de Multimédia do Azure v3, todas as velocidades de transmissão de codificação estão em bits por segundo. Isto é diferente das predefinições com as nossas APIs v2, que utilizaram quilobits/segundo como unidade. Por exemplo, se a velocidade de transmissão em v2 tiver sido especificada como 128 (quilobits/segundo), na v3, será definida como 128000 (bits/segundo).

Esquema predefinido

Nos Serviços de Multimédia v3, as predefinições são entidades fortemente digitadas na própria API. Pode encontrar a definição de "esquema" para estes objetos na Especificação de API Aberta (ou Swagger). Também pode ver as definições predefinidas (como StandardEncoderPreset) na API REST, no SDK .NET (ou noutra documentação de referência do SDK dos Serviços de Multimédia v3).

Dimensionar a codificação na v3

Para contas criadas com a versão 2020-05-01 ou posterior da API ou através do portal do Azure, já não são necessárias unidades reservadas de dimensionamento e multimédia. O dimensionamento será automático e processado internamente pelo serviço.

Faturação

Os Serviços de Multimédia não faturam tarefas canceladas ou com erros. Por exemplo, uma tarefa que atingiu 50% de progresso e foi cancelada não é faturada em 50% dos minutos de trabalho. Só lhe são cobradas as tarefas concluídas.

Para obter mais informações, veja preços.

Codificar exemplos

Veja a extensa lista de Exemplos de Codificação.

Obter ajuda e suporte

Pode contactar os Serviços de Multimédia com perguntas ou seguir as nossas atualizações através de um dos seguintes métodos: