1 pontos por GN⁺ 2024-02-09 | 1 comentários | Compartilhar no WhatsApp

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 libswscale para 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⁺:

  1. Este texto compartilha melhorias e o processo de desenvolvimento do VSE do Blender, mostrando como é importante contribuir para projetos de código aberto.
  2. 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.
  3. 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

 
GN⁺ 2024-02-09
Comentários do Hacker News
  • Um usuário mencionou que a parte mais equivocada de sua carreira foi não conseguir encontrar um equilíbrio entre buscar soluções matemáticas para projetos únicos e projetos pagos que entregavam resultados medianos. Compartilhou a experiência de ter surgido a chance de ser pago por algo em que trabalhava de graça, mas no fim acabou não trabalhando mais nisso.
  • Outro usuário citou o caso de alguém que, depois de acumular muita experiência com Unity, passou a contribuir para o Blender, elogiando especialmente uma mudança que otimizou a etapa de processamento de imagem e aumentou a velocidade de operação em 4 vezes.
  • Um usuário apontou que uma de suas tendências favoritas dos últimos anos é ver Aras participar de vários projetos gráficos de código aberto, alcançar grandes ganhos de desempenho e melhorias, e depois seguir para outro projeto.
  • Outro usuário expressou frustração por seu player de música preferido, o Musicbee, não ser open source, dizendo que, se o código-fonte fosse aberto, gostaria de contribuir corrigindo pequenos problemas no tempo livre.
  • Um usuário mencionou que usa o Blender VSE para edição de vídeo desde 2020 e que o considera o editor de vídeo mais estável e mais rico em recursos no Linux.
  • Outro usuário compartilhou que queria usar apenas ferramentas open source para seu podcast, mas levou 10 horas para renderizar uma sequência mp4 com chroma key no Blender e acabou migrando para o DaVinci Resolve.
  • Um usuário pediu ajuda para entender o significado do título do post, perguntando se talvez fosse uma expressão em tom de meme.
  • Outro usuário comentou que seria extremamente difícil tornar qualquer parte do programa 3D Blender mais rápida, avaliando que ele já é o aplicativo 3D com inicialização mais rápida e melhor tempo de resposta.
  • Um usuário pediu que o título fosse alterado para algo mais claro.
  • Por fim, um usuário comentou que sua primeira experiência usando o VSE não foi muito boa e compartilhou um link sobre sua experiência.