Razões para editar vídeos na linha de comando.

Certas situações podem parecer coisa de maluco, quando ouvimos pela primeira vez.
Ao olhar por outra perspectiva, é possível descobrir que fazem mais sentido que inicialmente.

O Linux é um ambiente estável, poderoso e amigável para softwares de edição de vídeo.
Algumas ferramentas de edição GUI (interface gráfica) já foram usadas em produções cinematográficas importantes.

E é comum apenas pensarmos em softwares GUI para realizar este tipo de trabalho. Afinal você “precisa ver o que está sendo feito no seu vídeo”, não é?

Uma das maiores justificativas para se usar o ambiente gráfico é o WYSIWYG (What You See Is What You Get), ou seja, “o que você vê é o que vai obter”.
O meu argumento, neste texto, é que se você já sabe de antemão o resultado do procedimento ou deseja ter várias mídias produzidas simultaneamente e rapidamente, a CLI (linha de comando, terminal) é a melhor resposta.

Nem sempre as ferramentas GUI exibem em tempo real os procedimentos aplicados ao seu trabalho. Além disso, elas podem ser bastante lentas — por que toda a interface gráfica do programa está disputando recursos e tempo de processamento preciosos com as tarefas que você precisa realizar.

Ao exportar um arquivo de mídia, fazendo conversão de formatos, usualmente, a interface fica “congelada” na janela da barra de progresso.

A depender da complexidade da tarefa, todo o seu sistema pode ficar indisponível até a devida conclusão da tarefa.

Se eu preciso citar um caso real, lá vai…

Recentemente eu queria obter um trecho de vídeo em câmera lenta. Só que não sabia se o ideal seria 25%, 50% ou algum outro valor intermediário em relação à velocidade original.

Portanto, eu queria 3 amostras de vídeo — inclusive para enviar pelo Telegram e obter outras opiniões.

Queria também reproduzir todos os 3 vídeos simultaneamente, lado a lado, na minha tela, para analisar e, eventualmente, fazer minha escolha.

Geralmente, para produzir 2 (ou mais) vídeos com velocidades de reprodução variadas, em uma ferramenta gráfica, será necessário fazer um de cada vez.

Neste caso, a CLI permite a abertura de vários terminais e você pode executar as tarefas simultaneamente, cada qual em seu terminal.

Na CLI, o seu sistema dificilmente ficará indisponível, enquanto você converte um ou mais vídeos.

É possível criar scripts ou arquivos em lote (batch files) com as sequências de comandos necessárias.

No final, você pode ter inúmeros resultados para analisar detalhadamente e decidir o que te agrada mais — e, se quiser, apagar o restante.

Não precisa ser radical, claro…

Use as duas metodologias para solucionar seus problemas.
Use a GUI aonde sente que ela pode ser mais produtiva. E use a CLI aonde ela couber melhor.

Às vezes a CLI é apenas o jeito mais divertido de executar o trabalho.
E quando a diversão entra por uma porta, a produtividade sai pela janela… sei como é isso. 🙂

Embora eu faça muito pouca edição de vídeo (e nem sou profissional desta área tão fascinante), os 2 casos que citei são aqueles em que (atualmente) mais uso a CLI: aplicar o slow motion em vídeo e fazer a conversão.

Nestes e em muitos outros casos, a CLI me ajuda a obter rapidamente vários arquivos finais — para que eu possa fazer as minhas escolhas.

Como sugestão final, guarde exemplos de comandos em um arquivo texto, que você possa copiar e colar no terminal — fazendo apenas a substituição dos nomes dos arquivos e dos parâmetros de execução dos procedimentos.

Como estabilizar vídeo com o ffmpeg

Estabilização de imagens em vídeo pode ser feita de diversas formas, com diferentes métodos. Às vezes é possível combinar os métodos e estabilização, para obter resultados ainda melhores.
Se for para usar apenas um, o melhor método é aquele feito pelo hardware de filmagem, que compensa as tremidas ou movimentos involuntários da mão de quem está segurando o equipamento.

