Usando o Blender VSE por acidente
(aras-p.info)Contribuindo com o Blender VSE por acaso
- Há dois meses, comecei a contribuir com um pouco de código para o Video Sequence Editor (VSE) do Blender.
- Você sabia que o Blender tinha uma ferramenta de edição de vídeo? Eu também não sabia.
- Mesmo sem saber absolutamente nada sobre edição de vídeo, timeline, sequenciador, correção de cor, ffmpeg, mixagem de áudio e afins, comecei a mexer no VSE.
Como comecei a trabalhar no VSE “por acaso”?
- Decidi ir à conferência Unite 2023 da Unity em Amsterdã e visitar alguns amigos.
- Depois da conferência, visitei a sede do Blender por meio dia, e Francesco e Sergey me perguntaram se eu tinha interesse em contribuir com o VSE.
- Foi assim que comecei a trabalhar no VSE.
Melhorias no desenho da timeline
- A timeline do VSE fica na parte inferior da imagem, e cerca de 3000 "strips" aparecem de uma vez.
- Rolar e mover a timeline atualizava a interface do usuário a cerca de 15 frames.
- Agora ela atualiza a mais de 60 frames (#115311).
Scopes
- O VSE pode mostrar "scopes" típicos, como histograma de imagem, waveform e vectorscope.
- Houve melhorias no histograma, waveform e vectorscope.
Parte do ffmpeg
- O Blender usa principalmente as bibliotecas do ffmpeg para leitura e gravação de áudio/vídeo.
- Usa
libswscalepara fazer a conversão RGB↔YUV dos frames de vídeo. - Agora a etapa de conversão RGB→YUV está mais rápida com uso de multithreading (#116008).
Reamostragem de áudio
- Dentro da biblioteca de áudio (Audaspace), muito tempo era gasto na reamostragem dos dados de clipes de áudio.
- Foi adicionada ao Audaspace uma nova configuração de qualidade de reamostragem "intermediária" para uso durante a renderização (#116059).
Transformação e filtragem de imagem
- No VSE, é possível transformar imagens, vídeos, texto, cenas etc.: posicionar, rotacionar, redimensionar e aplicar recorte adicional.
- Todas essas transformações são feitas na CPU e já usam multithreading.
Correção do “erro de meio pixel”
- Havia vários “erros de meio pixel” no código, que em muitos casos se anulavam entre si ou passavam despercebidos.
- Esses erros foram corrigidos (#116628).
Borda de transparência em torno da filtragem bilinear
- Apenas a filtragem bilinear adicionava transparência em volta da imagem resultante.
- Agora o "blend com transparência" foi removido do código de filtragem bilinear (#117717).
Adição e mudanças de filtros
- As transformações de strips no VSE não tinham opção de filtragem cúbica.
- Agora é possível escolher dois tipos de filtragem cúbica no VSE (#117100, #117517).
- Foi adicionada a opção de filtro "Auto" e definida como padrão (#117853).
Otimização dos efeitos do VSE
- Em conjuntos de dados reais de filmes, muitos efeitos não são usados, mas encontrei algumas coisas no código e as otimizei.
- A maioria das otimizações foi feita com multithreading.
O que tudo isso significa para o tempo de renderização?
- Em três conjuntos de dados fornecidos pelo Blender Studio, o tempo de renderização final de filmes no VSE ficou cerca de 2x mais rápido no PC.
Reflexões sobre o processo de trabalho real
- Não tenho certeza se tudo isso representa uma “boa quantidade de trabalho” para dois meses de esforço em tempo parcial.
- Mesmo sem conhecer nada dessa área ou da base de código, parece ter sido um resultado bem decente.
- No total, 37 pull requests foram concluídos, revisados e mesclados.
E agora?
- O Blender 4.1 entrou em beta e está funcionalmente "pronto".
- O trabalho no Blender 4.2 está começando, e o plano é continuar trabalhando com o VSE.
Opinião do GN⁺:
- Este texto compartilha melhorias e o processo de desenvolvimento do VSE do Blender, mostrando como é importante contribuir para projetos de código aberto.
- Ao destacar que um desenvolvedor pode fazer contribuições significativas mesmo fora de sua área de especialidade, transmite uma mensagem positiva de incentivo a novos desafios.
- O texto enfatiza a importância da otimização e dos ganhos de desempenho no desenvolvimento de software, explicando com exemplos concretos como essas melhorias impactam a experiência real do usuário e o tempo de renderização.
1 comentários
Comentários do Hacker News