El Blender VSE que usé por accidente
(aras-p.info)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
libswscalepara 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⁺:
- 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.
- 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.
- 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
Comentarios en Hacker News