O controle de versão faz parte do fluxo de trabalho de produção de vídeo?

20

Sou desenvolvedor de software e também estou interessado em fotografia (por quatro anos) e produção de vídeo (por apenas alguns meses).

■ No desenvolvimento de software, existe uma regra importante que todo desenvolvedor segue em todo projeto: tudo deve estar sob controle de versão : código fonte, arquivos de configuração, esquema do banco de dados, documentação - tudo o que permite a construção do projeto do zero. Isso tem duas consequências agradáveis:

  1. No caso de um desastre, quando você perde tudo, exceto o repositório de controle de versão, deve poder continuar como se nada tivesse acontecido.

  2. Em caso de alguma mudança estúpida que afeta negativamente o projeto, o desenvolvedor pode voltar para uma revisão anterior.

■ Na fotografia, todas as alterações que faço nas fotos são armazenadas para sempre no catálogo do Lightroom , possibilitando reverter para o estado anterior a qualquer momento. Com o recurso de cópias virtuais, o Lightroom também permite fazer o que é chamado de ramificação no controle de versão: a capacidade de testar algo diferente e manter os dois resultados ou remover um deles posteriormente.

O catálogo não armazena as fotos RAW, mas elas não são alteradas.

■ Na produção de vídeo, as coisas parecem diferentes. Trabalho com o Premiere Pro, After Effects e Soundbooth.

  • Nenhum parece armazenar o histórico permanentemente: se eu executar uma ação por engano e notá-la apenas no dia seguinte, não há como recuperar a versão anterior.

  • O Soundbooth também altera diretamente os arquivos WAV, o que exige um esforço adicional para separar as gravações originais das modificadas.

  • O controle de versão raramente é mencionado e não encontrei ninguém dizendo como ele realmente usa o controle de versão em seu fluxo de trabalho. Além disso, ninguém menciona qual controle de versão deve ser usado e, como a maioria dos sistemas de controle de versão é otimizada para arquivos de texto, não binários, isso cria um desafio adicional.

  • O Video.SE não possui tags de ou .

Assim, eu tenho duas perguntas:

  1. O controle de versão faz parte do fluxo de trabalho de uma pessoa que trabalha com produção de vídeo? Como é integrado?

  2. A migração para a Adobe Creative Cloud ajudaria? Existem recursos específicos que permitem, na Creative Cloud, rastrear revisões sucessivas de um projeto Premiere Pro ou After Effects?

Observação: para evitar respostas fora do tópico, enfatizo que minha pergunta não tem relação com os backups e é especificamente sobre o armazenamento de revisões sucessivas do meu trabalho, sem ter um backup dos dados no local / fora do local.

Arseni Mourzenko
fonte

Respostas:

10

O controle de versão no sentido de Git não é muito prático no mundo dos vídeos. Você precisaria criar uma ferramenta de controle de versão específica para todas as ferramentas de áudio e vídeo existentes, pois todas funcionam com seus próprios formatos de projeto. Mas poder ler esses formatos é apenas uma coisa, então você também precisa do mecanismo de renderização dessa ferramenta para mostrar as diferenças.

Embora todas essas ferramentas funcionem de maneira não destrutiva, a menos que você pré-renderize algumas coisas (compare isso com a compilação de uma DLL / lib de uma parte do seu código e trabalhe com a partir de agora), então você geralmente pode voltar para uma revisão antiga pressionando ctrl + z ou usando a ferramenta de histórico em alguns programas.

Embora salvar sub versões seja geralmente o caminho a percorrer. Como stib descrito em sua resposta ou manualmente.

Algo que eu gosto de fazer e que funciona bem com todos os softwares é colocar meus arquivos de projeto (sem imagens de origem) no Dropbox. Se você tiver uma velocidade de upload um tanto rápida (~ 1 Mbit / s) e o arquivo do seu projeto não tiver mais de 100 MB, poderá fazer o upload do seu projeto antes de salvar na próxima vez. Um projeto Premiere / AE / FCP médio é de 10 a 20 MB, para que os arquivos salvos recentemente sejam carregados em um ou dois minutos. Ainda mais rápido se você tiver mais largura de banda de upload.

