Este tópico descreve como transcodificar vídeos com a operação de API de transcodificação de mídia do Intelligent Media Management (IMM).
Descrição do recurso
A transcodificação de vídeo converte um fluxo de vídeo comprimido e codificado em outro fluxo. Esse processo altera parâmetros como formato de vídeo, formato de contêiner, resolução, taxa de quadros e taxa de bits para adaptar a reprodução a diferentes dispositivos e plataformas. Além disso, reduz o tamanho do arquivo para otimizar a eficiência da transmissão.

Casos de uso
Compatibilidade com vários dispositivos: Para garantir reprodução suave em celulares, tablets, computadores e smart TVs, utilize a transcodificação de vídeo para converter os arquivos em formatos específicos para cada dispositivo.
Reprodução de streaming: Serviços de streaming precisam transcodificar vídeos em múltiplos formatos e taxas de bits. Isso permite ajustes dinâmicos conforme as condições de rede do usuário, melhorando a experiência de visualização.
Compressão de vídeo: Transcodifique um vídeo para reduzir seu tamanho sem afetar significativamente a qualidade. Essa prática facilita o armazenamento e a transmissão eficientes, especialmente quando a largura de banda da rede é limitada.
Formatos de áudio e vídeo compatíveis
|
Categoria |
Formato |
|
Áudio |
Todos os formatos principais, como AAC, MP3, WAV, FLAC, WMA, AC3 e OPUS. |
|
Vídeo |
Todos os formatos principais, como MP4, MPEG-TS, MKV, MOV, AVI, FLV, M3U8, WebM, WMV, RM e VOB. |
Como usar
Pré-requisitos
Crie um AccessKey. Para mais informações, consulte Criar um AccessKey.
Ative o Object Storage Service (OSS) e crie um bucket. Para mais informações, consulte Criar um bucket.
Ative o Intelligent Media Management (IMM). Para mais informações, consulte Ativar o IMM.
-
Crie um projeto no console do IMM. Para mais informações, consulte Criar um projeto.
NotaTambém é possível chamar uma operação de API para criar um projeto. Para mais informações, consulte Criar um projeto.
Chame a operação ListProjects para listar todos os projetos criados em uma região especificada.
Etapa 1: Fazer upload de um arquivo
Use o console do OSS para fazer upload de um arquivo de mídia em um bucket na mesma região do seu projeto IMM.

Etapa 2: Usar o IMM para transcodificar um vídeo
Chame a operação CreateMediaConvertTask para criar uma tarefa de transcodificação de mídia.
Descrição dos parâmetros
Os exemplos a seguir usam o projeto IMM test-project para transcodificar o arquivo de vídeo oss://test-bucket/video-demo/Shushan Commercial Building.mov.
Para mais informações sobre os recursos e o uso do ApsaraVideo Media Processing, consulte Transcodificação de mídia.
Processe o arquivo de vídeo chamando a operação de API de transcodificação de mídia no OpenAPI Portal e consultando o código de exemplo do software development kit (SDK).
Para obter a melhor compatibilidade de reprodução, transcodifique o vídeo para MP4 ou HTTP Live Streaming (HLS). Defina o Codec de vídeo como h264, PixelFormat como yuv420p, Codec de áudio como aac e Channel como 2.
O processo de transcodificação inevitavelmente degrada a qualidade do vídeo. Ajuste a qualidade do vídeo transcodificado usando os parâmetros Bitrate e CRF. Geralmente, maior qualidade resulta em um tamanho de arquivo maior.
O H.265 possui eficiência de compressão superior à do H.264. Para a mesma qualidade de vídeo, o H.265 normalmente reduz o espaço de armazenamento e os custos de largura de banda em mais de 30%. No entanto, o H.265 exige um reprodutor compatível.
Se você não definir o parâmetro Codec, o valor padrão será copy. Esse valor significa que o fluxo de vídeo é copiado diretamente para o arquivo de saída. Os outros parâmetros em TranscodeVideo tornam-se inválidos. O valor copy não serve para transcodificação de vídeo, sendo geralmente utilizado para conversão de formato de contêiner.
Use variáveis para definir o caminho do arquivo de saída no URI em Targets. Para mais informações, consulte Modelo TargetURI.
Transcodificar para MP4
Converta um vídeo para o formato MP4 sem alterar parâmetros como resolução e taxa de quadros.