Ainda assim, ele não é 100% perfeito e pode ser complementado com uma estabilização via software — e é sobre isso que vamos falar neste post.

A estabilização do vídeo pode ser realizada de diversas formas, como afirmei no começo.
Quando ela é mecânica (física):

  1. O sistema (motor) de estabilização pode ficar embutido no corpo da câmera ou filmadora. Neste caso, é comumente chamado IBIS (In Body Image Stabilization, ou estabilização de imagem dentro do “corpo”, em uma tradução livre) ou, ainda, ICIS (In Camera Image Stabilization).
  2. Alguns fabricantes optam por colocar o sistema de estabilização da imagem dentro das lentes, quando se trata de uma câmera profissional que permite a troca deste acessório. O resultado é o mesmo, mas permite vender câmeras mais baratas e os usuários compram lentes estabilizadas apenas se necessitarem.
  3. Existe também a opção de usar estabilização tanto na câmera quanto na lente. Os dois sistemas podem trabalhar em conjunto para obter resultados ainda melhores.

A estabilização por software é muito usada em câmeras mais baratas e em celulares (onde não há espaço para embutir um sistema de estabilização físico).

há também métodos externos bastante eficientes para obter filmes com imagens estáveis e sem tremores indesejados — por exemplo, gimbals, tripés ou apenas apoiar a câmera sobre uma superfície estável.

Neste post, vamos abordar a técnica de estabilização por software. Embora exista programas GUI (de interface gráfica) plenamente capazes de fazer “a mágica”, vamos abordar o procedimento via CLI, com o ffmpeg.

O procedimento é rápido e muito eficiente… mas se você não gosta de digitar comandos, este artigo não é para você.

A estabilização de imagens em vídeo, via software, é realizada através de um corte (cropping), o que vai dar em uma perda na qualidade do resultado final.
Claro que você pode fazer uma estabilização leve e ter menos perda.
Se achar que o impacto na qualidade final da sua filmagem é aceitável, pode optar por uma aplicação mais pesada do recurso.
A escolha é sua.

Equipamento físico usado na minha filmagem

Só por curiosidade, o equipamento usado na minha filmagem é uma câmera Canon T6 (ou 1300D), com uma lente Canon EF-S 55-250mm f/4-5.6 IS STM.

Neste caso, trata-se de uma lente que possui mecanismo de estabilização de imagem.

O problema é que ao usar o extremo da lente, a estabilização nunca é perfeita. E eu achei que poderia obter um resultado ainda melhor se acrescentasse o recurso de estabilização por software ao meu vídeo.

Meu software de estabilização de imagem

Como já ficou claro no título, vamos usar os recursos presentes no ffmpeg, presente na maioria das distribuições Linux e que já tem compilado, dentro de si, a biblioteca para estabilização de imagens de vídeo, libvidstab.

O processo funciona com um recorte na imagem, que cria margem para os lados “absorverem” os movimentos mais abruptos.
O zoom é um dos “efeitos colaterais” do uso deste recurso.

Veja um exemplo de um dos quadros do vídeo original, abaixo:

Imagem original de vídeo ffmpeg
Vídeo original: beija1.mov

Veja um exemplo do mesmo quadro do vídeo após a estabilização:

Imagem de vídeo com estabilização cropada
Vídeo final: beija1-stab.mov

Percebeu a diferença (e o recorte)?. Tenha isso em mente: quanto mais estabilização você aplicar, via software, maior será o recorte da imagem em vídeo.

Como aplicar estabilização de imagem a vídeos com o ffmpeg

A ferramenta de edição e manipulação de vídeos, ffmpeg, possui diversos recursos para melhorar o seu trabalho.
Para obter estabilização, use a opção ‘-vf’ com o parâmetro ‘vidstabtransform’. Veja como é simples.

Para obter melhores resultados, contudo, recomendo rodar primeiro a detecção de estabilização. Com este procedimento, é criado um pequeno arquivo ‘transforms.trf’, no diretório local, em que os parâmetros e as variáveis de trabalho são registradas.