Então, se você precisar voltar, poderá acessar o histórico dos arquivos do Dropbox e fazer o download ou restaurar a revisão. O Dropbox salva as revisões de arquivos para sempre * em uma conta paga (* pelo menos quando eles tinham a opção de pacote de remessa, agora é um ano, eu acho) e por 30 dias em uma conta gratuita. Tenho certeza de que existem outros hosters em nuvem que oferecem recursos semelhantes. É um pouco como usar uma versão super limitada do git que lida muito bem com arquivos binários e é livre de dores de cabeça. Isso tem a vantagem de você não bagunçar a pasta com muitos arquivos e ter um backup ao mesmo tempo.

A maioria dos hosters em nuvem também oferece associações de equipe para que você possa trabalhar com vários editores. Ou você compartilha a pasta do projeto com outros membros da equipe.

PTS
fonte
O Dropbox armazena revisões de arquivos para sempre? E se você tivesse um arquivo de vídeo de 5 GB com 800 revisões?
Pacerier 22/10
Eu editei a resposta um pouco. Com a opção de pacote antigo de rato, era realmente para sempre agora é um ano, e sim, você pode fazer o que acabou de descrever, mas, como escrevi na minha resposta, não coloque arquivos de origem (por exemplo, vídeo / imagem / áudio) lá, apenas o seu arquivos de projeto. A menos que você tenha uma conexão de gigabit, seria muito impraticável manter versões de alteração de origem ou renderizar arquivos.
PTS
1
Você só precisa do seu VCS para entender os formatos se precisar de diferenças. Isso é um pouco demais para esperar.
Peter Cordes
1
Portanto, você pode controlar facilmente os arquivos do projeto, pois 10 a 20 MB de dados binários não são problema para o git. Você só precisa escrever mensagens de confirmação úteis para descrever em que estado estava o seu arquivo salvo quando o confirmou. Se você tiver sorte, pequenas alterações de edição geralmente não alteram a maioria dos bits no arquivo do projeto, e a compactação delta do git usará muito menos do que os 10 MB completos para cada confirmação. E os backups são tão fáceis quanto git pushpara o seu servidor de backup. (com algum outro método para manter o controle dos quais mestres de vídeo ir com qual projeto, talvez md5sums de arquivos de origem?)
Peter Cordes
Bem, esse é o caso ideal, se o seu projeto acabar com um arquivo de projeto maior, você não poderá carregar as revisões com tanta frequência, dependendo da sua conexão. Um software de armazenamento em nuvem é dimensionado perfeitamente, e o git acaba enfrentando problemas. As mensagens de confirmação são definitivamente uma vantagem para o git.
PTS
6

Apenas para adicionar às respostas anteriores: Embora não haja nada parecido com o Git no mundo dos vídeos, existem ferramentas de Gerenciamento de ativos digitais / Gerenciamento de ativos de mídia que podem mais ou menos fazer a mesma coisa - controle de versão e permissão / gerenciamento de usuários (eles também fazem muito mais, pois elas são realmente construídas como bibliotecas para sua mídia). Durante anos, usei o aplicativo Final Cut Server da Apple (agora obsoleto) que se integrou ao Final Cut Suite (Final Cut Pro 7, Soundtrack Pro, etc.) em uma pequena instalação de postagem.

Nós o usamos para controle de versão e ramificação nos arquivos do projeto, o que permitiu que vários editores trabalhassem em um único projeto de maneira relativamente uniforme. Por se tratar de um produto da Apple, ele foi projetado para ser usado com o Final Cut Pro e, portanto, podia ler e trabalhar com arquivos de projeto do FCP com muita facilidade. Mesmo assim, o controle de versão do Final Cut Server dependia de salvar versões anteriores de todo o arquivo do projeto, mas não utilizava diffs. Não conheço nenhuma DAM que justifique a resposta anterior já mencionada - há muitos formatos proprietários (embora, ironicamente, muitos deles agora confiem no XML como espinha dorsal dos formatos de arquivo do projeto )

O FCS foi ótimo porque era relativamente acessível. Nunca houve realmente algo análogo ao Premiere Pro. Hoje em dia, infelizmente, você precisará distribuir um bom pedaço de mudança para obter recursos semelhantes - principalmente porque essas ferramentas são realmente projetadas para instalações de postagem, e não um único editor. Eles também exigem integração / configuração potencialmente significativa.

Aqui estão algumas opções (não tenho relacionamento com nenhuma dessas empresas, isso se baseia puramente em minha pesquisa em busca de uma solução semelhante):

Josh
fonte
5

O controle de versão não tem tanto espaço na edição de vídeos, porque é por natureza não destrutivo. No centro de qualquer NLE (editor de vídeo não linear), a saída é na verdade algo conhecido como Lista de Decisão de Edição ou EDL. Isso é extremamente análogo ao histórico do Lightroom, pois esse histórico é um registro de todas as alterações que foram aplicadas em ordem.