Informações de transcodificação
Formato de vídeo: MOV para MP4
Configuração de vídeo: Defina CRF como 24. Mantenha a resolução original, a taxa de quadros e outros parâmetros de vídeo.
Configuração de áudio: Formato AAC, taxa de bits de 96 kbit/s, dois canais de som e taxa de amostragem de 44,1 kHz.
Caminho do vídeo de saída:
oss://test-bucket/video-demo/Shushan Commercial Building.mp4Notificação de conclusão da transcodificação: Envie uma mensagem MNS para o tópico MNS "test-mns-topic".
Para um exemplo de SDK, consulte o OpenAPI Portal. Os parâmetros no exemplo são preenchidos automaticamente. Modifique-os conforme necessário antes de testar o código.
Parâmetros da solicitação
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.mov"
}
],
"Targets": [
{
"Audio": {
"TranscodeAudio": {
"Bitrate": 96000,
"Channel": 2,
"Codec": "aac",
"SampleRate": 44100
}
},
"Container": "mp4",
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.mp4",
"Video": {
"TranscodeVideo": {
"CRF": 24,
"Codec": "h264",
"PixelFormat": "yuv420p"
}
}
}
]
}
Transcodificar para um vídeo HLS com resolução 1920x1080 a 30 fps
Transcodifique um vídeo para H.265 com resolução 1920x1080 a 30 quadros por segundo (fps). Use o formato HLS para segmentar o vídeo. Se o vídeo de source tiver resolução ou taxa de quadros inferior, o sistema usará os parâmetros originais.

Informações de transcodificação
Formato de vídeo: MOV para M3U8
Segmentação: Formato HLS, duração de segmento de 10 s
Configuração de vídeo: Formato de codificação H.265, CRF definido como 24, resolução 1920x1080 e taxa de quadros de 30.
Configuração de áudio: Formato AAC, taxa de bits de 128 kbit/s, dois canais de som e taxa de amostragem de 44,1 kHz.
Caminhos do vídeo de saída:
oss://test-bucket/video-demo/Shushan Commercial Building.m3u8,oss://test-bucket/video-demo/Shushan Commercial Building-%d.tsNotificação de conclusão da transcodificação: Envie uma mensagem MNS para o tópico MNS "test-mns-topic".
Para um exemplo de SDK, consulte o OpenAPI Portal. Os parâmetros no exemplo são preenchidos automaticamente. Modifique-os conforme necessário antes de testar o código.
Parâmetros da solicitação
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.mov"
}
],
"Targets": [
{
"Audio": {
"TranscodeAudio": {
"Bitrate": 128000,
"Channel": 2,
"Codec": "aac",
"SampleRate": 44100
}
},
"Container": "ts",
"Segment": {
"Duration": 10,
"Format": "hls"
},
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.{autoext}",
"Video": {
"TranscodeVideo": {
"AdaptiveResolutionDirection": true,
"CRF": 24,
"Codec": "h265",
"FrameRate": 30,
"FrameRateOption": "adaptive",
"PixelFormat": "yuv420p",
"Resolution": "1920x1080",
"ResolutionOption": "adaptive",
"ScaleType": "fit"
}
}
}
]
}
Transcodificar para vídeos HLS com resoluções 1080p, 720p e 480p
Transcodifique um vídeo em três vídeos separados com resoluções 1080p, 720p e 480p. O formato HLS é usado para segmentação.