Veja como eu criei um arquivo transforms.trf em relação ao arquivo de vídeo ‘beija1.mov’ (substitua este nome pelo do seu arquivo, aí):


ffmpeg -i beija1.mov -vf vidstabdetect -f null -

Aguarde o andamento do processo e, em seguida, rode o procedimento de estabilização:


ffmpeg -i beija1.mov -vf vidstabtransform=smoothing=30:input="transforms.trf" beija1-stab.mov

Acima, substitua o nome do arquivo final ‘beija1-stab.mov’, pelo que você achar melhor.
Se não ficar satisfeito com o resultado da estabilização, altere o valor de ‘smoothing=30’ para um número mais alto. Tente 60, 120 etc.

Conclusão

Se achar interessante, pressione Ctrl+D para guardar esta página nos seus favoritos, para uma futura referência sobre o assunto.
Para o meu caso, o valor do smoothing mais adequado foi 600. Veja o que é melhor para você aí.

Leia mais dicas:

  1. Dicas de uso do ffmpeg: https://elias.praciano.com/?s=ffmpeg+vídeo
  2. Dicas de edição de vídeo: https://elias.praciano.com/tag/edicao-de-video/
  3. Dicas de edição de imagem: https://elias.praciano.com/tag/edicao-de-imagem
  4. Dicas relacionadas à câmera Canon T6 ou EOS 1300D: https://elias.praciano.com/tag/canon

Conheça esta ferramenta online de conversão de arquivos de imagem RAW.

Com suporte a arquivos RAW produzidos por câmeras das marcas Nikon, Canon, Sony, Fujifilm etc. o site raw.pics.io permite fazer upload de suas imagens originais (em formato RAW), converter e baixar no formato de saída à sua escolha.
Na verdade, o serviço não “converte”, mas extrai as imagens JPEG, já contidas nos arquivos RAW.

A partir daí, você pode baixar neste mesmo formato ou converter para PNG (Portable Network Graphics).
Opcionalmente, o serviço permite também fazer edições básicas online, como você pode ver no decorrer deste artigo e nas imagens ilustrativas.

Existe a versão gratuita (com limite de imagens para trabalhar) e a versão paga e sem limite.
Na versão paga, é possível realizar uma conversão em lote de dezenas de imagens, todas de uma vez, o que pode trazer benefícios profissionais a quem esteja longe do seu computador de trabalho e precisa entregar imagens em JPEG, por exemplo.

Como funciona o raw.pics.io

Acesse o site https://raw.pics.io/ e faça o upload dos arquivos de imagem RAW desejadas.
home page do site raw.pics.io

Também é possível arrastar direto do seu gerenciador de arquivos.
seleção de arquivos no gerenciador de arquivos

Várias imagens podem ser selecionadas para upload, de uma vez só.
Esta possibilidade contribui para agilizar o trabalho.

O app possui um painel à esquerda com opções gerais relacionadas aos arquivos.
tela do site raw.pics.io

No painel direito, a tela principal exibe informações sobre o arquivo, obtidas das meta tags exif.
site raw.pics.io

O aplicativo ainda permite edição online das suas imagens — não é “grande coisa”, mas quebra um galho.
web para edição de imagens online

Preço do serviço

Existe uma cobrança única, para um mês de conversões ilimitadas, de aproximadamente 2 dólares.
Este valor é ótimo para quem só deseja usar o serviço uma vez, por um dia ou algumas semanas.
preço do raw.pics.io
Se você acredita que vai precisar usar o serviço por mais tempo, pode optar pelo pagamento anual que, neste momento, é menos que 20 dólares.

Conclusão

Achei o serviço muito simples de ser usado e muito rápido, mesmo em uma conexão lenta (testei fora do escritório, usando uma conexão 4G do celular).
Com esta possibilidade, não é necessário abrir mão de fotografar em RAW, quando se está viajando e precisa entregar uma grande quantidade de fotos em um formato de leitura mais universal, como é o caso do JPEG.
O valor, pelo uso do serviço durante um mês, também está longe de poder ser considerado absurdo.
O que você acha?