NLEs funcionam a partir de clipes de origem. Eles usam os pontos inicial e final desses clipes para colocá-los em uma linha do tempo e, em seguida, os efeitos podem ser aplicados a esses ativos em uma determinada ordem (com base no posicionamento dos efeitos); no entanto, todas essas são decisões de edição e são aplicadas em tempo real ( ou possivelmente renderizado para arquivos de visualização temporários). A renderização final da saída é o resultado da aplicação de toda a EDL aos clipes de origem.

Você pode salvar uma versão do projeto para poder voltar para uma versão anterior da EDL, se desejar, mas isso geralmente não é necessário, a menos que você esteja ramificando intencionalmente para tentar uma abordagem alternativa para editar uma sequência ( nesse caso, uma cópia dessa linha do tempo geralmente é uma opção melhor.)

AJ Henderson
fonte
O que você quer dizer com "não destrutivo" e NLE aqui?
Pacerier 22/10
Um NLE é um editor não linear (nome técnico para a maioria dos softwares de edição de vídeo). Não destrutivo significa que as alterações não resultam na destruição de ativos. Está formando uma lista de alterações a serem feitas, que é basicamente a mesma coisa que o controle de versão faz. Quando você faz alterações no código, isso é destrutivo, porque suas novas alterações destroem as antigas. Com um NLE, todos os seus ativos permanecem inalterados e você está apenas modificando uma lista de seções a serem usadas e filtros a serem aplicados.
AJ Henderson
Então, você quer dizer que podemos dizer ao programa de edição de vídeo "reverter para a versão 2.5", editar abit e dizer "reverter para a versão 7" e ele é capaz de fazer isso?
Pacerier 22/10
1
Não, ele quer dizer que você sempre tem seu vídeo principal. O pressuposto é que reproduzir os efeitos / cortes que você teve anteriormente não é difícil, ou que salvar arquivos de projetos com um VCS seria mais trabalhoso do que apenas reinserir as decisões de edição. Se não for esse o caso, certifique-se de controlar a versão dos arquivos do projeto. Embora sem a capacidade de mesclar alterações de diferentes ramificações, é provavelmente mais útil anotar qualquer número exato de quadro que demorou muito tempo para descobrir que era o lugar certo para um corte, ou algo assim.
31516 Peter
3

Se você ativá-lo nas preferências, o After Effects e o Premiere fazem automaticamente salvamentos incrementais dos arquivos do projeto. preferências de salvamento automático

Esses salvamentos incrementais podem ser usados ​​para reverter para versões anteriores, o que é como uma implementação muito básica do controle de versão (você pode aumentar o número de versões de 5). O FCP possui uma função de "restauração da versão anterior" incorporada, o que é bom para quando gerencia os arquivos do projeto. O After Effects possui (mas o Premiere não possui, vá entender) a capacidade de salvar incrementalmente um projeto. Eu uso isso o tempo todo quando estou fazendo grandes alterações em um projeto e quero poder reverter para o tronco principal, por assim dizer.

Para um controle adicional, você pode imaginar, use o software de controle de versão para gerenciar as pastas em que mantém os arquivos do projeto e salva automaticamente, para que os editores verifiquem as alterações atuais de corte e confirmação, desde que toda a mídia esteja acessível ou copiada centralmente nas máquinas de todos no mesmo caminho relativo. Não permitiria que você misturasse as edições de outras pessoas, como você pode com o código - isso seria um recurso interessante (eu diria que poderia ser implementado com o script extendscript da Adobe, contanto que suas habilidades sejam reescritas) Git ou SVN em Javascript).

stib
fonte
1
Sim, para diferenciar e mesclar, seu VCS precisa entender os arquivos salvos do seu NLE ou o NLE deve fornecer o diff / mesclagem. (por exemplo, dado um programa que pode mesclar alterações em um arquivo de projeto, dado um ancestral comum, acho que você pode configurar o git para usá-lo git mergetool, para poder mesclar commits de árvores contendo arquivos de projeto modificados.)
Peter Cordes
Você pode usar o extendscript para 'salvar' seu projeto atual, obtendo todas as propriedades de todos os itens do projeto e salvando os dados em um arquivo. Mas mesmo para um projeto moderadamente grande que pode levar muito tempo para ser realizado. Se você fez isso, poderá criar um sistema de controle de versão.
stib 4/01
3

Como profissional de vídeo de longo prazo, posso atestar o fato de que a necessidade de uma forma leve, robusta, transparente e aberta de um VCS está muito ausente na maioria dos fluxos de trabalho de mídia. O problema, no entanto, é multifacetado e é cultural e técnico.

Tradicionalmente, trabalhamos em uma fábrica de salsichas, da maneira que um projeto é iluminado de verde a partir do script, move-se para a produção, uma vez embrulhado, ele vai para a pós-produção e, em seguida, uma saída final é entregue ao braço de distribuição que depois desativa as saídas do dispositivo / plataforma .

Atualmente, essa abordagem de fábrica é uma ilusão em que a diferença entre pós-produção e distribuição nunca é clara. Há muitos cortes e edições em diferentes idiomas / mercados, que remontam e remasterizam o formato mais recente, por exemplo. Há a necessidade de acessar as versões finais para fins de marketing ... Como resultado, é essencial não apenas as partes remotas, mas as pessoas que talvez nunca se encontrem para ter um entendimento definitivo catalogado de qual versão elas precisam trabalhar. Isso abrange não apenas as codificações principais, mas todas as versões desse mestre para diferentes mercados, bem como as versões dos ativos que foram usados ​​para criar cada mestre.

Somente agora a comunidade de tecnologia de mídia está envolvida no que realmente é uma versão e ela é debatida regularmente devido à infinidade de diferentes fluxos de trabalho e preocupações. Eu a decomponho como uma versão de trabalho e uma versão de distribuição. Há esforços para remediar isso na distribuição, criando um formato de arquivo que rastreia versões dentro de si (para combater o fato de que existem várias ferramentas, plataformas etc.) - isso é chamado de Interoperable Master Format (IMF) - não deve ser confundido com o banco) e está sendo conduzido pelo SMPTE. O bom disso é que ele está se movendo para fornecer interoperabilidade entre a miríade de sistemas de gerenciamento de ativos digitais (aqueles que querem apoiá-lo) que estão por aí - alguns estúdios que conheço têm sistemas de gerenciamento de ativos que chegam a centenas - isso seria ajudá-los internamente e muito menos para transferências externas. É claro que ele ainda não foi usado em um ambiente de produção, visto que foi projetado como um formato no nível de arquivo (o Netflix agora o utiliza). Também é um arquivo muito robusto, sem uma maneira fácil de criá-lo, a menos que você tenha o capital necessário para investir nas ferramentas. A Netflix lançou um conjunto de ferramentas de código aberto que fornece capacidade de leitura, o que é bom. Também é um arquivo muito robusto, sem uma maneira fácil de criá-lo, a menos que você tenha o capital necessário para investir nas ferramentas. A Netflix lançou um conjunto de ferramentas de código aberto que fornece capacidade de leitura, o que é bom. Também é um arquivo muito robusto, sem uma maneira fácil de criá-lo, a menos que você tenha o capital necessário para investir nas ferramentas. A Netflix lançou um conjunto de ferramentas de código aberto que fornece capacidade de leitura, o que é bom.

Versão de trabalho ou nível de produção, sinto que é necessário fornecer um VCS (como uma forma modificada de git, talvez) que qualquer pessoa possa utilizar, não importa quão grande ou pequeno seja para facilitar o trabalho remoto. Os arquivos de mídia são obviamente muito maiores do que trocar códigos ou bibliotecas, mas as decisões tomadas nesses arquivos são o componente principal. Eu, pelo menos, gostaria de testar o trabalho remotamente via git commit, apenas para evitar as convenções de nomenclatura das convenções de nomenclatura 'file_Final_FINAL_FINAL_MASTER_version3.mxf' que são trocadas.

sserafim
fonte
2

Eu tinha a mesma pergunta, também sendo engenheiro de software por profissão, pensando no trabalho de photoshop.

podemos dizer ao programa de edição de vídeo "reverter para a versão 2.5", editar um pouco e depois dizer "reverter para a versão 7" e ele é capaz de fazer isso?

Descobri que o Photoshop me permite definir uma versão nomeada na história e acho que está salva no arquivo ...? Para revisões (entradas na lista do histórico) que não são nomeadas, os nós são perdidos na exibição quando uma edição é feita em um local anterior (ramificação) e não há reflog exposto.

Novas versões do Premiere parecem ter um registro de histórico semelhante e suponho que esteja evoluindo para a mesma arquitetura interna, onde cada alteração é outra cópia do projeto que compartilha a maior parte das estatísticas com as anteriores. Se o histórico possui pontos de verificação salvos, é muito parecido com um repositório git: cada versão contém referências (compartilhadas) aos elementos subjacentes, até as definições de segmento. Como o vídeo em si não está no arquivo, ele se presta bem ao crescimento de mais e mais versões com pouco aumento de tamanho.

Vi um seminário em que alguém da equipe de desenvolvimento do Photoshop explicou a arquitetura. Parece que as entradas do histórico que você vê são análogas às versões do git, como as exibições do gitk. Nomear a versão é o mesmo que uma tag git. Você pode redefinir a qualquer revisão visível ao apontar para ele, e repor de volta também. Mas fazer qualquer alteração que seja inserida na história é como fazer uma atualização completa (shift ou ctrl F5) - você perde tudo o que não está acorrentado a partir do cabeçalho de ramificação atual ou tag nomeada (mas acho que coisas como referências de origem de clones ainda aponte para a versão agora invisível).

Mas não é isso que estou escrevendo para sugerir. Defino o volume do NAS em que meu projeto reside para fazer uma captura instantânea a cada 3 horas. O Windows tem um mecanismo de ponto de verificação, mas acho que não é configurável; O Mac Time Machine faz algo semelhante.

Em geral, você pode arquivar todas as versões salvas do arquivo e no Premiere que não contém todos os ativos (constantes) importados, portanto, é razoável salvá-los todos, mesmo sem poder usar deltas para salvar apenas o que foi alterado.

Apenas reaprendendo o Premiere e ficando mais agressivo com as tentativas, estou confiante de que posso reverter se, na próxima vez em que trabalhar nele, me arrepender do que fiz ou encontrar uma maneira melhor e querer fazê-lo novamente. Esse é um sistema de versão de revisão eficaz. Ao fazê-lo no NAS, também estou protegido contra um BSOD que destrói todo o projeto ao salvar. :)

atualizar o histórico é de curta duração, o padrão é 32 entradas. Está vazio quando o projeto é carregado. No entanto, o salvamento automático não salva apenas o mesmo arquivo como vemos na maioria dos programas; ao contrário, os numera e os guarda. Portanto, posso ver os registros de data e hora do arquivo e carregar uma cópia mais antiga, o que fornece um histórico de versão de pontos de verificação de 15 minutos. No meu caso, cada arquivo tem 44K, o que não é nada comparado ao tamanho do ativo - é o tamanho de 76 milissegundos de áudio ou 1/7 de um quadro de filmagem de cartão SD da classe 10 .

Se você deseja manter um ponto de verificação com um nome significativo, basta salvar a cópia como. Mas o salvamento automático, definido como uma alta frequência, pode ser usado para revisitar qualquer estado (granulatidade da época) sem planejamento prévio, com pouco esforço.

Uma observação para os não-engenheiros que não estão familiarizados com o controle de versão: além da capacidade de retroceder seu trabalho da maneira óbvia, também costumo usá-lo para verificar o que acabei de alterar ou comparar com o estado antes de iniciar a tarefa atual ou compare com o último verson compartilhado com o grupo.

Como o Premeire agora suporta a abertura de vários projetos no espaço de trabalho, seria possível ter uma configuração de espaço de trabalho de arranjo de janela para comparar duas linhas de tempo. Ou seja, faça um uso mais eficaz de ter essas versões, não apenas para backup. Costumo dizer aos programadores que não usam o git como ele se torna uma ferramenta de uso geral, como um editor de texto.

Gostaria de saber como os cineastas profissionais lidam com o controle de versão, se é algo além de ad-hoc. O design do salvamento automático parece bastante objetivo e a ferramenta de groupware para gravação de scripts integrada possui um rastreamento de revisão visível e explícito.

JDługosz
fonte
0

Ter o controle de versão dos arquivos de vídeo em si é impraticável, porque primeiro, eles são enormes, depois estão em movimento (você preservará todos os quadros?); Terceiro, são imutáveis. Ou seja, os arquivos originais nunca são alterados durante a edição.

Mas o controle de versão para arquivos de projeto faz muito sentido. Atualmente, após cada alteração significativa, crio um novo arquivo de projeto e nomeio-o de forma descritiva - o que fiz, o que adicionei e o que removi. Em essência, eu tenho que manter o histórico manualmente por meio de nomes de arquivos. Ter arquivos de projeto sob controle de versão é uma ótima idéia, por que não pensei nisso antes!

Rusty Core
fonte