Subtítulos de Video
Añade subtítulos automáticos a un video y quémalos en el cuadro, produciendo un «MP4 con subtítulos + SRT».
Flujo de trabajo
- Extraer audio WAV mono de 16 kHz (ffmpeg)
- whisper.cpp transcribe y genera SRT (whisper-cli)
- SRT → ASS: ajuste de línea automático según el ancho del cuadro, fuente CJK, fondo semitransparente centrado en la parte inferior
- Quemar ASS con ffmpeg que tenga libass, copiar la pista de audio directamente
Uso
bash scripts/add_subtitles.sh input.mp4 -o output.mp4 -l zh
-l/--languageidioma de origen, por defectozh, se puede usarauto-f/--fontsizetamaño de fuente, por defecto 42-s/--srt-onlysolo generar SRT, sin quemar
Obligaciones
- Revisar el texto transcrito antes de entregar: el script imprime el SRT en la terminal. Nombres de personas, lugares y modismos suelen reconocerse incorrectamente (ej.: «重阳姐» → «重阳节», «久久重扬» → «九九重阳»). Si hay errores, usa
-spara generar una nueva versión, corrige el SRT y luego quémalo. - Verificar el producto final: extrae 2–3 fotogramas del video resultante (
-ss <segundos> -frames:v 1) para confirmar que los subtítulos estén completos y no se corten ni desborden. - No uses el ffmpeg reducido de Homebrew: esa compilación no incluye libass, por lo que faltan los filtros
subtitles/ass/drawtext. El script seleccionará automáticamente un ffmpeg con libass; la instalación se detalla en README.md. - Las frases largas deben dividirse: ASS usa
WrapStyle: 2(solo reconoce\N), ysrt_to_ass.pyya inserta\Nautomáticamente segúnancho del cuadro / tamaño de fuente. Si alguna línea aún se desborda, reduce el tamaño de fuente con-f.
Dependencias del entorno
ffmpeg (con libass) + whisper-cli + modelo ggml + python3. Si falta algo, el script mostrará un error claro. La lista completa de bibliotecas, comandos de instalación y solución de problemas se encuentra en README.md.