Informações de transcodificação
Antes da transcodificação
Formato de vídeo: MOV
Formato de codificação de vídeo: H.264
Resolução: 3840x2160
Taxa de quadros: 30
Após a transcodificação
Notificação de conclusão da transcodificação: Envie uma mensagem MNS para o tópico MNS "test-mns-topic".
Vídeo 1
Formato de vídeo: M3U8
Segmentação: Formato HLS, duração de segmento de 10 s
Configuração de vídeo: Formato de codificação H.264, CRF definido como 25, resolução 1920x1080 e taxa de quadros de 30.
Configuração de áudio: Formato AAC, taxa de bits de 256 kbit/s, dois canais de som e taxa de amostragem de 44,1 kHz.
Caminhos do vídeo de saída:
oss://test-bucket/video-demo/Shushan Commercial Building-x1080.m3u8,oss://test-bucket/video-demo/Shushan Commercial Building-x1080-%d.ts
Vídeo 2
Formato de vídeo: M3U8
Segmentação: Formato HLS, duração de segmento de 10 s
Configuração de vídeo: Formato de codificação H.264, CRF definido como 26, resolução 1280x720 e taxa de quadros de 30.
Configuração de áudio: Formato AAC, taxa de bits de 128 kbit/s, dois canais de som e taxa de amostragem de 44,1 kHz.
Caminhos do vídeo de saída:
oss://test-bucket/video-demo/Shushan Commercial Building-x720.m3u8,oss://test-bucket/video-demo/Shushan Commercial Building-x720-%d.ts
Vídeo 3
Formato de vídeo: M3U8
Segmentação: Formato HLS, duração de segmento de 10 s
Configuração de vídeo: Formato de codificação H.264, CRF definido como 28, resolução 854x480 e taxa de quadros de 25.
Configuração de áudio: Formato AAC, taxa de bits de 96 kbit/s, dois canais de som e taxa de amostragem de 44,1 kHz.
Caminhos do vídeo de saída:
oss://test-bucket/video-demo/Shushan Commercial Building-x480.m3u8,oss://test-bucket/video-demo/Shushan Commercial Building-x480-%d.ts
Para um exemplo de SDK, consulte o OpenAPI Portal. Os parâmetros no exemplo são preenchidos automaticamente. Modifique-os conforme necessário antes de testar o código.
Parâmetros da solicitação
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.mov"
}
],
"Targets": [
{
"Audio": {
"TranscodeAudio": {
"Bitrate": 256000,
"Channel": 2,
"Codec": "aac",
"SampleRate": 44100
}
},
"Container": "ts",
"Segment": {
"Duration": 10,
"Format": "hls"
},
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building-{resolution}.{autoext}",
"Video": {
"TranscodeVideo": {
"AdaptiveResolutionDirection": true,
"CRF": 25,
"Codec": "h264",
"FrameRate": 30,
"FrameRateOption": "adaptive",
"PixelFormat": "yuv420p",
"Resolution": "x1080",
"ResolutionOption": "adaptive",
"ScaleType": "fit"
}
}
},
{
"Audio": {
"TranscodeAudio": {
"Bitrate": 128000,
"Channel": 2,
"Codec": "aac",
"SampleRate": 44100
}
},
"Container": "ts",
"Segment": {
"Duration": 10,
"Format": "hls"
},
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building-{resolution}.{autoext}",
"Video": {
"TranscodeVideo": {
"AdaptiveResolutionDirection": true,
"CRF": 26,
"Codec": "h264",
"FrameRate": 30,
"FrameRateOption": "adaptive",
"PixelFormat": "yuv420p",
"Resolution": "x720",
"ResolutionOption": "adaptive",
"ScaleType": "fit"
}
}
},
{
"Audio": {
"TranscodeAudio": {
"Bitrate": 96000,
"Channel": 2,
"Codec": "aac",
"SampleRate": 44100
}
},
"Container": "ts",
"Segment": {
"Duration": 10,
"Format": "hls"
},
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building-{resolution}.{autoext}",
"Video": {
"TranscodeVideo": {
"AdaptiveResolutionDirection": true,
"CRF": 28,
"Codec": "h264",
"FrameRate": 25,
"FrameRateOption": "adaptive",
"PixelFormat": "yuv420p",
"Resolution": "x480",
"ResolutionOption": "adaptive",
"ScaleType": "fit"
}
}
}
]
}
Transcodificar para MP4 e adicionar marcas d'água
Transcodifique um vídeo para o formato MP4. Adicione uma marca d'água de logotipo no canto superior esquerdo e uma marca d'água de texto no canto inferior direito.

Informações de transcodificação
Formato de vídeo: MOV para MP4
Configuração de vídeo: Codificação em formato H.264 com CRF definido como 25. Mantém-se a resolução e a taxa de quadros originais. Adiciona-se uma marca d'água de imagem com o logotipo da Alibaba Cloud ao canto superior esquerdo e uma marca d'água de texto "Intelligent Media Management" ao canto inferior direito.
Configuração de áudio: Codificação em formato AAC com taxa de bits de 256 kbit/s, dois canais de som e taxa de amostragem de 44,1 kHz.
Caminho do vídeo de saída:
oss://test-bucket/video-demo/Shushan Commercial Building.mp4Notificação de conclusão da transcodificação: Envio de mensagem MNS para o tópico MNS "test-mns-topic".
Para um exemplo de código, consulte o OpenAPI Portal. Os parâmetros no exemplo são preenchidos automaticamente. Modifique-os conforme necessário antes de testar o código.
Parâmetros da solicitação
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.mov"
}
],
"Targets": [
{
"Audio": {
"TranscodeAudio": {
"Bitrate": 256000,
"Channel": 2,
"Codec": "aac",
"SampleRate": 44100
}
},
"Container": "mp4",
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.{autoext}",
"Video": {
"FilterVideo": {
"Delogos": [],
"Watermarks": [
{
"Dx": 0.05,
"Dy": 0.1,
"ReferPos": "topleft",
"Type": "file",
"URI": "oss://test-bucket/video-demo/aliyun.png",
"Width": 0.1
},
{
"Content": "Intelligent Media Management",
"Dx": 0.05,
"Dy": 0.1,
"FontColor": "#FFFFFF",
"FontSize": 100,
"ReferPos": "bottomright",
"Type": "text"
}
]
},
"TranscodeVideo": {
"CRF": 25,
"Codec": "h264",
"PixelFormat": "yuv420p"
}
}
}
]
}
Recortar um segmento de vídeo e transcodificá-lo para o formato FLV
Recorte um segmento do vídeo de source, transcodifique-o para o formato FLV e ajuste a taxa de bits para 1 Mbps.

