O que é transcodificação?
A transcodificação decodifica e recodifica mídia existente para alterar seu codec, sua taxa de bits, sua resolução ou outras propriedades do fluxo. É a etapa que transforma um upload imprevisível em mídia reproduzida de forma confiável nos dispositivos, navegadores e condições de rede que seu produto suporta.
Este guia explica quando a transcodificação é necessária, como ela difere de operações relacionadas e como criar um fluxo de trabalho gerenciado de transcodificação sem operar uma infraestrutura de FFmpeg por conta própria.

O que é transcodificação?
A transcodificação decodifica um fluxo de mídia existente e o codifica novamente com uma configuração de saída diferente. A saída pode ter alterações no contêiner, codec, resolução, taxa de bits, taxa de quadros, disposição dos canais de áudio ou em várias dessas propriedades ao mesmo tempo.
O diagrama abaixo mostra o caminho comum: a entrada comprimida é decodificada para uma representação intermediária, como PCM para áudio ou YUV para vídeo, e então codificada no formato de destino. Transcodificações repetidas com perdas podem introduzir perda por geração, então mantenha a fonte de maior qualidade e derive dela os formatos de distribuição, em vez de converter repetidamente saídas anteriores.

Quando você precisa de transcodificação?
Jobs típicos de transcodificação resolvem um ou mais destes problemas:
- Compatibilidade de reprodução: normalize uploads para codecs e contêineres compatíveis com os navegadores, aplicativos móveis, televisores ou ferramentas de edição que você pretende atender.
- Streaming adaptativo: crie várias versões para HLS ou DASH para que um player possa alternar a qualidade conforme a largura de banda muda.
- Redução do tamanho dos arquivos: reduza a resolução ou a taxa de bits, ou adote um codec mais eficiente, para reduzir os custos de armazenamento e distribuição.
- Saída consistente do produto: normalize a taxa de quadros, as dimensões, o nível de sonoridade, os canais e os metadados, mesmo quando usuários fazem upload de arquivos de muitos dispositivos diferentes.
- Criação de derivados: produza prévias, versões para dispositivos móveis, saídas somente de áudio ou arquivos mestres para arquivamento a partir de uma única fonte.
Transcodificação, codificação e transmuxação
Esses termos descrevem operações relacionadas, mas diferentes:
| Operação | O que muda | Decodifica e recodifica? | Exemplo |
|---|---|---|---|
| Codificação | Mídia bruta ou não comprimida se torna mídia comprimida | Não; apenas codificação inicial | Quadros de câmera para H.264 |
| Transcodificação | Mídia comprimida existente recebe uma nova configuração de distribuição | Sim | HEVC 4K para H.264 1080p |
| Transmuxação | O contêiner muda, enquanto os fluxos codificados permanecem intactos | Não | H.264 de MOV para MP4 |
A transmuxação é mais rápida e evita a perda por geração, mas só funciona quando os fluxos existentes já são adequados ao destino. Se o codec, a resolução, a taxa de bits ou outra propriedade do fluxo precisar mudar, você precisará de transcodificação.
Como posso transcodificar vídeos com a Transloadit?
Você pode criar um pipeline interno de transcodificação com o FFmpeg, mas sistemas de produção também precisam lidar com uploads, filas, novas tentativas, escalabilidade, monitoramento, integração com armazenamento e distribuição. A Transloadit fornece esses recursos em uma única API gerenciada de processamento de arquivos.
O Video Encode Robot aplica predefinições ou parâmetros personalizados do FFmpeg, enquanto o Video Adaptive Robot cria pacotes adaptativos de HLS ou MPEG-DASH. Fluxos de trabalho somente de áudio podem usar o Audio Encode Robot.
Que tal vermos um exemplo? O Template abaixo mostra como codificar um vídeo de entrada compatível enviado por upload para reprodução no navegador, usando Uppy.
<!-- This pulls Uppy from our CDN -->
<!-- For smaller self-hosted bundles, install Uppy and plugins manually: -->
<!-- npm i --save @uppy/core @uppy/dashboard @uppy/remote-sources @uppy/transloadit ... -->
<link
href="https://releases.transloadit.com/uppy/v3.10.0/uppy.min.css"
rel="stylesheet"
/>
<button id="browse">Select Files</button>
<script type="module">
import {
Uppy,
Dashboard,
ImageEditor,
RemoteSources,
Transloadit,
} from 'https://releases.transloadit.com/uppy/v3.10.0/uppy.min.mjs'
const uppy = new Uppy()
.use(Transloadit, {
waitForEncoding: true,
alwaysRunAssembly: true,
assemblyOptions: {
params: {
// It's often better store encoding instructions in your account
// and use a `template_id` instead of adding these steps inline
steps: {
':original': {
robot: '/upload/handle',
},
browser720_webm_encoded: {
use: ':original',
robot: '/video/encode',
result: true,
ffmpeg_stack: 'v7',
height: 720,
preset: 'webm',
turbo: false,
width: 1280,
},
browser720_h264_encoded: {
use: ':original',
robot: '/video/encode',
result: true,
ffmpeg_stack: 'v7',
height: 720,
preset: 'ipad-high',
turbo: false,
width: 1280,
},
thumbed: {
use: 'browser720_h264_encoded',
robot: '/video/thumbs',
result: true,
count: 1,
ffmpeg_stack: 'v7',
format: 'jpg',
height: 720,
resize_strategy: 'fit',
width: 1280,
},
exported: {
use: ['browser720_webm_encoded', 'browser720_h264_encoded', 'thumbed', ':original'],
robot: '/s3/store',
credentials: 'demo_s3_credentials',
url_prefix: 'https://demos.transloadit.com/',
},
},
},
},
})
.use(Dashboard, { trigger: '#browse' })
.use(ImageEditor, { target: Dashboard })
.use(RemoteSources, {
companionUrl: 'https://api2.transloadit.com/companion',
})
.on('complete', ({ transloadit }) => {
// Due to `waitForEncoding:true` this is fired after encoding is done.
// Alternatively, set `waitForEncoding` to `false` and provide a `notify_url`
console.log(transloadit) // Array of Assembly Statuses
for (const assembly of transloadit) {
console.log(assembly.results) // Array of all encoding results
}
})
.on('error', (error) => {
console.error(error)
})
</script>
Você também pode experimentar fluxos de trabalho relacionados sem escrever código de integração:
Codificação de áudio
Codificação FLAC de alta qualidade
(English)Processamento de imagens
Reduzir o tamanho dos arquivos de imagem em até 80% sem perda de qualidade
(English)Codificação de vídeo
Inserir um anúncio em um vídeo em um momento específico
(English)Crie seu primeiro fluxo de trabalho de transcodificação
Comece com a demonstração compatível com navegadores acima e ajuste sua predefinição para a saída de que seu produto precisa. Você pode executar o Template resultante pela API, conectá-lo ao Uppy para uploads pelo navegador ou adicionar um Robot de exportação para entregar os resultados diretamente ao seu provedor de armazenamento.
Se precisar de ajuda para escolher codecs, versões de mídia ou formatos de streaming, fale com nossa equipe.
