O vídeo profissional em Linux explicado de forma simples



INTRODUÇÃO – LEIA ANTES DE CONTINUAR


Texto publicado em abril de 2010.

Trabalhar com vídeo profissional normalmente é sinônimo de trabalhar com prazos e sob pressão. Para assumir compromissos deste tipo com outras pessoas ou empresas, você tem que confiar no seu equipamento. E confiar muito, de olhos fechados. A última coisa que você precisará, às vésperas de entregar o DVD, é descobrir que determinado programa não funciona, ou não possui determinada função. Parece óbvio, não?

A premissa de possuir uma ilha de edição que funcione, curiosamente, é considerada irrelevante pelos espertões do Linux. O conselho do autor deste blog, que é tradutor para o português dos manuais oficiais de quase todos os programas que usamos na cadeia de produção de vídeo em software livre, que edita vídeo exclusivamente em software livre desde 2005 (sejam curtos ou longos, com mais de 90 min), e que editou o primeiro vídeo em alta-definição em Linux no Brasil, é um só: use Debian.

Pessoas de várias partes do país me escrevem dizendo que instalaram Ubuntu, ou Ubuntu Studio. Os dois sistemas operacionais são fantásticos, e os recomendo a todos – exceto quando se trata de editar vídeo profissional. Ambos, bem configurados, funcionam de forma excelente para parte da cadeia de produção, mas não toda. Já vi gente ter de rodar o Cinelerra como root e achar isso normal – não é. O Cinelerra, se usado direito, é um programa extremamente estável e não deve fechar sozinho a cada dez minutos. Já vi gente perder miseravelmente o prazo porque descobriu que alguma versão de determinado programa dava pau por causa de alguma atualização. Portanto, não importa quantas vezes me perguntem, a resposta é sempre a mesma: use Debian.

Para colocar um ponto final na discussão, os primeiros vários vídeos em HDV que editei foram num Debian Sarge 32 bits, em um Pentium 4 HT de 3.2GHz. Eventualmente, atualizei-o para Debian Lenny, mas a CPU continuou a mesma até o segundo semestre de 2009. Menciono isso para destruir a máxima de que ficar atualizando o sistema sempre é fundamental. Essa máxima é comum para usuários de Ubuntu… e de Windows. Para quem edita vídeo em Linux, para quem depende da máquina funcionando, pode-se ficar vários meses sem atualizar o sistema, porque os programas já dão conta do recado há alguns anos! Ou seja: se a máquina está redonda, deixe ela redonda. Simples assim.

Dito isso, este tutorial pressupõe que as leitoras e leitores já possuem familiaridade com a edição de vídeo em Linux. Para saber como usar os programas, consulte os manuais traduzidos, pois eles estão lá para isso. Aqui veremos mais as configurações importantes da cadeia de edição. Em outras palavras, veremos como os programas se interligam para podermos capturar, editar, exportar e dar vazão ao vídeo, seja em DV, seja em HDV.

Atualização de abril de 2013.

Se você está começando agora com edição de vídeos em software livre agora, considere usar o Blender como editor. Ele não precisa instalar, roda em Linux, Mac e Windows e é bastante completo. Mais do que isso, temos pesquisado e desenvolvido em cima da ferramenta, para deixá-la mais completa nesta parte (veja este post de produção e este aqui).


voltar para a home de linux



ANTES DE TUDO: CINELERRA


A primeira coisa que vemos ao abrir o Cinelerra é um erro que diz para executarmos o seguinte comando como root:

echo “0x7fffffff” > /proc/sys/kernel/shmmax

Este erro reaparece a cada vez que reiniciamos o sistema operacional, então vamos eliminar o problema de vez. Abra um terminal como root e edite o arquivo /etc/sysctl.conf:

# gedit /etc/sysctl.conf

Adicione copie e cole o seguinte texto na última linha do arquivo:

kernel/shmmax=0x7fffffff

Salve-o e feche o gedit. Desta primeira vez, para não termos que dar boot, use o comando:

# sysctl -p



