Como Incrustar Legendas num Vídeo (Sem o Enviar Para Lado Nenhum)
Incruste legendas num vídeo na sua própria máquina: os quatro métodos comparados, os comandos FFmpeg, e como evitar a perda de qualidade da recodificação.
Incrustar legendas num vídeo significa desenhar o texto na imagem e recodificar, para que as legendas viajem com o ficheiro como pixels. Precisa disto para o TikTok, o Reels e o Shorts, que não aceitam ficheiros de legendas de forma alguma, e sempre que as legendas fazem parte do design em vez de serem uma opção de acessibilidade. Não precisa de enviar nada para o fazer — o FFmpeg, o HandBrake e as aplicações de legendagem para computador fazem tudo isto localmente, sem o limite de tamanho de ficheiro que as ferramentas do navegador têm.
Este artigo aborda as quatro formas de o fazer, os comandos que funcionam, e as duas coisas que realmente prejudicam a qualidade.
Quando a incrustação é a escolha certa
| Incrustada (hardsub) | Ficheiro ou faixa de legendas (softsub) | |
|---|---|---|
| O espectador pode desativá-la | Não | Sim |
| Funciona no TikTok, Reels, Shorts | Sim | Não, sem suporte |
| Funciona no YouTube, Vimeo | Sim | Sim, e pesquisável |
| Conta para conformidade de acessibilidade | Normalmente não | Sim |
| Indexada pelos motores de busca | Não | Sim |
| Corrigir um erro de escrita depois | Renderizar o vídeo outra vez | Editar um ficheiro de texto |
| Vários idiomas num só ficheiro | Não, uma renderização por idioma | Sim, uma faixa por idioma |
| Estilo preservado com exatidão | Sim | Só em faixas ASS |
A resposta prática para a maioria das pessoas é fazer as duas coisas: incrustar para as plataformas sociais verticais onde nada mais funciona, e entregar um ficheiro de legendas em todo o resto que o aceite, porque um ficheiro é pesquisável, mudável e corrigível. Se quiser as duas coisas a partir da mesma tarefa, a entrega em vários idiomas explica como as duas saídas nascem da mesma linha do tempo.
As quatro formas de incrustar legendas
| FFmpeg | HandBrake | Ferramentas no navegador | Aplicações de legendagem para computador | |
|---|---|---|---|---|
| Preço | Gratuito | Gratuito | Nível gratuito, depois subscrição | Pagamento único ou subscrição |
| Envia o seu vídeo | Não | Não | Sim, o ficheiro completo | Não |
| Limite de tamanho / duração | Nenhum | Nenhum | Sim, normalmente rígido | Nenhum |
| Cria as legendas | Não | Não | Sim | Sim |
| Controlo de estilo | Através de ASS ou de force_style | Limitado | Modelos prontos | Total, com pré-visualização em tempo real |
| Curva de aprendizagem | Linha de comandos | Moderada | Nenhuma | Baixa |
Duas notas honestas. O FFmpeg e o HandBrake são gratuitos e excelentes nisto, e se já tiver um ficheiro de legendas terminado, o FFmpeg é um único comando — não há motivo para comprar nada. O que nenhum dos dois faz é produzir as legendas: incrustam um ficheiro que já tem, temporizado e corrigido noutro lado. As ferramentas no navegador produzem-nas, mas o envio não é opcional, o que as exclui para material confidencial e para qualquer coisa mais longa do que o seu limite.
Incrustar com o FFmpeg
Para um SRT simples:
ffmpeg -i input.mp4 -vf "subtitles=subs.srt" -c:a copy output.mp4
Para um ficheiro ASS com estilo, use o filtro ass para que o estilo seja respeitado em vez de achatado:
ffmpeg -i input.mp4 -vf "ass=subs.ass" -c:a copy output.mp4
Para controlar a qualidade explicitamente, em vez de aceitar a predefinição:
ffmpeg -i input.mp4 -vf "subtitles=subs.srt" \
-c:v libx264 -crf 18 -preset slow -c:a copy output.mp4
Para mudar o estilo de um SRT sem o converter primeiro:
ffmpeg -i input.mp4 \
-vf "subtitles=subs.srt:force_style='FontName=Arial,FontSize=24,Outline=2'" \
-c:a copy output.mp4
A armadilha do Windows. O caminho dentro do filtro é interpretado pelo filtro, não pela shell, por isso os dois pontos da letra da unidade e as barras invertidas têm de ser escapados. É o motivo mais comum, de longe, para o comando falhar com um erro de ficheiro não encontrado, num ficheiro que claramente existe:
ffmpeg -i input.mp4 -vf "subtitles='C\:/Videos/subs.srt'" -c:a copy output.mp4
Mantenha o ficheiro de legendas na pasta de trabalho e passe apenas o nome do ficheiro sempre que puder — isso evita o problema por completo.
O que realmente custa qualidade
Duas coisas, e nenhuma delas é a incrustação em si.
Recodificar um ficheiro já comprimido. A incrustação exige uma recodificação, que tem perdas. Fazê-lo ao seu master custa quase nada visível. Fazê-lo a um ficheiro que uma plataforma já comprimiu significa comprimir artefactos de compressão, e é aí que aparecem os blocos e a imagem esborratada. Comece sempre pela versão de maior qualidade que tiver, e nunca incruste legendas num ficheiro que já foi incrustado uma vez.
Aceitar as definições predefinidas do codificador. -crf 18 com x264 é visualmente quase transparente para a maioria dos conteúdos; a predefinição de 23 fica visivelmente mais suave em imagens com muito detalhe. O -preset slow compra um ficheiro mais pequeno com a mesma qualidade, em troca de tempo. E o -c:a copy deixa a faixa de áudio intocada — não há motivo para recodificar o áudio quando só está a mudar a imagem.
Porque é que a renderização não corresponde à pré-visualização
Duas causas, ambas corrigíveis antes de gastar uma codificação.
Fontes. O motor de renderização desenha com a fonte que conseguir encontrar. Se a fonte escolhida não estiver instalada, ou não conseguir desenhar essa escrita — a maioria das fontes de legendagem cobre apenas as escritas latina, cirílica e grega — é usada uma substituta, e o texto em árabe, tailandês, hangul ou CJK pode sair como caixas vazias. Verifique a fonte antes de renderizar doze idiomas, não depois.
Tamanho da tela virtual. As posições e os tamanhos de fonte em ASS são relativos a uma tela virtual declarada no ficheiro, não às dimensões em pixels do vídeo. O mesmo tamanho de fonte produz texto de tamanho diferente no ecrã numa origem 1080p e numa 4K, a menos que a tela esteja fixa. O Sablate fixa a tela das legendas numa moldura virtual de 1080 de altura e deriva a largura a partir da proporção real da origem, incluindo os metadados de rotação, por isso um tamanho de fonte significa sempre o mesmo, seja qual for a resolução com que filmou — e a pré-visualização do editor escala exatamente contra a mesma tela que o motor de renderização usa.
É também por isso que a qualidade da incrustação varia tanto entre ferramentas. Muitos editores online compõem as legendas como uma sobreposição de texto plana; a incrustação no Sablate é renderizada pelo libass, o mesmo motor que os leitores de multimédia usam para legendas ASS, por isso os contornos, as sombras, o tempo de karaoke palavra a palavra e as fontes corretas para cada escrita saem como tipografia de legendas a sério, e não como gráficos aproximados.
Saída vertical e quadrada
Se o vídeo se destina ao Reels, ao Shorts ou ao TikTok, converta a proporção de imagem durante a renderização, em vez de recortar depois. Recortar uma incrustação já terminada de 16:9 para 9:16 corta os lados das legendas junto com a imagem.
O Sablate renderiza em 16:9 (1920×1080), 9:16 (1080×1920) ou 1:1 (1080×1080), recortando para a moldura de destino ou preenchendo-a com uma cópia desfocada da origem, e dispõe as legendas a pensar na moldura final. Mantenha o texto fora do quinto inferior de uma moldura vertical — essa área é coberta pela própria interface da plataforma na maioria dos telemóveis.
Fazer isto sem a linha de comandos
Se ainda não tiver um ficheiro de legendas corrigido, a incrustação é o último passo de uma tarefa mais longa: transcrever, corrigir, estilizar, renderizar. O Sablate faz isto de ponta a ponta na sua própria máquina — transcrição local com Whisper, um editor com reajuste de tempos na linha do tempo e avisos de velocidade de leitura, 13 predefinições de legendas, e uma incrustação que corresponde exatamente à pré-visualização.
A incrustação está disponível no plano Gratuito com uma pequena marca no canto; o Pro remove a marca e acrescenta exportação .ass, .mkv com várias faixas e exportação em lote, por um único pagamento de $29. Transfira-o ou leia a página de preços para o detalhe completo.
Resumindo
Incruste quando a plataforma não lê nenhum ficheiro de legendas, ou quando as legendas fazem parte da estética — e entregue um ficheiro de legendas em todo o resto, porque texto que se pode editar vence pixels que não se conseguem editar. Renderize a partir do seu master, não de uma cópia feita para envio. Use CRF 18 e copie o áudio. E verifique a fonte e a tela antes de gastar a codificação, porque são essas as duas coisas que fazem um ficheiro de legendas perfeito sair errado.