Informações de transcodificação
Formato de vídeo: MOV para FLV
Tempo inicial do recorte: 5 s
Duração do recorte: 10 s
Configuração de vídeo: Taxa de bits de 1 Mbps. Preserva-se a resolução original, a taxa de quadros e outros parâmetros de vídeo.
Configuração de áudio: Formato AAC, taxa de bits de 96 kbit/s, dois canais de som e taxa de amostragem de 44,1 kHz.
Caminho do vídeo de saída:
oss://test-bucket/video-demo/Shushan Commercial Building.flvNotificação de conclusão da transcodificação: Envio de mensagem MNS para o tópico MNS "test-mns-topic".
Para um exemplo de chamada, consulte o OpenAPI Portal. Os parâmetros no exemplo são preenchidos automaticamente. Modifique-os conforme necessário antes de testar o código.
Parâmetros da solicitação
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"Duration": 10,
"StartTime": 5,
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.mov"
}
],
"Targets": [
{
"Audio": {
"TranscodeAudio": {
"Bitrate": 96000,
"Channel": 2,
"Codec": "aac",
"SampleRate": 44100
}
},
"Container": "flv",
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.{autoext}",
"Video": {
"TranscodeVideo": {
"Bitrate": 1000000,
"Codec": "h264",
"PixelFormat": "yuv420p"
}
}
}
]
}
Converter o formato de contêiner de um vídeo para MP4
Converta o formato de contêiner de um vídeo para MP4. A conversão de formato de contêiner não recodifica os dados de áudio ou vídeo, mas pode causar problemas de compatibilidade de reprodução.
Informações de transcodificação
Formato de vídeo: MOV para MP4
Caminho do vídeo de saída:
oss://test-bucket/video-demo/Shushan Commercial Building.mp4Notificação de conclusão da transcodificação: Envio de mensagem MNS para o tópico MNS "test-mns-topic".
Para um exemplo de chamada de API, consulte o OpenAPI Portal. Os parâmetros no exemplo são preenchidos automaticamente. Modifique-os conforme necessário antes de testar o código.
Parâmetros da solicitação
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.mov"
}
],
"Targets": [
{
"Container": "mp4",
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.{autoext}"
}
]
}
Aplicar mosaico em áreas de marca d'água em um vídeo
Aplique mosaico na área da marca d'água de logotipo no canto superior esquerdo e na área da marca d'água de texto no canto inferior direito de um vídeo.

Informações de transcodificação
Caminho do vídeo de entrada:
oss://test-bucket/video-demo/Shushan Commercial Building.mp4Configuração de vídeo: Formato de codificação H.264 com CRF definido como 24. Mantém-se a resolução e a taxa de quadros originais. Aplica-se mosaico na área do logotipo no canto superior esquerdo e na área da marca d'água de texto no canto inferior direito.
Configuração de áudio: Formato AAC, taxa de bits de 96 kbit/s, dois canais de som e taxa de amostragem de 44,1 kHz.
Caminho do vídeo de saída:
oss://test-bucket/video-demo/Shushan Commercial Building-mosaic.mp4Notificação de conclusão da transcodificação: Envio de mensagem MNS para o tópico MNS "test-mns-topic".
Para um exemplo de código, consulte o OpenAPI Portal. Os parâmetros no exemplo são preenchidos automaticamente. Modifique-os conforme necessário antes de testar o código.
Parâmetros da solicitação
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.mp4"
}
],
"Targets": [
{
"Audio": {
"TranscodeAudio": {
"Bitrate": 96000,
"Channel": 2,
"Codec": "aac",
"SampleRate": 44100
}
},
"Container": "mp4",
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building-mosaic.{autoext}",
"Video": {
"FilterVideo": {
"Delogos": [
{
"Dx": 0.05,
"Dy": 0.1,
"Height": 0.1,
"ReferPos": "topleft",
"Width": 0.1
},
{
"Dx": 0.05,
"Dy": 0.1,
"Height": 100,
"ReferPos": "bottomright",
"Width": 600
}
]
},
"TranscodeVideo": {
"CRF": 24,
"Codec": "h264",
"PixelFormat": "yuv420p"
}
}
}
]
}