Migrar do Mux para a Transloadit
O Mux se concentra em ingestão, codificação, reprodução e análise de vídeo. A Transloadit é uma plataforma mais ampla de processamento de mídia: você pode fazer upload ou importar arquivos, gerar várias versões, criar saídas HLS ou MPEG-DASH, produzir miniaturas, adicionar legendas, transcrever áudio e guardar os resultados no seu próprio armazenamento.
Este guia aborda ingestão, codificação, miniaturas e armazenamento. A integração com o player, a análise, o controle de acesso e a transferência de metadados da plataforma exigem um planejamento separado; uma Assembly não substitui diretamente um asset e um playback ID do Mux.
Mapa da migração
| Conceito do Mux | Equivalente na Transloadit |
|---|---|
| Upload direto | 🤖/upload/handle por meio de um SDK ou do Uppy |
| Criação de asset | Uma Assembly da Transloadit |
| Perfil de codificação | Predefinição do 🤖/video/encode |
| Reprodução adaptativa | 🤖/video/adaptive ou 🤖/video/ondemand |
| Imagem de capa | 🤖/video/thumbs |
| Legendas ocultas/legendas | O 🤖/speech/transcribe pode gerar SRT ou WebVTT; o 🤖/video/subtitle pode adicionar essas legendas ao vídeo |
| Webhook de asset pronto | Assembly Notification |
| URL de reprodução | Manifesto HLS exportado servido pelo seu armazenamento/CDN ou uma URL do Smart CDN |
Escolha entre codificação antecipada ou sob demanda
Para catálogos previsíveis, codifique as variantes antecipadamente com /video/encode e
/video/adaptive. Para catálogos grandes em que apenas uma fração dos vídeos é assistida,
avalie o /video/ondemand com o Smart CDN, para que os arquivos HLS sejam gerados conforme os
espectadores os solicitam. Esse Robot precisa de um Template do Smart CDN separado e compatível,
cujo ramo de resposta termine em /file/serve. Assine as URLs no seu backend para proteger
seu orçamento de codificação contra abusos. O Template de upload e exportação abaixo é para
codificação antecipada, não para o Smart CDN.
Exemplo de Template de vídeo adaptativo
Este Template recebe um vídeo, codifica três versões, segmenta essas versões, grava playlists de variantes e uma playlist multivariante, cria uma miniatura e armazena o pacote no S3. Neste exemplo, use um vídeo de origem por Assembly e escolha versões adequadas à resolução dele; as três predefinições não adicionam detalhes ausentes a uma origem de baixa resolução:
{
"steps": {
":original": {
"robot": "/upload/handle"
},
"encoded_480p": {
"use": ":original",
"robot": "/video/encode",
"preset": "hls/480p",
"ffmpeg_stack": "v7"
},
"encoded_720p": {
"use": ":original",
"robot": "/video/encode",
"preset": "hls/720p",
"ffmpeg_stack": "v7"
},
"encoded_1080p": {
"use": ":original",
"robot": "/video/encode",
"preset": "hls/1080p",
"ffmpeg_stack": "v7"
},
"hls": {
"use": {
"steps": ["encoded_480p", "encoded_720p", "encoded_1080p"],
"bundle_steps": true
},
"robot": "/video/adaptive",
"technique": "hls",
"playlist_name": "playlist.m3u8",
"result": true
},
"poster": {
"use": ":original",
"robot": "/video/thumbs",
"count": 1,
"result": true
},
"exported_hls": {
"use": "hls",
"robot": "/s3/store",
"credentials": "YOUR_AWS_CREDENTIALS",
"path": "videos/${assembly.id}/${file.meta.relative_path}/${file.name}",
"url_prefix": "https://cdn.example.com/",
"acl": "bucket-default"
},
"exported_poster": {
"use": "poster",
"robot": "/s3/store",
"credentials": "YOUR_AWS_CREDENTIALS",
"path": "videos/${assembly.id}/posters/${file.url_name}",
"url_prefix": "https://cdn.example.com/",
"acl": "bucket-default"
}
}
}
O /video/adaptive define relative_path nas saídas dele. Preserve esse valor no caminho de
exportação para que as referências da playlist sejam resolvidas. Configure
Credenciais de terceiros e uma CDN que consiga ler a raiz do bucket;
o url_prefix não configura a entrega nem concede acesso.
O acl: "bucket-default" não envia ACL de objeto; configure o acesso pela
política do seu bucket e pelo acesso de origem da CDN.
Defina notify_url na sua solicitação de Assembly assinada, verifique as assinaturas das
notificações e exija ASSEMBLY_COMPLETED. A exportação atualiza as URLs sob os Steps que as
produziram: results.hls lista os segmentos e as playlists; selecione a entrada chamada
playlist.m3u8 com um meta.relative_path vazio. Leia a miniatura em results.poster,
verificando is_temp_url: false antes de persistir a URL dela. As URLs temporárias da Transloadit
expiram após 24 horas e não devem ser usadas para reprodução; consulte
como salvar resultados de conversão. Teste o manifesto exportado, as
playlists de variantes e os segmentos pela sua CDN, no player HLS pretendido, antes de migrar o
tráfego.
Importe arquivos de origem existentes do Mux
Se você ainda tem os arquivos de vídeo de origem no S3, use o 🤖/s3/import. Se
a sua aplicação armazena URLs HTTPS temporárias de origem, use o 🤖/http/import.
Salve uma variante do Template para o preenchimento retroativo: substitua o Step de upload
:original por um Step de importação chamado imported e altere todas as quatro
referências use: ":original" (três codificações e a imagem de capa) para use: "imported".
Configure esse Step de importação com uma URL de origem autorizada ou uma chave do S3 por Assembly.
Para /s3/import, configure o credentials e o path de origem próprios dele;
para /http/import, configure url. Por exemplo, o Step de importação HTTPS pode
ler uma URL de origem selecionada pelo backend a partir do fields.source_url da sua solicitação
de Assembly assinada:
{
"steps": {
"imported": {
"robot": "/http/import",
"url": "${fields.source_url}"
}
}
}
Este é o Step de entrada substituto, não o Template de processamento completo. Use apenas URLs de origem que você tem autorização para acessar. As URLs temporárias de origem devem continuar válidas até a importação terminar; renove as URLs expiradas antes de tentar novamente. Depois de uma exportação bem-sucedida e de uma verificação da reprodução, grave a nova URL de reprodução no seu banco de dados, mantendo o ID do asset de origem para a conciliação dos registros.
Lista de verificação
- Decida se os vídeos devem ser codificados antecipadamente ou sob demanda.
- Crie um Template para as versões, miniaturas, legendas e exportações de que você precisa.
- Configure as credenciais de armazenamento, o acesso à CDN e o CORS para reprodução HLS.
- Armazene as URLs de armazenamento exportadas a partir das Assembly Notifications.
- Execute um preenchimento retroativo para os vídeos de origem existentes.
- Mude seu player dos playback IDs do Mux para o manifesto exportado ou para a URL do Smart CDN.