A CADEIA DE EDIÇÃO DE VÍDEO EM DV


A cadeia de edição de vídeo em DV pode ser resumida pelo seguinte diagrama:


O importante a se salientar aqui é que a captura do Kino dará origem a um arquivo com codec de vídeo DV (o contêiner pode ser DV ou MOV, tanto faz) e codec e áudio PCM. Este arquivo entra assim no Cinelerra e é assim que de lá sairá, finalizado. Não mexemos nesses formatos.

Se tivermos de utilizar vídeos de outras fontes que não a câmera, o normal é transcodificá-los para DV, usando o FFMPEG:

ffmpeg -i arquivo_de_entrada.xyz -target ntsc-dv -sameq arquivo_de_saida.dv


As configurações do Kino devem ser:

Menu > Editar > Preferências:

  • Aba 1, Padrões: Normalização = NTSC; Áudio = 48khz estéreo; Aspect = (depende da fonte, mas em geral será) 16:9
  • Aba 2, Captura: Tipo de Arquivo = DV Bruto; Auto-dividir arquivos = desabilitado; Colocar código de tempo no nome do arquivo = desabilitado; Escrever cada: 1 Quadro; Quadros por arquivo = 0; Tam. Máximo Arquivo = 0
  • Aba 4, Exibição: Permitir previsão durante a captura = habilitado
  • Aba 5, Áudio: Permitir Saída de Áudio = habilitado

As configurações do Cinelerra devem ser:

Menu > Settings > Format

  • Audio: Samplerate = 48000; Channels = 2
  • Video: Frame rate = 29.97; Width = 720; Height = 480; W Ratio = 1; H Ratio = 1; Color Model = RGBA-8bit; Aspect Ratio = (depende, mas no nosso exemplo será) 16:9

Menu > Settings > Preferences
Aba 1, Playback:

Audio Out
Audio Driver = ALSA; Devide = default
É importante que a saída de seu áudio seja sempre gerenciada pelo Alsa. Em alguns casos, dependendo do computador, o áudio pode ficar fora de sincronia com o vídeo ao escolhermos esta opção. Tente habilitar a função “View follows playback”. Se ela não funcionar, mexa em “Audio offset”, usando valores positivos e negativos para achar a sincronia. Este processo pode demorar um pouco, mas vale saber que embora o Cinelerra passará a ler o áudio com atraso ou adiantamento para sincronizar com o vídeo, isso vale apenas para a exibição dentro do Cinelerra – ou seja, na renderização, o vídeo estará Ok. Finalmente, caso o Cinelerra inteiro trave quando você der um play/pause em algum vídeo, deixe a função “Stop playback locks up” habilitada.

Video Out
Video Driver = X11-OpenGL, X11-XV ou X11 – teste-os nesta ordem e deixe no que funcionar
Aqui, vale mencionar a função “Play Every Frame”. Quando vamos fazer edição em corte seco, ou com poucas transições, esta função pode estar habilitada. Porém, para edições mais pesadas, com muitas trilhas de vídeo, muitos efeitos ou em alta-definição, talvez o computador não acompanhe a carga exigida pelo Cinelerra. Neste caso, desabilitamos esta opção para fazer a edição. Você pode dar um play no vídeo e abrir este menu para ver qual a taxa de quadros por segundo seu sistema está conseguindo reproduzir – ela aparecerá em Framerate achieved. Mas como uma regra geral, se você ficar com preguiça de ter de mudar aqui toda hora, deixe esta opção desabilitada.

Aba 2, Recording:
A função de captura não funciona no Cinelerra, mas é aqui onde está a configuração para a duração-padrão das imagens importadas em um projeto de edição. Se você quiser que uma foto dure 5 segundos (ou mais, ou menos) por padrão na Linha do Tempo ao ser importada, configure-a aqui.

Aba 3, Performance:
Cache Size (MB) = 100 – é seguro aumentar o cache do Cinelerra. Para projetos grandes, isso pode ser uma boa.

