Automatiza tareas en DaVinci Resolve 18

Una de las novedades más jugosas de DaVinci Resolve 18 es algo que nadie ha comentado. Resulta que DaVinci Resolve dispone de una característica muy peculiar, y es que podemos controlar el programa sin tocar el programa. Como si le estuviéramos haciendo telequinesis al programa, controlándolo mediante la Fuerza.

Este control del programa se puede ejercer mediante dos lenguajes de programación, Lua y Python. Lógicamente Python es el que más posibilidades ofrece, por su vastísimo ecosistema de módulos, aplicaciones, scripts y adminículos varios, pero hasta la versión 17 era relativamente difícil integrar Python en DaVinci Resolve porque su compatibilidad estaba limitada a una versión muy concreta de Python que está obsoleta y era todo un poco más rudimentario. Hasta ahora.

Porque la versión 18 trae una novedad brutal, y es que abre la compatibilidad a las últimas versiones de este maravilloso lenguaje de programación. ¿No entiendes nada? Vayamos por partes.

Cuando utilizas una computadora, ya sea de sobremesa o portátil, lo haces mediante un sistema operativo, que es el conjunto de programas de software que hacen de intermediarios entre tu computadora y tú. Este conjunto de programas, como ya sabes, se puede ampliar. Podemos instalar un procesador de textos, un editor de vídeo, un programa de mensajería y miles de millones de cosas más.

sistema operativo
Componentes básicos de un sistema operativo

Entre estos programas hay un tipo de programas o componentes que se pueden instalar en nuestro equipo y que sirven para programar, es decir, crear programas, servicios y componentes que hagan un trabajo concreto. Estos componentes son los lenguajes de programación.

Uno de los lenguajes de programación más populares, potentes y a la vez divertidos de usar es Python, que goza de un enorme prestigio y es ampliamente utilizado en multitud de sectores. Pues bien, DaVinci Resolve dispone de una habilidad, y es que es capaz de “hablar” en este lenguaje de programación, aceptando comandos y órdenes que nosotros le escribamos en este idioma. ¿Y qué tipo de órdenes acepta? Pues casi cualquiera que se nos ocurra siempre que no sea realizar una tarea edición dentro de la línea de tiempo (al menos por ahora, porque la lista de comandos que acepta no para de crecer).

Si en DaVinci Resolve nos vamos a Ayuda, Documentación, Desarrolladores, en la carpeta Scripting veremos un archivo de texto llamado Readme. Esta es la biblia para ayudarnos a entender el control remoto de DaVinci Resolve mediante comandos. No me voy a detener en cómo hay que hacerlo funcionar, pero básicamente tenemos que instalar Python en su versión 3.6 en adelante en la carpeta raíz de nuestro disco duro e instalar las variables de entorno en el sistema operativo que estemos, Mac OS, Windows o Linux.

Ejemplo de script básico
Ejemplo de script básico

Y si todo va bien, podremos mandarle órdenes mediante archivos con instrucciones, llamados “scripts” y también podremos usar una consola de comandos interactiva dentro de DaVinci Resolve. La tienes en Área de trabajo, Consola de comandos.

En el archivo Readme tienes no solo un ejemplo para crear un proyecto nuevo sin tocar nada dentro del programa (solo la consola de comandos), sino también todos los comandos que acepta. Además, dentro de la carpeta de Scripting tenemos una llamada Examples. Aquí tenemos diferentes ejemplos de scripts de comandos. Por ejemplo, tenemos un script para obtener la información de un proyecto, para añadir subclips a una línea de tiempo, o para renderizar y aplicar un color grading determinado a todas las líneas de tiempo.

Consola de comandos de DaVinci Resolve
Consola de comandos de DaVinci Resolve

Este por ejemplo es brutal, porque puedo aplicar un ajuste de color y exportar todas las líneas de tiempo que tenga en mi proyecto de una tacada, de forma automática. Además, todo esto se puede modificar fácilmente, porque Python es un lenguaje interpretado, es decir, entiende las órdenes que nosotros le damos y las traduce a lenguaje máquina, básicamente los 0 y 1 que entiende nuestra computadora.

Gracias a esto podemos crear scripts nuevos duplicar cualquiera de los scripts que ya tenemos y adaptarlo a nuestras necesidades. Por ejemplo, para solo renderizar las líneas de tiempo con los ajustes que queramos.

“Y todo esto, ¿para qué?” te preguntarás. Pues por poner un ejemplo, imagina que eres una productora grande, que tiene que realizar un montón de tareas monótonas y tediosas de exportación, importación o transcodificación de archivos y proyectos. Mediante esta técnica te estarás ahorrando un montón de trabajo, ya que te permite automatizarlo todo. Yo, por ejemplo, he tenido que lidiar con proyectos con hasta 100 líneas de tiempo. ¡Poder automatizar esta tarea es un sueño hecho realidad!

Y una de esas tareas monótonas y tediosas puede ser transcribir voz a texto. ¿Recuerdas que ya hablamos de Subtitle Edit, programa que nos permite generar subtítulos mediante Inteligencia Artificial? Para esto teníamos que descargar un componente llamado Vosk. Resulta que Vosk también es capaz de “hablar” en el lenguaje de programación Python.

Subtítulos automáticos importados
Subtítulos automáticos importados

Todo lo que es compatible con Python se puede interrelacionar, y esto nos abre un abanico de posibilidades infinitas. Gracias a la integración de Vosk y de DaVinci Resolve con Python podemos crear un script que se comunique con ambos componentes para pasar voz a texto y luego insertarlo como subtítulos en nuestra línea de tiempo. ¡Y todo esto completamente gratis!

Esto por solo mencionar una de las muchas tareas que se pueden realizar gracias a la integración con Python de Resolve. El límite está en tu imaginación.

Adquiere las herramientas de trabajo de Creatubers

Equípate para tu proyecto creativo y me ayudarás con una pequeña comisión de afiliado. No pagarás de más, sino que los proveedores dejarán de recibir una pequeña parte para dársela a Creatubers.

15/06/2022

2 comentarios en "Automatiza tareas en DaVinci Resolve 18"

  1. Leí todo el README y estuve jugando con todas las propiedades de un TimelineItem, pero no consigo cambiar la velocidad o dirección de un clip, alguien sabe? 😅 ?

    • Veo que no está implementada esa opción en la API. Esa y la de poder realizar cortes en la timeline (no pido mucho, solo un Ctrl+B vía API y ya) me harían feliz. 😄

Deja un mensaje

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

© 2024. Creatubers. Todos los derechos reservados. Información legal - Política de privacidad
X Facebook YouTube Instagram Twitch Podcast