Como o RawTherapee lê imagens RAW

O formato de imagens RAW, embora tenha este mesmo nome para todas as marcas e modelos de câmeras, não segue um padrão aberto, como as imagens PNG.
Cada fabricante faz do seu jeito e é possível encontrar câmeras, da mesma marca, que gravam RAW de maneiras diferentes entre seus modelos.

Ao abrir uma imagem RAW, você irá notar que ela tem aparência diferente e, comumente, piorada — escurecida, menos nítida, apagada, sem contraste, com ruído etc.
A versão em JPEG parece uma obra de arte perto da foto “crua”.
Outros softwares podem exibir, inicialmente, uma imagem crua mais bonita do que o RawTherapee.
Até mesmo a sua câmera, pode exibir, no LCD uma imagem melhor…
De acordo com os desenvolvedores do RawTherapee, há 3 possibilidades aqui:

  1. A sua câmera não lhe mostra os dados RAW reais, quando você está clicando e registrando neste formato.
    O software e a CPU da máquina processam a imagem crua de diversas formas, antes de apresentá-la no visor, junto com o histograma.
    O que é feito durante o processamento das imagens RAW, depende de cada modelo.
    Geralmente, inclui ajustes de tons, saturação, nitidez e redução de ruído.
    Algumas máquinas (principalmente as mais baratas) tendem a aplicar algum tipo de correção à distorção da lente e tentar esconder o efeito da vinheta.
    Outras câmeras, corrigem a exposição (para mais ou para menos, a depender do modelo e da marca).

    O RawTherapee mostra a informação real (nua e crua), contida nos arquivos RAW.
    Isto quer dizer que caberá a você escolher e aplicar os ajustes necessários às suas fotos.
    Eventualmente, o programa poderá aumentar a compensação de exposição, o que irá adicionar ruído automaticamente às suas fotos. Fora deste contexto, o RawTherapee não acrescenta ruído às imagens originais.
    O que acontece é que muitas câmeras aplicam redução de ruído nos arquivos JPEG (à sua revelia), para reduzir o problema, surgido após a compensação de exposição.

  2. Todos os arquivos crus de equipamentos DSLR contém arquivos processados JPEG, incluídos com a mesma resolução com que a imagem foi tirada.
    Por isto é uma perda de tempo e de espaço ajustar a câmera para registrar as fotos nos 2 formatos: JPEG e RAW.
    A depender do modelo de câmera, alguns arquivos RAW contém até 3 arquivos JPEG, diferindo apenas na resolução.
    Por isso, quando você tenta abrir um arquivo RAW, em outro tipo de software de visualização de imagens, ele provavelmente estará a te mostrar um dos JPEG preprocessados e embutidos.
    O seguintes softwares de visualização, muito comuns entre usuários Linux, não têm a capacidade de ler imagens RAW: IrfanView, XnView, Gwenview, Geeqie, Eye of GNOME, F-Spot e gThumb.
    O Shotwell tenderá a exibir o JPEG embutido mas, opcionalmente, pode mostrar e alterar imagens RAW.
    Por fim, a imagem JPEG incluída no arquivo RAW, pode ser diferente da que você obteria se fotografasse apenas em JPEG.
    Faça um teste com a sua câmera para ver se isto ocorre aí.
  3. Dentre os development programs (aplicativos que lêem os dados RAW reais), é comum aplicar algum nível de pré-processamento. O Adobe Lightroom é um exemplo disso.
    Este comportamento pode impossibilitar ao usuário pegar um arquivo totalmente intocado, da câmera.
    O RawTherapee, não “mexe” nas imagens antes de apresentá-las a você.
    Ele é projetado para mostrar a imagem real e crua, deixando para você as decisões artísticas que lhe cabem tomar.
    Se você usar o perfil de pós-processamento “neutro” ou “neutral”, vai poder observar uma imagem sem mosaicos (demoseiced), com o balanco de brancos original da câmera, dentro do espaço de cores de trabalho e sem qualquer outra modificação.