Aba 4, Interface:
Time Format: Use Hours:Minutes:Seconds:Frames
Index files go Here – mude o local onde os arquivos de índice do Cinelerra serão armazenados. Esta pasta deve ser limpada de tempos em tempos.
Size of Index File – se você tem um sistema mais atual (geração de processadores a partir dos dual-cores), com um espaço em disco legal, pode acrescentar mais uns dois zeros ao número que estiver aqui. Isso será útil em projetos muito grandes, para o qual devemos ter muitos arquivos de índice grandes relacionados.
Number of Index Files to Keep – aumente este número para 100. Caso você inicie um projeto muito grande, com material bruto muito extenso (como um documentário), considere aumentar este número para 200. O importante não é exatamente o número de arquivos de índice que permitiremos serem salvos na pasta bcast configurada acima (em Index files go Here), mas lembrar de esvaziar esta pasta assim que acabemos os projetos grandes. Já cheguei a trabalhar com uns 20GB de arquivos de índice.

As configurações de Render para DV devem ser:

Menu > File > Render

  • File Format = Raw DV
  • Audio = habilitar Render Audio Tracks
  • Video = habilitar Render Video Tracks
  • Create new files at each label = desabilitado
  • Render range = escolha o que preferir (veja o manual)
  • Insertion Strategy = Insert Nothing



A CADEIA DE EDIÇÃO DE VÍDEO EM HDV (1080i)


A cadeia de edição em HDV é bem mais capciosa, sob vários aspectos.

Quando nos referimos à produção em HDV, estamos falando necessariamente de câmeras que gravam a captura em fitas magnéticas miniDV. No caso de outras câmeras, as que gravam direto num hard-disk, elas normalmente usam codecs muito proprietários e não existem ainda métodos ou programas plausíveis para converter estes arquivos em linux. Cá entre nós, essas câmeras não deveriam ser usadas para nenhum projeto, mas como o mundo é vasto e este pode ser o seu caso, o melhor que você faz é: assuma que se trata de um formato proprietário, abra um Windows e busque na internet algum programa como o Xilisoft HD Video Converter. Ele também é proprietário, então você vai ter de se virar, pois este tutorial não cobre esta parte.

Atualização de julho de 2012.

Este texto, embora escrito no começo de 2010, continua bastante atual e mantenho todas as convicções escritas aqui, inclusive as da Introdução. Porém, há uma atualização importante que merece destaque. Hoje em dia, muitas câmeras usam o formato AVCHD (um h264) ao gravar os arquivos, e gravam direto em uma mídia removível, seja um HD interno, seja um cartão Compact Flash.

Tanto o FFMPEG como o MEncoder conseguem gerar os AVIs com codec MJPEG que precisamos para usar na edição, conforme descrito abaixo. Portanto, não é mais necessário usar o Windows para fazer esta parte do processo, conforme escrito no parágrafo anterior. A recomendação é usar o MEncoder, pois o modo como o FFMPEG faz a conversão escurece o vídeo de forma perceptível.

Merece menção também o fato de que o Blender, cada vez mais uma ferramenta excelente para editar vídeo, consegue ler estes arquivos h264 diretamente.


Uma vez capturado o vídeo da fita magnética, o próprio manual do Cinelerra CV sugere que utilizemos arquivos proxy, para depois editar o XML gerado pelo Cinelerra e, finalmente, renderizemos usando um pipe para MPEG. Não só eu não consegui fazer quase nenhuma dessas coisas funcionar, como descobri um “atalho” para contorná-las e que, de quebra, poupa bastante do tempo de render final.

É importante, porém, entender que um arquivo DV, embora o chamemos de “bruto”, é um arquivo comprimido. O arquivo HDV gravado nas fitas é mais comprimido ainda, no formato MPEG – um formato que utiliza compressão por estimativa temporal. Isso quer dizer que não vamos usar este formato para editar; usaremos um que se comporte como o DV na cadeia de edição DV, e renderizaremos no mesmo formato. Embora o que vou dizer não seja tecnicamente correto, será válido como uma analogia: a idéia é “descomprimir” o arquivo, editá-lo e renderizá-lo “descomprimido”, para termos uma matriz. Ou seja, uma vez capturado o MPEG da câmera e transcodificado, usaremos o arquivo novo para editar e poderemos até apagar o MPEG capturado.

