1 puntos por GN⁺ 2024-02-09 | 1 comentarios | Compartir por WhatsApp

Contribuyendo por casualidad al VSE de Blender

  • Hace dos meses empecé a aportar un poco de código al Video Sequence Editor (VSE) de Blender.
  • ¿Sabías que Blender tenía una herramienta de edición de video? Yo tampoco.
  • Empecé a meterme con el VSE sin saber absolutamente nada sobre edición de video, timelines, secuenciadores, corrección de color, ffmpeg, mezcla de audio y demás.

¿Cómo empecé a trabajar en el VSE “por accidente”?

  • Decidí asistir a la conferencia Unite 2023 de Unity en Ámsterdam y visitar a unos amigos.
  • Después de la conferencia, visité durante medio día la sede de Blender, y Francesco y Sergey me preguntaron si quería contribuir al VSE.
  • Así fue como empecé a trabajar en el VSE.

Mejoras en el renderizado del timeline

  • El timeline del VSE está en la parte inferior de la imagen y muestra alrededor de 3000 “strips” al mismo tiempo.
  • Al hacer scroll y mover el timeline, la interfaz de usuario se actualizaba a unas 15 fps.
  • Ahora se actualiza a más de 60 fps (#115311).

Scopes

  • El VSE puede mostrar “scopes” típicos como histograma de imagen, waveform y vectorscope.
  • Hay mejoras en el histograma, waveform y vectorscope.

La parte de ffmpeg

  • Blender usa principalmente la librería ffmpeg para leer y escribir audio/video.
  • Usa libswscale para realizar la conversión RGB↔YUV de los frames de video.
  • Ahora aprovecha multithreading para acelerar el paso de conversión RGB→YUV (#116008).

Remuestreo de audio

  • Dentro de la librería de audio (Audaspace), se iba mucho tiempo en el remuestreo de los datos de los clips de audio.
  • Se añadió a Audaspace una nueva opción de calidad de remuestreo “intermedia” para usarla durante el render (#116059).

Transformación y filtrado de imagen

  • En el VSE se pueden transformar imágenes, videos, texto, escenas y más: posicionarlos, rotarlos, redimensionarlos y aplicar recortes adicionales.
  • Todas estas transformaciones se hacen en CPU y ya estaban procesadas con multithreading.
Corrección del “error de medio píxel”
  • Había varios “errores de medio píxel” en el código, que en muchos casos se anulaban entre sí o no se notaban.
  • Esos errores ya fueron corregidos (#116628).
Bordes transparentes alrededor del filtrado bilinear
  • Solo el filtrado bilinear añadía transparencia alrededor de la imagen resultante.
  • Ahora se eliminó la “mezcla con transparencia” del código de filtrado bilinear (#117717).
Se añadieron y cambiaron filtros
  • Las transformaciones de strips en el VSE no tenían opción de filtrado cúbico.
  • Ahora en el VSE se pueden elegir dos tipos de filtrado cúbico (#117100, #117517).
  • Se añadió la opción de filtro “Auto” y se configuró como valor predeterminado (#117853).

Optimización de efectos del VSE

  • En conjuntos de datos de video reales no se usan muchos efectos, pero al encontrar algo en el código, se optimizó.
  • La mayoría de las optimizaciones se lograron mediante multithreading.

¿Qué significa todo esto para el tiempo de render?

  • En tres conjuntos de datos de Blender Studio, el tiempo de render final de películas del VSE se volvió aproximadamente 2 veces más rápido en una PC.

Reflexiones sobre el trabajo real

  • No estoy seguro de si todo el trabajo anterior representa una “buena cantidad de trabajo” para dos meses de esfuerzo a tiempo parcial.
  • Parece bastante bien considerando que el desarrollador (yo) no sabía nada de esta área ni de la base de código.
  • En total, se completaron, revisaron y fusionaron 37 pull requests.

¿Qué sigue?

  • Blender 4.1 ya entró en beta y, en términos funcionales, está “terminado”.
  • Ya comenzó el trabajo en Blender 4.2, y planeo seguir trabajando con el VSE.

Opinión de GN⁺:

  1. Este artículo comparte mejoras y el proceso de desarrollo del VSE de Blender, y muestra lo importante que es contribuir a proyectos de código abierto.
  2. También transmite un mensaje positivo que anima a asumir nuevos retos, al destacar que un desarrollador puede hacer contribuciones significativas incluso fuera de su área de especialidad.
  3. El texto subraya la importancia de la optimización y la mejora del rendimiento en el desarrollo de software, y explica con ejemplos concretos cómo estos cambios afectan la experiencia real del usuario y los tiempos de render.

1 comentarios

 
GN⁺ 2024-02-09
Comentarios en Hacker News
  • Un usuario mencionó que la mayor falla de su carrera fue no haber encontrado un equilibrio entre buscar soluciones matemáticas para proyectos únicos y trabajar en proyectos pagados con resultados promedio. Compartió que tuvo la oportunidad de recibir pago por algo en lo que trabajaba gratis, pero al final terminó sin trabajar en eso en absoluto.
  • Otro usuario mencionó el caso de alguien que, tras adquirir mucha experiencia originalmente en Unity, contribuyó a Blender, y elogió en particular un cambio que optimizó la etapa de procesamiento de imágenes para mejorar la velocidad de cálculo 4 veces.
  • Un usuario señaló que su tendencia favorita de los últimos años ha sido ver a Aras participar en varios proyectos gráficos de código abierto, lograr grandes mejoras de velocidad y calidad, y luego pasar a otro proyecto.
  • Otro usuario expresó que le apena que Musicbee, su reproductor de música preferido, no sea de código abierto, y dijo que si el código fuente estuviera disponible le gustaría contribuir arreglando pequeños problemas en su tiempo libre.
  • Un usuario comentó que ha estado usando Blender VSE para edición de video desde 2020 y que le parece el editor de video más estable y con más funciones en Linux.
  • Otro usuario compartió que quería usar solo herramientas de código abierto para su pódcast, pero que cambiar de Blender a DaVinci Resolve después de que renderizar una secuencia mp4 con chroma key en Blender le tomara 10 horas.
  • Un usuario pidió ayuda para entender el significado del título de la publicación y preguntó si acaso era una expresión tipo meme.
  • Otro usuario comentó que debe de ser muy difícil hacer más rápida cualquier parte del programa 3D Blender, y lo evaluó como la aplicación 3D que arranca más rápido y responde mejor.
  • Un usuario pidió que cambiaran el título por uno más claro.
  • Por último, un usuario comentó que su primera experiencia usando VSE no fue muy buena y compartió un enlace sobre su experiencia.