Para prover aos usuários um ponto de partida mais agradável, esteticamente, o programa provê uma coletânea de perfis de pós-processamento, a partir dos quais é possível aplicar uma edição mais avançada.
Nenhum destes perfis padrão, contudo, é concebido para imitar o visual obtido da sua câmera, uma vez que cada equipamento difere do outro (nas suas respostas a cores, nas suas sensibilidades à luz etc.)
Isso também não faria muito sentido, se fosse para, no final, você acabar com uma imagem semelhante a que já obteria se fosse registrar suas fotos em JPEG.

Junte fotos para formar um panorama com o Hugin

O Hugin é um programa que permite juntar fotos tiradas em composição, uma ao lado da outra, para formar uma imagem de panorama.
Neste post, explico como fazer download e instalação do programa para Mac, Windows e Linux.

Essencialmente, o Hugin é um frontend GUI para algumas ferramentas CLI de “panoramização” ou “colagem” de fotos.
Ele junta as imagens tiradas de um mesmo local, sobrepondo suas bordas – aonde encontrar pontos em comum, que possam ser “colados”, para completar uma imagem maior.
Mais do que panoramas, o Hugin pode criar imagens em 360º, como mostra a página do Wikipedia, sobre ele.

Instalação do Hugin

Usuários Windows e Mac, podem fazer o download do pacote de instalação no site oficial: http://hugin.sourceforge.net/download/.

O pessoal do Linux, vai encontrar o pacote de instalação na “lojinha” da sua distro.
Debian Ubuntu Instalar programas

Ao buscar por “hugin”, serão encontradas 3 opções (eu instalei todas):
hugin instalação

Pela ordem em que aparecem, na imagem acima:

  1. Hugin Panorama Creator, é o principal programa, cuja função é “costurar” (to stitch) as fotografias, uma ao lado da outra, para formar a imagem panorâmica.
  2. Hugin Batch Processor, é um utilitário que faz processamento em lote. Útil para realizar grande quantidade de tarefas.
  3. Hugin Calibrate Lens, é outro utilitário que tem a tarefa de ajustar as distorções comuns a qualquer lente de câmera.

Como usar o Hugin

panorama com hugin

A primeira coisa a ser feita é carregar as imagens que irão participar da junção.
hugin selecionar arquivos de imagens

O assistente, permite realizar o trabalho todo em 3 passos.
Eventualmente, você vai precisar arrastar ou mover as imagens para obter um encaixe melhor. Usualmente isto não é necessário.
Durante o processo de colagem, o Hugin faz um bom trabalho e corrige, até mesmo, eventuais distorções das lentes das câmeras.
hugin

Por fim, embora o recurso de panorama esteja presente nos aplicativos de câmera padrão da maioria dos celulares atuais e em algumas câmeras semiprofissionais (bridge cameras), é bom poder contar com o recurso no computador.
Na tela grande do PC, é possível ter mais controle sobre a maneira com que se deseja colar as imagens e o resultado final.
Comparado ao recurso interno de panorama da câmera Fujifilm Finepix SL1000 e do aplicativo de câmera do Google, achei melhores as imagens obtidas a partir do Hugin.
Em parte isto se explica pelo fato de que a capacidade de processamento da CPU do notebook é maior e consegue, entre outras coisas, lidar melhor com a vinheta e a distorção das lentes das câmeras.

Mesmo preferindo usar as soluções embarcadas na própria câmera, tenho que reconhecer quando um software externo pode fazer entregar imagens melhores.

Me conta como você costuma fazer suas colagens e fotos panorâmicas, até agora! 😉

Minha segunda câmera, uma Canon EOS Rebel T6, não dispõe do recurso de panorama embarcado. A falta se explica (acredito) pelo fato de ser um modelo de entrada dentre os equipamentos profissionais da Canon. Ou seja, é um produto voltado a uma clientela que prefere fazer este e outros tipos de tarefas em um PC, onde há mais controle e poder de processamento.