Assim, a cadeia de edição de vídeo em HDV pode ser resumida pelo seguinte diagrama:

Dito isso, vamos à captura. Os parâmetros de captura do dvgrab devem ser:

dvgrab -format hdv -showstatus -csize 0 -s 0 -F 0 -a video_capturado.m2t


Por padrão, o dvgrab limita o arquivo a um número de quadros ou a um tamanho máximo de 1024 MB. Trata-se de um comportamento condenável, pois isso resulta em poucos minutos de vídeo. O programa criará novos arquivos em sequência, sem parar a captura, mas isso pode significar perda de alguns quadros entre um e outro. Os parâmetros acima contornam esta limitação e estabelecem um arquivo sem limites de tamanho ou quadros, além de exibir o status da captura, para monitoramento de quadros descartados (dropped frames).

Conforme mencionado, não usaremos os arquivos M2T para edição. Cabeças-duras descobrirão que o Cinelerra demorará um tempo extremo para renderizar neste formato, nunca chegando a concluir o render, pois o programa morrerá em alguma parte do processo. Usaremos o MEncoder para gerar novos arquivos.

Os parâmetros de transcodificação usados no MEncoder devem ser:

mencoder -mc 0 -noskip arquivo_de_captura.m2t -ovc lavc -lavcopts vcodec=mjpeg:vqscale=1:vqdiff=1:vhq:keyint=15:aspect=16/9:vbitrate=24000000 -vf scale=1440:1080,harddup -oac pcm -o arquivo_para_edicao.avi


É muito provável que utilizemos mais de um vídeo capturado em um mesmo projeto de edição. Portanto, não fará sentido rodar manualmente o MEncoder para cada um dos arquivos capturados. Para isto, use o script abaixo. Copie e cole seu conteúdo no gedit; salve-o como scriptHDV_transcodificar_M2T_em_MJPEG_1440x1080.sh:

#!/bin/sh

#scriptHDV_transcodificar_M2T_em_MJPEG_1440x1080

#Este script cria os arquivos AVI (MJPEG + PCM) que serão
#usados na edição pelo cinelerra na cadeia de edição em HDV.
#Arquivos gerados por este script possuem cerca de 2 vezes
#o tamanho do .M2T original.

