Kdenlive: automatizar la edición
Investigación sobre cómo automatizar tareas de edición con Kdenlive en este portátil (Arch + niri), con pruebas reales sobre proyectos de xabi. Verificado 2026-10-24.
Qué hay instalado
| Pieza | Versión | Nota |
|---|---|---|
| kdenlive | 26.08.0 | build nativa de pacman |
| mlt | 7.40.0 | aporta el binario melt (/usr/bin/melt) |
| ffmpeg | 9.0.1 | filtros vidstab*, loudnorm, silencedetect, scdet, deflicker disponibles |
También existe kdenlive_render (/usr/bin/kdenlive_render, modos delivery y preview-chunks), el renderizador que usa la propia GUI.
Las tres capas de automatización
- ffmpeg antes de importar — normalizar audio, pasar VFR a fps fijo, estabilizar, detectar silencios.
- MLT XML — los
.kdenliveson XML de MLT con datos extra de Kdenlive: se pueden leer, parchear (guías, zonas, recursos) o generar desde cero. - CLI de Kdenlive —
kdenlive --render proyecto.mp4 --render-preset "..."abre, renderiza y sale, sin interfaz.
Render headless: la trampa de los proxies (lo más importante)
En el XML guardado, cada clip apunta al proxy, no al original:
<chain id="chain59" out="00:00:12.520">
<property name="resource">proxy/98fa0f12ce34c8ce10bee0ccf940482e.mkv</property> <!-- 640x360 mjpeg -->
<property name="kdenlive:proxy">proxy/98fa0f12ce34c8ce10bee0ccf940482e.mkv</property>
<property name="kdenlive:originalurl">VIDEO__20250728_114339_242.mp4</property> <!-- 1920x1080 h264 -->
</chain>Consecuencias:
kdenlive --rendercambia proxies por originales por su cuenta. Es la vía buena.
Probado con la plantillaTITULOAK.kdenlive:
→ mp4 1920x1080 h264/aac válido de 59,8 s, sin abrir ventana.QT_QPA_PLATFORM=offscreen kdenlive --no-welcome --render proyecto.kdenlive salida.mp4 --render-preset "MP4-H264/AAC"melt proyecto.kdenlivea pelo usa los PROXY y saca 1080p reescalado desde 640x360.
Medido con el mismo tramo (125 frames) y el mismo CRF: melt directo 4,7 MB vs melt con originales 7,5 MB.- Para renderizar con melt desde originales hay que reescribir el
resourcede cada<chain>con el valor dekdenlive:originalurl(rutas relativas contra el atributoroot=del<mlt>). Solo sobre una copia, nunca sobre el original.
Anatomía de los proyectos de xabi
- Formato gen-5 (
kdenlive:docproperties.version= 1.1):<mlt producer="main_bin" root=...>→<profile>→<chain>por clip →<playlist>por pista →<tractor>por pista y por secuencia. - Ejemplo real
~/Vídeos/2507_extremadura/2507_extremadura-galizia.kdenlive: perfil 1080p25, 9 pistas, 249 clips, 256 entradas, todos con proxy activo, 2,4 MB de XML. - Originales de móvil VFR (~29,83 fps,
variable_frame_rate=1), 1080p h264 + aac 44,1 kHz. Eso explica los*-30fps.mp4que se generan a mano: es un paso automatizable. - Títulos Kdenlive van embebidos en el proyecto:
mlt_service=kdenlivetitle+<property name="xmldata">con el XML del título escapado ykdenlive:clipnamecomo nombre. Las plantillas (~/Vídeos/kdenlive plantillak/TITULOAK.kdenlive,plantilla.kdenlive) se pueden duplicar y sustituir textos. - Subtítulos:
mlt_service=avfilter.subtitlesconav.filenameapuntando a un.srt(Kdenlive guarda.ass). - Presets de render del sistema en
/usr/share/kdenlive/encodingprofiles.rc(solo grupos decklink/proxy/screengrab/…; los de usuario no están ahí, se referencian igual por nombre).
Tareas automatizables, por orden de valor
- Ingesta en lote — VFR→CFR + normalización de audio (
loudnorm2 pasadas) antes de importar. Quita el paso manual en cada vídeo. - Auto-cortes —
silencedetect/scdetde ffmpeg → inyectar los cortes como marcadores/guías en el XML, para llegar a la timeline con los puntos ya marcados. - Render por lotes — varios presets de un tirón vía
kdenlive --render(compartir MP4, archivo de alta calidad, solo audio). - Plantillas con texto variable — proyecto nuevo desde
TITULOAK.kdenlivecon los textos ya sustituidos. - Subtítulos automáticos —
whisper-cpp(está enextra, no instalado) →.srt→ Secuencia ▸ Subtítulos ▸ Importar. Kdenlive también puede con Whisper/VOSK desde su configuración. - Higiene — proxies huérfanos, originales que faltan, rutas rotas, proyectos que engordan.
Reglas de trabajo acordadas
- Pedir permiso antes de escribir, mover o borrar proyectos o vídeos.
- Los renders de prueba van a
~/.hermes/cache/scratch/. - Nunca sobrescribir un
.kdenlivedel usuario: trabajar sobre copia. - El conocimiento técnico completo vive en el skill de Hermes
kdenlive-automation(y la recuperación de instancias congeladas, enkdenlive-operations).