Video Subtitle
Adiciona legendas automaticamente a um vídeo e as grava na imagem, gerando um "MP4 com legendas + SRT".
Fluxo de Trabalho
- Extrair áudio WAV mono de 16 kHz (ffmpeg)
- whisper.cpp transcreve e gera SRT (whisper-cli)
- SRT → ASS: quebra automática de linha com base na largura do vídeo, fonte CJK, fundo semitransparente centralizado na parte inferior
- Queimar ASS com ffmpeg que tenha libass, copiar faixa de áudio diretamente
Uso
bash scripts/add_subtitles.sh input.mp4 -o output.mp4 -l zh
-l/--languageIdioma do áudio de origem, padrãozh, pode serauto-f/--fontsizeTamanho da fonte, padrão 42-s/--srt-onlyApenas gerar SRT, sem queimar legendas
Obrigações
- Revise o texto transcrito antes de entregar: O script exibirá o SRT no terminal. Nomes de pessoas, lugares e expressões idiomáticas geralmente são reconhecidos incorretamente (ex.: "重阳姐" → "重阳节", "久久重扬" → "九九重阳"). Se houver erros, use
-spara gerar uma nova versão, corrija o SRT e depois queime as legendas. - Verifique o produto final: Extraia 2–3 quadros do vídeo final (
-ss <segundos> -frames:v 1) para confirmar que as legendas estão completas e não foram cortadas ou excedem os limites. - Não use o
ffmpegsimplificado do Homebrew: Essa versão não possui libass, e todos os filtrossubtitles/ass/drawtextestão ausentes. O script selecionará automaticamente um ffmpeg com libass; veja instruções de instalação no README.md. - Frases longas devem ser quebradas: ASS usa
WrapStyle: 2(reconhece apenas\N). Osrt_to_ass.pyjá insere automaticamente\Ncom base emlargura da tela / tamanho da fonte. Se alguma frase ainda exceder, reduza o tamanho da fonte com-f.
Dependências do Ambiente
ffmpeg (com libass) + whisper-cli + modelo ggml + python3. Caso estejam faltando, o script fornecerá mensagens de erro claras. A lista completa de bibliotecas, comandos de instalação e instruções de solução de problemas estão em README.md.