PiTiVi video editor previews rewritten core
Autor original: Nathan Willis
Publicado originalmente no: lwn.net
Tradução: Roberto Bechtlufft
A edição de vídeos no Linux deve ficar bem mais fácil para os usuários ainda este ano. O editor não linear de vídeos PiTiVi, baseado no GStreamer, lançou sua primeira versão pública desde que teve início uma expressiva reescrita de seu código. A versão 0.13.1 foi lançada no dia 27 de maio de 2009, e o usuário poderá notar algumas mudanças visualmente, mas o grosso mesmo está nas grandes melhorias na estrutura do programa, estabelecendo uma base para o próximo ciclo de desenvolvimento.
A edição de vídeos continua sendo um assunto mal resolvido para os usuários do Linux. Dentre o punhado de aplicativos disponíveis para a tarefa, cada um tem sua cota de limitações, esquisitices na interface e problemas de estabilidade. O Kino, por exemplo, é bem versado na captura de vídeos DV de câmeras, mas usa uma interface nada familiar para um editor não linear de vídeos, sem a habitual linha do tempo, além de exigir uma etapa de renderização para cada título, transição ou efeito. O Kdenlive e o Cinelerra oferecem mais recursos, mas sofrem de problemas de instalação e estabilidade amplamente relatados. Já quanto ao PiTiVi, a principal crítica sempre foi à falta de funcionalidade. A reescrita da série 0.13, iniciada em 2008, promete mudar isso.
O PiTiVi usa Python na interface de usuário e na lógica de alto nível, mas todo o processamento de áudio e vídeo, da reprodução aos filtros, fica por conta do GStreamer. Isso confere ao aplicativo um desempenho melhor, a capacidade de tirar vantagem das threads múltiplas do GStreamer e a independência de codecs e formatos de arquivos. Qualquer formato suportado pelo GStreamer também é suportado pelo PiTiVi, o que é conveniente para os usuários, e as distribuições podem incluir o aplicativo sem depender de pacotes de mídia sujeitos a problemas legais, como o FFmpeg. A abstração baseada em plugins do GStreamer, que permite ao PiTiVi funcionar independente de pacotes de codecs específicos (patenteados, comerciais, proprietários ou livres), já vem instalada e não depende da manutenção de um motor de reprodução especialmente configurado para evitar conflitos legais.
Os usuários vão perceber que o PiTiVi 0.13.1 tem suporte a camadas múltiplas na linha do tempo, permitindo a sobreposição simples de várias fontes de áudio e vídeo. Ele também aceita o uso de imagens estáticas como faixas de vídeo e é capaz de recortar clipes de áudio e vídeo pelo editor. Como se pode ver pelas fotos de “antes” (à esquerda) e “depois” (à direita), as formas de onda de áudio e as miniaturas de vídeo agora são usadas para representar faixas na linha do tempo, facilitando a distinção entre os clipes durante a edição. Mas além dessas mudanças visíveis, o trabalho mais substancial na série 0.13.x é a recriação do núcleo, que no futuro tornará o editor mais poderoso.
Recriação
O desenvolvedor-chefe do PiTiVi, Edward Hervey, disse que o núcleo recriado do aplicativo reflete vários anos de feedback dos usuários e discussões com profissionais da edição de vídeos. “O design anterior era basicamente uma evolução de uma certa visão que eu tinha da edição de vídeos e do fluxo de trabalho em 2003.” O design antigo incluía muitos recursos inseridos “à força” no código, e que atrasavam o aplicativo na hora de lidar com o fluxo de trabalho do mundo real, como os limites no número de faixas de áudio e vídeo e no número de camadas, além da capacidade de abrir apenas um projeto por vez.
Um exemplo citado por Hervey é a representação interna da linha do tempo de edição. O núcleo antigo do PiTiVi estava ligado diretamente à linha do tempo oferecida pela biblioteca Gnolin (uma dependência do PiTiVi que implementa recursos de edição não linear, como os plugins do GStreamer), que limitava o uso a um objeto por fluxo e faixa. O novo núcleo acrescenta uma camada intermediária, permitindo vários objetos e faixas.
A reescrita também é bem mais modular, facilitando a inclusão de novos recursos pelos desenvolvedores. Alguns dos recursos planejados para o ciclo 0.13.x incluem tarefas críticas de edição, como títulos, transições e efeitos, operações que já são possíveis com plugins do GStreamer. Hervey explica:
Por exemplo, temos elementos de criação de títulos (que aceitam a entrada de texto, renderizam o texto com o Cairo/Pango em um quadro de vídeo e exibem esse quadro), temos elementos de mixagem de vídeos (para combinar vários fluxos), vários elementos para aplicar transparência/alfa a um fluxo de vídeo, alguns efeitos de vídeo (do EffecTV) […] Mas mesmo possuindo todos esses elementos, ainda temos trabalho pela frente com o PiTiVi para que eles possam ser úteis aos usuários finais. Classificar os vários efeitos/operações é uma das nossas tarefas (para o GStreamer, não há muita diferença entre o balanço de cores, a mixagem de vídeos ou a aplicação de um efeito de vídeo bem descolado). Também temos que exibir as muitas propriedades desses efeitos de maneira voltada à edição, por vezes adicionando alguma interface para que essas propriedades sejam modificadas (um efeito de tela azul precisaria de uma caixa de diálogo com uma maneira de selecionar cores e de um modo de visualização).
Brando Lewis, novato na equipe do PiTiVi, assumiu a maior parte do trabalho na interface de usuário, com a ajuda de Jean-Francois Tam. Como de costume, a equipe está tentando manter uma divisão clara entre o núcleo do aplicativo e sua interface, mas no caso do PiTiVi essa escolha tem implicações em sua capacidade de personalização. Hervey explicou que o objetivo é manter a interface de usuário a mais simples possível para que o programa possa ser usado por novatos, mas deixando espaço para o acréscimo de novas funcionalidades por meio de plugins.
Gstreamer
O desenvolvimento do PiTiVi está ligado intrinsecamente ao desenvolvimento do GStreamer. Como Hervey explicou em uma entrevista ao Gnomedesktop.org, ele, Lewis e o desenvolvedor do núcleo do programa, Alessandro Decina, são empregados da Collabora Multimedia, que patrocina o contínuo trabalho no GStreamer, bem como de outros projetos de código aberto. Parte dos lucros da Collabora vem de trabalhos de consultoria que envolvem a construção de soluções de processamento e edição com o GStreamer, e isso torna importante a criação de um editor não linear confiável, já que ela influencia a direção que o GStreamer irá tomar.
Um exemplo dessa influência é a noção de “segmentos” adicionada ao GStreamer 0.10. Os segmentos permitem ao PiTiVi registrar marcadores de entrada e saída para cada buffer de áudio e vídeo sem alterar o buffer em si, aumentando muito a velocidade do processo de reorganização de clipes na linha do tempo. “Antes, para fazer mudanças na sequência cronológica, nós tínhamos que modificar os carimbos de data e hora (timestamps) de todos os buffers. Já com os segmentos, nós podemos informar quando os buffers que se seguirão ao evento serão exibidos, a que velocidade etc…” Além disso, diz Hervey, o desenvolvimento do PiTiVi testa todos os plugins do GStreamer para certificar-se de que eles estejam em plena conformidade com a API, como por exemplo garantindo que todos os decodificadores possam decodificar com precisão de amostra.
Além disso, como ocorre com qualquer projeto ligado ao GStreamer, a natureza modular desse framework de mídia significa que outros projetos podem aproveitar as melhorias que se originam no PiTiVi, e vice-versa. Como o PiTiVi representa um uso do GStreamer que difere do paradigma dos reprodutores de mídia, ele faz testes exaustivos com os plugins de maneiras diferentes.
Próximas atrações no PiTiVi
O próximo marco de desenvolvimento do PiTiVi está previsto para julho, quando serão incluídos recursos essenciais como desfazer/refazer, combinações, composições e captura de vídeo. Como oficialmente trata-se de uma árvore de desenvolvimento, a equipe não está trabalhando para que a série 0.13.x seja incluída em nenhuma distribuição Linux. Até o novo PiTiVi ser incluído em alguma distribuição, os usuários interessados em testar as versões de desenvolvimento podem baixar e compilar os pacotes com o código fonte ou, se estiverem usando o Debian ou o Ubuntu, podem acessar os binários de desenvolvimento através do PPA do projeto. O PPA inclui pacotes atualizados do GStreamer e de seus plugins, do Gnolin e de outras dependências essenciais. Para compilar os fontes também é necessário cumprir com as dependências, e as instruções estão disponíveis no wiki do PiTiVi.
Os editores não lineares de vídeo são criaturas complexas, e para muitos usuários de desktops livres, continua faltando um editor desse tipo que seja competente e estável. Como ele pode contar com o GStreamer para cuidar do pesado fardo do processamento de mídia, o PiTiVi tem mais chances do que a maioria dos projetos mais jovens de oferecer uma usabilidade confiável, e a julgar pela primeira versão do núcleo recém-reescrito da versão 0.13.1, ele parece estar caminhando muito bem nesse sentido.
Créditos a Nathan Willis – lwn.net
Tradução por Roberto Bechtlufft <robertobech at gmail.com>
Deixe seu comentário