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

PiezaVersiónNota
kdenlive26.08.0build nativa de pacman
mlt7.40.0aporta el binario melt (/usr/bin/melt)
ffmpeg9.0.1filtros 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

  1. ffmpeg antes de importar — normalizar audio, pasar VFR a fps fijo, estabilizar, detectar silencios.
  2. MLT XML — los .kdenlive son XML de MLT con datos extra de Kdenlive: se pueden leer, parchear (guías, zonas, recursos) o generar desde cero.
  3. 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 --render cambia proxies por originales por su cuenta. Es la vía buena.
    Probado con la plantilla TITULOAK.kdenlive:
    QT_QPA_PLATFORM=offscreen kdenlive --no-welcome --render proyecto.kdenlive salida.mp4 --render-preset "MP4-H264/AAC"
    
    → mp4 1920x1080 h264/aac válido de 59,8 s, sin abrir ventana.
  • melt proyecto.kdenlive a 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 resource de cada <chain> con el valor de kdenlive:originalurl (rutas relativas contra el atributo root= 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.mp4 que 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 y kdenlive:clipname como nombre. Las plantillas (~/Vídeos/kdenlive plantillak/TITULOAK.kdenlive, plantilla.kdenlive) se pueden duplicar y sustituir textos.
  • Subtítulos: mlt_service=avfilter.subtitles con av.filename apuntando 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

  1. Ingesta en lote — VFR→CFR + normalización de audio (loudnorm 2 pasadas) antes de importar. Quita el paso manual en cada vídeo.
  2. Auto-cortes — silencedetect / scdet de ffmpeg → inyectar los cortes como marcadores/guías en el XML, para llegar a la timeline con los puntos ya marcados.
  3. Render por lotes — varios presets de un tirón vía kdenlive --render (compartir MP4, archivo de alta calidad, solo audio).
  4. Plantillas con texto variable — proyecto nuevo desde TITULOAK.kdenlive con los textos ya sustituidos.
  5. Subtítulos automáticos — whisper-cpp (está en extra, no instalado) → .srt → Secuencia ▸ Subtítulos ▸ Importar. Kdenlive también puede con Whisper/VOSK desde su configuración.
  6. 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 .kdenlive del usuario: trabajar sobre copia.
  • El conocimiento técnico completo vive en el skill de Hermes kdenlive-automation (y la recuperación de instancias congeladas, en kdenlive-operations).

000-índice