echo -e ’33[00;32m criando arquivos MJPEG alta definicao descompactados 33[00;30m’

for i in *.m2t;do

mencoder -mc 0 -noskip $i -ovc lavc -lavcopts vcodec=mjpeg:vqscale=1:vqdiff=1:vhq:keyint=15:aspect=16/9:vbitrate=24000000 -vf scale=1440:1080,harddup -oac pcm -o `basename $i m2t`avi

done

echo -e ’33[00;32m feito! 33[00;30m’


Depois, dê permissão de execução usando o comando:

chmod a+x scriptHDV_transcodificar_M2T_em_MJPEG_1440x1080.sh


Junte todos os arquivos m2t na mesma pasta e copie este script para dentro dela. Execute-o e vá dar uma volta, almoçar, ligar aquela pessoa que você está a fim.

Tecnicamente, esta era a etapa mais difícil, mas o caminho das pedras está aí. Os parâmetros para a edição no Cinelerra serão (sempre que o projeto de edição anterior tenha sido em DV, crie um novo projeto em vez de apenas mudar os parâmetros do projeto atual):

Menu > Settings > Format

  • Audio: Samplerate = 48000; Channels = 2
  • Video: Frame rate = 29.97; Width = 1440; Height = 1080; W Ratio = 1; H Ratio = 1; Color Model = RGBA-8bit; Aspect Ratio = 16:9 (sempre)

As configurações de Render para HDV devem ser:

Menu > File > Render

  • File Format = Microsoft AVI
  • Audio = habilitar Render Audio Tracks; formato Twos Complement
  • Video = habilitar Render Video Tracks; formato JPEG Photo a 85%
  • Create new files at each label = desabilitado
  • Render range = escolha o que preferir (veja o manual)
  • Insertion Strategy = Insert Nothing


Finalmente, uma observação relevante é que o Cinelerra não gravará a informação sobre a razão de aspecto no header do arquivo final renderizado. Ou seja, quando você quiser reproduzi-lo, use o MPlayer mas não se espante que o vídeo estará em 4:3. Você pode informar manualmente este parâmetro para assisti-lo na proporção correta. Para todos os fins, porém, esta falha é irrelevante, uma vez que o render final será nossa matriz, mas não usaremos este arquivo para muitas coisas – seja para gravar um dvd, reexportá-lo para a câmera ou subi-lo na internet, teremos de transcodificá-lo de novo. Aí sim, esta informação deverá estar lá, intacta.



PÓS-EDIÇÃO EM LINUX (DV E HDV)



Uma vez editado, o vídeo deve passar por uma pós-edição antes de ser finalizado. Este processo normalmente constitui em ajustes de cor e contraste, tratamento de áudio e/ou inserção de efeitos 3D. No primeiro caso, os ajustes são feitos no próprio Cinelerra antes da renderização final; no segundo, o áudio costuma ser tratado pela combinação dos programas JACK, Audacity, Ardour e JAMin, e a trilha sonora final é inserida no Cinelerra também antes da renderização final.



Já no último caso (3D), podemos usar dois programas, Blender e Jahshaka (recém rebatizado de Cinefx), sendo o último muito pouco recomendado. Tudo o que o Jahshaka faz, o Blender faz melhor.


Portanto, um fluxo de produção possível seria usar o arquivo exportado do Cinelerra (DV ou AVI, conforme vimos acima) no Blender. Dali, ou renderizamos o vídeo final pelo Blender com todos os efeitos juntos, ou – para poupar uma etapa de reprocessamento do vídeo – usamos o vídeo renderizado pelo Cinelerra como base, mas renderizamos somente os efeitos 3D acrescentados pelo Blender, em arquivos não comprimidos com canal alfa (uma sequência de TGA, por exemplo). Estes arquivos seriam importados no Cinelerra e acrescentados ao projeto que usamos como base para a versão usada no Blender, para o render final.



LEGENDAGEM



Com o vídeo finalizado, uma das etapas possíveis da cadeia de produção é termos de legendá-lo. O melhor programa para sincronizar as falas no linux é o Jubler, que usa o MPlayer como base para a exibição de vídeos e que é capaz, em suas versões mais atuais, de exportar as legendas em formatos compatíveis com o Final Cut, para o caso de um projeto de edição multi-plataforma. Para legendarmos um vídeo, o ideal é que ele esteja já no formato MPEG2 para DVD (veja abaixo).

Com as legendas sincronizadas, há dois destinos possíveis. O primeiro é renderizarmos as legendas (em uma língua, apenas) no próprio vídeo, para que apareçam sempre. Este caso acontece, em geral, em vídeos para internet ou em exibições públicas nas quais queremos ter certeza de que teremos de mexer o mínimo possível no vídeo – para ele, usamos o MEncoder. O segundo destino, mais comum, é usarmos as legendas (podem ser várias) como faixas dentro do próprio MPEG2, em geral para autorarmos DVDs. Este processo é feito com o programa spumux.



PREPARANDO O VÍDEO PARA DVD E UPLOAD


Para subir vídeos na internet, seja para YouTube, Vimeo ou Archive.org, é possível usar a mesma configuração de um vídeo transcodificado para DVD, já que todos estes sites convertem o arquivo para exibi-lo em flash. Desta forma, teremos a garantia de uma boa qualidade de exibição. O custo é a alta banda de internet requerida, pois o MPEG2 para DVD não é um arquivo tão comprimido assim.

Como há muitos tutoriais na internet sobre isso, e todos variam de acordo com as preferências de codecs de seus autores, aqui vamos simplificar e unir as duas coisas. Resta apenas uma observação adicional: o OGG Theora é o codec de vídeo livre, que pode ser usado com o OGG de áudio (também livre). Particularmente, acho-o ainda um pouco precário em relação a outros, mas fica a dica e a informação de que é possível fazer uma cadeia de produção de vídeo exclusiva com codecs livres.

Os parâmetros do FFMPEG para criar arquivos prontos para autoração de DVDs e uploads na internet são (ainda usando a razão de aspecto a 16:9 de nossos exemplos anteriores):

ffmpeg -i arquivo_final.xyz -target ntsc-dvd -aspect 16:9 -b 8000k arquivo_para_dvd.mpg



PREPARANDO UM VÍDEO COMPATÍVEL COM WINDOWS



É comum em freelances e processos de trabalho termos de lidar com pessoas que usem Windows. Mesmo as que te contratarão para fazer vídeos, muito provavelmente não entenderão muito da parte técnica, usarão Windows e acharão absurdo ter de instalar programas como VLC ou MPlayer para assistirem às versões do projeto conforme ele vai ficando pronto, por mais que elas não entendam o porquê o Windows Media Player nunca funciona quando elas precisam dele.

Bom, para essas pessoas – que serão muitas -, podemos transcodificar um arquivo especial, seja para gravar no pen drive, CD ou mesmo subir na internet. Os parâmetros abaixo pressupõem que elas jamais instalaram qualquer coisa na vida e que o Windows esteja funcionando no perfil de usuário iniciante. Em outras palavras, o vídeo funcionará para o Windows Media Player diretamente, sem ter de instalar mais nada:

ffmpeg -i video_inicial.xyz -vcodec msmpeg4 -vtag MP43 -acodec libmp3lame -aspect 16:9 video_para_windows.avi



AUTORAÇÃO DE DVD



O último passo na cadeia de produção de vídeo costuma ser autorar um DVD com menus. A complexidade da estrutura de navegação varia de acordo com cada projeto – há desde projetos que não precisam de menus; há os que precisam apenas de um menu simples e há labirintos de navegação com centenas de menus – já cheguei a ter de fazer um projeto com algo em torno de 100 menus e mais de 2500 botões.

Como exemplo do primeiro, uma vez tínhamos uma performance gravada em três câmeras. A idéia era que os três vídeos passassem sincronizados em três televisores diferentes, em uma galeria. Para isso, autoramos três DVDs sincronizados sem menus, em loop, para serem tocados em três aparelhos idênticos. Os aparelhos eram então plugados em uma tomada com um “T”, e quando o “T” era ligado na tomada, todos os vídeos rodavam ao mesmo tempo.

Enfim, cada projeto possui sua especificidade. A ferramenta que costuma aguentar toda essa bronca no linux é o DVDStyler. Existem outros programas interessantes, como o promissor QDVDAuthor, muito instável e que falha nas horas mais inconvenientes, e o ManDVD, simples e direto, mas nenhum deles acompanha a mistura de praticidade e robustez do DVDStyler.

As versões mais recentes do programa estão começando a abordar a autoração com legendas direto pela interface gráfica, mas ainda pecam na funcionalidade. Esta etapa, atualmente, é melhor realizada com uma mistura do código gerado pelo DVDStyler e a finalização em linha de comando.

Já o melhor reprodutor de vídeo para testar uma autoração de DVDs é, de longe, o Xine (use a interface gráfica chamada Xine-ui). Isso porque ele tem uma função que simula o controle remoto de um aparelho de DVD, fundamental para testar a navegação dos menus, e que nenhum outro programa possui. Além disso, o Xine também mostra o código de línguas para áudio e para a legenda, também bastante importante em projetos mais complexos, com mais de uma trilha de áudio ou legenda.

voltar para a home de linux

Written by qazav_szaszak

16 de abril de 2010 às 16:38

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

%d blogueiros gostam disto: