Cómo poner subtítulos a un video con Rendi
Aprende a poner subtítulos a un video con un archivo SRT y la API de Rendi: configura FFmpeg, controla el proceso y revisa el MP4 antes de escalar.

Para poner subtítulos a un video, parte de un video aprobado y un archivo SRT revisado y conviértelos en un MP4 subtitulado sin desplegar infraestructura propia para procesar video. Rendi acepta como trabajo de API el filtro de subtítulos habitual de FFmpeg, entrega un ID de comando y devuelve el archivo almacenado cuando el renderizado termina correctamente. El límite funcional es sencillo: incrusta subtítulos existentes en los píxeles. No transcribe el audio ni determina si el texto es correcto.
Respuesta rápida
Incrusta el SRT cuando todas las personas deban ver los mismos subtítulos, sin importar cómo gestione el reproductor las pistas de subtítulos. Mantén el SRT separado cuando sea necesario desactivar los subtítulos, cambiar de idioma o usar los controles de accesibilidad del reproductor.
Con Rendi, el flujo que funciona es este:
- Revisa juntos el video final y el SRT.
- Aloja ambos archivos en URL a las que Rendi pueda acceder o sube primero los archivos locales a Rendi.
- Envía el comando de subtítulos de FFmpeg que aparece en la documentación.
- Consulta el ID del comando de forma periódica o deja que un webhook reciba el resultado final.
- Examina los metadatos del MP4 y reproduce el archivo completo antes de enviar más trabajos.
El orden importa. Aunque el codificador termine sin errores, el entregable puede ser defectuoso si un subtítulo aparece antes de tiempo, un nombre está mal escrito o el texto queda oculto bajo la interfaz de una plataforma.

Qué hace Rendi
Rendi aporta la sala de máquinas, no el criterio editorial. Se le envía la misma instrucción de FFmpeg que se ejecutaría de forma local, pero mediante una API HTTP. La solicitud funciona como una orden de trabajo: los alias de entrada indican dónde están los materiales, la cadena de FFmpeg especifica la operación y el alias de salida nombra la pieza terminada.
El esquema actual de la solicitud exige ffmpeg_command y output_files. Las claves de entrada comienzan con in_, las de salida con out_, y esos mismos nombres aparecen dentro del comando entre llaves dobles. Cuando el envío se acepta, la respuesta incluye un command_id, que sirve para identificar el trabajo.
En el flujo más sencillo, el video y el SRT se alojan en URL HTTP públicas o firmadas con caducidad, y el nombre del archivo aparece al final de cada una. Una ruta local de una computadora no es una URL de entrada. Rendi también ofrece un flujo multipart de carga directa para archivos locales, compatible con archivos de hasta 5 TB, pero se trata de una etapa de preparación aparte.
Los subtítulos incrustados y las pistas seleccionables son resultados distintos
Los subtítulos incrustados pasan a formar parte de cada fotograma decodificado. Así se consigue una apariencia predecible, pero la decisión también se vuelve permanente. Corregir una palabra obliga a renderizar el video de nuevo y el público no puede ocultar los subtítulos.
Una pista de subtítulos seleccionable se mantiene separada de la imagen. Para crear una pista de subtítulos no incrustada en un MP4, el propio ejemplo de Rendi recomienda mov_text y omite el filtro de video. De ese modo se conserva el control del espectador y el texto no queda integrado en la imagen.

Mi regla es clara: usa un máster de revisión con subtítulos incrustados o un archivo destinado a redes sociales cuando la prioridad sea la uniformidad visual. Conserva el SRT original y ofrece una pista seleccionable o un archivo complementario siempre que importen la accesibilidad, la búsqueda, la traducción o la elección del público.
Revisa el SRT antes de lanzar el renderizado
El renderizado más económico es el que no hay que repetir. Revisa el SRT junto con el montaje final exacto, no con una exportación anterior. Comprueba el orden de los bloques, los tiempos de inicio y fin, la ortografía de nombres y números, los saltos de línea intencionales y una muestra representativa de caracteres acentuados o no latinos. Busca subtítulos que choquen con los rótulos del tercio inferior o queden demasiado cerca del borde inferior.
No mezcles mentalmente la transcripción con IA con esta etapa. El reconocimiento de voz puede generar un primer borrador del SRT en una fase anterior, pero el archivo solo debería entrar en este flujo cuando una persona o un proceso de revisión de confianza haya aprobado el texto y la sincronización. Aquí, la función de Rendi es renderizar.
Cómo poner subtítulos a un video con un estilo definido en Rendi
Este ejemplo en Node.js utiliza el video y el SRT públicos de muestra de Rendi, por lo que basta con RENDI_API_KEY para ejecutarlo. La carga útil respeta los nombres de campo y las reglas de alias del OpenAPI vigente de Rendi. Los valores de force_style crean texto blanco con contorno negro y margen inferior, mientras que libx264 y AAC generan el MP4 descrito en la receta de subtítulos de Rendi.
const headers = {
"X-API-KEY": process.env.RENDI_API_KEY,
"Content-Type": "application/json",
};
const submit = await fetch("https://api.rendi.dev/v1/run-ffmpeg-command", {
method: "POST",
headers,
body: JSON.stringify({
input_files: {
in_video: "https://storage.rendi.dev/sample/big_buck_bunny_720p_16sec.mp4",
in_srt: "https://storage.rendi.dev/sample/subtitles.srt",
},
output_files: { out_1: "subtitled.mp4" },
ffmpeg_command:
"-i {{in_video}} -vf \"subtitles={{in_srt}}:force_style='FontSize=22,PrimaryColour=&H00FFFFFF,OutlineColour=&H00000000,BorderStyle=1,Outline=2,Shadow=0,MarginV=36'\" -c:v libx264 -crf 20 -c:a aac -b:a 192k {{out_1}}",
}),
});
if (!submit.ok) throw new Error(await submit.text());
const { command_id } = await submit.json();
for (;;) {
const poll = await fetch(
`https://api.rendi.dev/v1/commands/${command_id}`,
{ headers: { "X-API-KEY": process.env.RENDI_API_KEY } },
);
const job = await poll.json();
if (job.status === "SUCCESS") {
console.log(job.output_files.out_1);
break;
}
if (job.status === "FAILED") throw new Error(job.error_message);
await new Promise((resolve) => setTimeout(resolve, 2000));
}El filtro de subtítulos modifica los fotogramas, así que es necesario volver a codificar el video. Se pueden ajustar el estilo, el códec y la calidad, pero cada cambio debe tratarse como un resultado nuevo que requiere revisión. La guía rápida de FFmpeg publicada por Rendi también documenta el uso de fuentes personalizadas mediante fontsdir y FontName. Prueba la fuente y el conjunto de glifos exactos antes de aplicarlos a toda una biblioteca.
Qué se comprobó realmente
El 11 de septiembre de 2026 se contrastaron con el archivo OpenAPI activo de Rendi el endpoint, los campos de la solicitud, las reglas de alias, los valores de estado y los campos de respuesta descritos arriba. El filtro de subtítulos exacto también se ejecutó de forma local con FFmpeg 8.0.1 sobre el video y el SRT públicos de muestra de Rendi. El resultado fue un MP4 de 16 segundos, con resolución de 1280 por 720, video H.264 y audio AAC; un fotograma capturado a los cinco segundos mostraba el subtítulo esperado.
No se envió ningún trabajo a la nube de Rendi porque este entorno no contenía una clave de API de Rendi. El código se validó contra el esquema y la operación de FFmpeg se verificó localmente, pero no se afirma que se haya ejecutado en la nube.
Consulta periódicamente los trabajos cortos; usa webhooks para los largos
El endpoint de estado de Rendi puede devolver QUEUED, PROCESSING, PREPARED_FFMPEG_COMMAND, FAILED o SUCCESS. No confundas un POST aceptado con un video terminado. Espera a que se alcance un estado final, muestra error_message si el trabajo falla y accede al resultado únicamente después del éxito.
Rendi recomienda consultar periódicamente los trabajos que deberían terminar en unos 30 segundos o menos y usar un webhook para procesos más largos. El webhook contiene los mismos datos del comando completado que se obtienen mediante consulta. En producción, haz que el controlador de finalización sea idempotente, que responda rápido y que conserve las consultas periódicas como vía de recuperación si finalmente falla la entrega del webhook.
Para resultados confidenciales, configura is_private: true en un plan de pago y solicita una URL prefirmada al consultar el estado. El almacenamiento es público de forma predeterminada. Un archivo privado no tiene URL pública permanente, y el enlace de descarga solicitado puede tener una vigencia máxima de 7 días.
Revisa el resultado antes de procesar por lotes
SUCCESS demuestra que FFmpeg terminó. No demuestra que los subtítulos sean correctos. Revisa tanto la respuesta legible por máquina como la imagen real.
Primero, confirma que existe output_files.out_1 y que se puede abrir su storage_url. Compara la duración, las dimensiones, el códec y el formato devueltos con los requisitos de entrega. Después reproduce el video completo, prestando especial atención al primer bloque, el último, el intercambio más rápido, los saltos de línea, los nombres, los números y los subtítulos próximos a cortes o superposiciones gráficas.
Solo después de esa revisión debería entrar en una cola el mismo ajuste preestablecido de estilo. Guarda juntos la versión del video fuente, la versión del SRT, el comando de FFmpeg, el ID de comando de Rendi, el ID del archivo de salida y la decisión de quien revisó. Ese registro convierte una acumulación de renderizados en un sistema de producción.
El costo depende de los bytes, no de los minutos
Rendi contabiliza el tamaño combinado de los archivos multimedia de entrada y salida. Su ejemplo de precios considera que una entrada de 1 GB más una salida de 0.5 GB consumen 1.5 GB de procesamiento. Bajo ese ejemplo exacto, los 50 GB incluidos en el plan Free cubren 33 trabajos completos y dejan 0.5 GB, mientras que los 250 GB del plan Pro de entrada cubren 166 trabajos completos y dejan 1 GB.

Esos recuentos de trabajos son el resultado aritmético del ejemplo de Rendi, no un benchmark de subtítulos. Un MP4 con subtítulos incrustados puede ocupar más o menos según el archivo fuente, la configuración del códec y la salida. Mide el total real de entrada más salida antes de prever el volumen.
Free cuesta $0 al mes, incluye 50 GB de procesamiento y limita cada comando a 1 minuto de ejecución. El plan Pro de entrada cuesta $25 al mes, incluye 250 GB y eleva el límite por comando a 10 minutos. El desglose completo de precios de Rendi cubre las configuraciones con más CPU y tiempo de ejecución ilimitado, por lo que no hace falta repetir aquí toda la matriz.
La comparación importante es operativa. Kapwing Pro figura a $16 por miembro al mes con facturación anual o $24 con facturación mensual. Un editor visual resulta más sencillo para un trabajo aislado y ocasional. Rendi encaja mejor cuando el acabado de subtítulos es una etapa repetible del sistema, activada por recursos aprobados y supervisada sin que otra persona tenga que abrir un editor.
Siete flujos de trabajo que sacan más partido a Rendi
No encaja por igual con cualquiera que añada subtítulos. Está pensado para equipos que ya disponen de un SRT aprobado y repiten una y otra vez el renderizado final.
Tres productos que vale la pena crear
1. Un sistema por lotes para subtítulos ajustados a la marca
Esta es la oportunidad más sólida. Crea un portal específico para equipos de contenidos y agencias que admita una URL de video, un SRT aprobado, un ajuste preestablecido de estilo con nombre, una página de revisión y un MP4 descargable. El producto vende repetibilidad y aprobación, no un editor para cualquier tarea.
Alrededor de 1,900 búsquedas mensuales en Estados Unidos corresponden a add subtitles to a video, mientras que Kapwing Pro parte de $16 por miembro al mes con facturación anual. La demanda es lo bastante amplia para captar usuarios, y el flujo recurrente de los equipos es lo bastante específico para sostener un producto especializado.
La versión mínima que se puede vender necesita entradas mediante URL firmadas, validación del SRT, unos pocos ajustes preestablecidos de marca bloqueados, envío a Rendi, gestión de webhooks, metadatos de salida y aceptación o rechazo por parte de una persona. El obstáculo es la diferenciación. Un formulario alrededor de una sola llamada a FFmpeg es fácil de copiar. El valor duradero debe proceder del historial de aprobaciones, las reglas de marca reutilizables, la correspondencia entre revisiones y la recuperación fiable ante fallos.
2. Una API para renderizar subtítulos pensada para la automatización
Ofrece un único endpoint estable a agencias que no quieran exponer a sus clientes a la sintaxis de FFmpeg. El cliente envía la URL del video, la URL del SRT, el nombre del ajuste preestablecido y la URL de callback. El servicio traduce ese ajuste en un comando revisado y devuelve un resultado de trabajo normalizado.
Burn subtitles into video registra 40 búsquedas mensuales en Estados Unidos y un CPC de $8.16. El volumen es pequeño, pero la intención es muy específica. La pregunta PAA “¿Cómo puedo incrustar permanentemente subtítulos SRT en un video?” prácticamente describe el producto.
Un MVP necesita autenticación, validación de solicitudes, correspondencia con trabajos de Rendi, claves de idempotencia, verificación de webhooks, un estado que permita reintentos seguros y registros de uso. El obstáculo es la distribución. El tráfico de búsqueda por sí solo no sostendrá el negocio, y Rendi ya ofrece la API subyacente. La capa adicional debe imponerse mediante integraciones para agencias, ajustes preestablecidos, observabilidad y soporte.
3. Una revisión previa de subtítulos con entrega en dos formatos
Crea una puerta de revisión que coteje un SRT con el video final y, a partir de ambos archivos ya aprobados, genere un MP4 de revisión con subtítulos incrustados y otro MP4 de entrega con una pista seleccionable. El comprador es un equipo de localización, formación u operaciones multimedia que pierde con frecuencia la correspondencia entre cada versión de los subtítulos y cada montaje.
La pregunta PAA real “¿Cómo agrego subtítulos SRT a un video?” aparece junto a una confusión recurrente entre los subtítulos permanentes y los seleccionables en los resultados actuales. El producto resuelve ambos trabajos sin obligar al operador a decidir por su cuenta los detalles del contenedor.
El MVP necesita análisis de bloques de subtítulos, comparación de duración, vista previa del área segura, identificadores de versión, dos recetas controladas de FFmpeg y un registro de aprobación. El obstáculo es que la validación básica de un SRT es una función, no una empresa. El historial de revisiones y los controles de entrega deben aportar suficiente valor para que los equipos mantengan el producto dentro de su proceso de publicación.
Límites y conclusión sin rodeos
Rendi elimina de este flujo la necesidad de gestionar infraestructura de FFmpeg. No elimina la responsabilidad editorial. No corregirá una transcripción, reparará una mala sincronización, elegirá saltos de línea legibles ni decidirá si los subtítulos incrustados son el formato de accesibilidad adecuado.
Tampoco puede hacer que la incrustación sea un proceso sin pérdida. El filtro de subtítulos modifica los fotogramas, por lo que el video vuelve a codificarse. La calidad, el tiempo de ejecución y el tamaño de salida dependen del comando y del archivo fuente. El límite de seguridad predeterminado de la API es de 300 segundos, mientras que el plan determina el máximo que se puede solicitar. Un trabajo largo o con un alto costo computacional requiere un plan cuyo límite de ejecución por comando se ajuste a la codificación real.
No uses este flujo para un solo clip informal si una herramienta gratuita en el navegador ya resuelve la tarea. No incrustes subtítulos si el público necesita activarlos y desactivarlos. No proceses por lotes un estilo que no se haya revisado. Rendi resulta convincente cuando la misma regla de acabado aprobada debe aplicarse de forma fiable a muchos recursos.
Qué hacer este lunes
Toma un video corto y aprobado junto con su SRT final. Aloja ambos en URL accesibles, ejecuta la carga útil del ejemplo con el estilo elegido, examina los metadatos devueltos y reproduce el MP4 completo en la pantalla más pequeña para la que ofreces soporte. Guarda el comando aceptado como ajuste preestablecido solo después de esa revisión. Después conecta el ajuste al punto en el que tu flujo ya marca el video y los subtítulos como aprobados.
¿Cómo puedo incrustar permanentemente subtítulos SRT en un video?
Usa el filtro de video subtitles de FFmpeg para que el texto se renderice en cada fotograma y después codifica un video nuevo. En Rendi, asigna el video fuente y el SRT a alias in_, asigna el nombre del MP4 a un alias out_, envía el comando y espera a SUCCESS antes de descargarlo y revisarlo.
¿Cómo se incrustan subtítulos en un video?
Empieza con el video final y un archivo de subtítulos aprobado. Elige un comando de incrustación cuando el texto deba estar siempre visible. Elige una pista de subtítulos seleccionable cuando el público deba controlarla. En Rendi, la ruta documentada para incrustar utiliza -vf subtitles={{in_srt}} y vuelve a codificar el video.
¿Cómo agrego subtítulos SRT a un video?
Puedes incrustar el SRT en los píxeles o adjuntarlo como pista de subtítulos independiente. La incrustación ofrece una apariencia fija en todas partes, pero no se puede desactivar. Una pista no incrustada sigue siendo editable y seleccionable. Rendi documenta tanto el filtro subtitles para incrustar como mov_text para crear una pista seleccionable en un MP4.
¿Cómo se incrustan subtítulos en un video con HandBrake?
HandBrake ofrece una interfaz de escritorio para añadir un SRT externo y marcarlo como incrustado. Es una opción razonable para trabajos manuales ocasionales. Rendi resuelve otra necesidad: enviar la operación equivalente de FFmpeg mediante una API cuando el renderizado forma parte de un sistema automatizado.
Si quieres integrar en tu empresa un sistema de producción multimedia con este nivel de revisión, consulta sistemas de producción con IA.
- Última actualización
- 11 sept 2026
- Categoría
- Build







