Imagens FFMPEG para tutorial de vídeo

Ffmpeg Images Video Tutorial



Então você está interessado em construir um vídeo baseado em imagens? Os softwares Linux também podem ajudá-lo nessa tarefa, especialmente em uma: ffmpeg.

Se você ainda não conhece, ffmpeg é um software que faz conversão e edição de vídeo e áudio usando filtros. É aquele que suporta o maior número de codecs diferentes. Se você já usou o VLC, sabe um pouco sobre o ffmpeg: o VLC usa o ffmpeg para decodificar o máximo de vídeos possível.







Mas antes de fazer vídeos, preciso te falar alguns conceitos para que você não se perca no caminho.



Não é muito difícil integrar imagens em um vídeo. E há um motivo: os vídeos são baseados em uma série de imagens. Deixe-me explicar.



Um vídeo (mesmo um vídeo do YouTube) é um conjunto de imagens estáticas que muda rapidamente. Em cinemas e cinemas, entre cada imagem há uma imagem preta porque o mecanismo teve que mudar de quadro e era muito lento. Mas não é perceptível ao olho humano porque o mecanismo é rápido o suficiente e por causa de uma ilusão de ótica.





Mas os computadores não têm esse problema. As telas de LCD continuam exibindo a última imagem. De qualquer forma, você pode de fato extrair uma imagem independente de cada imagem de um vídeo. Quando uma imagem vem de um vídeo, é chamada de quadro . Isso é exatamente o que você vê quando pausa um vídeo - e quando você faz isso, os rostos geralmente não parecem bem!

Geralmente, os vídeos dos Estados Unidos contêm 30 quadros por segundo - perceber um pouco. São 1.800 quadros por minuto, 54.000 quadros por meia hora de vídeo ou 108.000 frames por hora . É muito e é assim que às vezes você se pergunta como uma única imagem pode pesar 1 MiB, mas um minuto de vídeo 1080p pode pesar apenas 15 MiB.



O número de fotos por segundo é chamado de taxa de quadros . A 30 quadros por segundo, você muda a imagem a cada 33 milissegundos . Então, concretamente, se você quisesse fazer um minuto de vídeo baseado somente em suas imagens, você precisaria ter 1.800 arquivos JPG ou PNG por minuto.

Isso é útil se você quiser fazer edição de vídeo avançada sem usar ferramentas de vídeo: você só precisa criar imagens para cada quadro com seus efeitos e, em seguida, pode agrupá-los em um vídeo. Mas às vezes você quer que uma imagem estática dure porque, bem, você quer uma imagem estática em vídeo.

Ok, agora, é hora de instalar o ffmpeg.

Instale o ffmpeg no Linux

Dependendo da sua distribuição, a instalação do ffmpeg pode ser fácil ou um pouco complicado . É um software livre com código-fonte disponível publicamente, mas como pode decodificar ou codificar formatos patenteados como MP4, algumas distribuições o excluem de seus repositórios. Por exemplo, no Red Hat Enterprise Linux, CentOS e Fedora, você precisa do RPMFusion por causa das patentes. Além disso, todas as versões do Debian e do Ubuntu anteriores a 16.04 estão distribuindo uma versão falsa do ffmpeg com base em um fork ilegítimo.

Mas antes de se apressar em instalá-lo, talvez a versão certa já esteja instalada? Vamos testar:

$ffmpeg -versão
ffmpegversão X.XXXXXXXX Copyright(c) 2000-2018os desenvolvedores FFmpeg

Se após o copyright você vir os desenvolvedores do FFmpeg, você tem a versão original do FFMpeg, você não precisa fazer nada. No entanto, se você vir:

$ffmpeg -versão
ffmpegversão X.XXXXXXXX Copyright(c) 2000-2018os desenvolvedores Libav

Então isso significa que você está usando um garfo de ffmpeg chamado Libav. Debian e versões anteriores do Ubuntu silenciosamente substituir FFMpeg por Libav. Se ele disser que está obsoleto, ignore-o, isso é enganoso. Se você instalou o fork, é hora de remover sua versão do false ffmpeg e, em seguida, siga o guia abaixo para instalar a versão correta. Provavelmente assim:

$sudo apt-get remove ffmpeg

Então, agora você pode não ter instalado ainda ou você tem a versão errada, é hora de instalá-lo!

No Fedora, Red Hat Enterprise Linux (RHEL) e CentOS, vá para https://rpmfusion.org/Configuration e habilite o repositório RPMFusion grátis em seu computador. Então, se você estiver no Fedora, faça:

$sudodnfinstalar ffmpeg

E para CentOS e Red Hat Enterprise Linux, faça:

$sudo yum install ffmpeg

Isso é tudo para sistemas baseados em Fedora e Red Hat, está instalado.

Em todas as versões do Debian (e todos os derivados) e Ubuntu antes de 16.04, você precisa obter a compilação estática FFMpeg do site oficial. Vamos para https://ffmpeg.org/download.html#build-linux e abaixo Versões estáticas do Linux , Clique em 32 bits e 64 bits para kernel 2.6.32 e superior . Então, abaixo lançamento: X.X.X , baixe o arquivo apropriado, extraia-o e você pode iniciar os executáveis ​​localizados na pasta extraída via CLI.

Para aqueles que usam o Ubuntu 16.04 e superior, é mais fácil, basta fazer:

$sudo apt-get install ffmpeg

Ufa! Finalmente devemos estar prontos para ir! Antes de continuar, teste uma última vez com:

$ffmpeg -versão

ffmpeg versão X.XXXXXXXX Copyright (c) 2000-2018 os desenvolvedores FFmpeg

Crie vídeos de muitas imagens

Então, para o nosso primeiro exemplo, vamos criar um vídeo de Imagens em que cada imagem representa um quadro que será exibido por 33 milissegundos. Deixe-me mostrar primeiro o comando.

** MP4 e H.264 são codecs patenteados, verifique se você tem o direito de codificar com eles. **

$ffmpeg-r: v30 -eu 'Pinguins -% 05d.png'-codec: v libx264-presetmuito devagar
-pix_fmt yuv420p-crf 28 -um 'Penguins.mp4'

OK, então como isso funciona? Para que este comando funcione, você precisa ter muitos quadros, onde cada quadro é um arquivo como Penguins - 00043.png. Este comando combinará todos os quadros em ordem a uma taxa de 30 FPS. Então, Penguins - 00043.png vem antes de Penguins - 00044.png no vídeo e o ffmpeg vai respeitar isso. Portanto, se você tiver 120 quadros, seu vídeo terá 4 segundos de duração.

Existem alguns requisitos sobre formato, largura e altura para os quadros funcionarem. Se você não seguir essas regras, o ffmpeg pode ignorar algumas imagens ou cancelar o processo de criação do vídeo. Então:

  • Todos os quadros em um mesmo vídeo devem compartilhar:
    • Largura altura
    • Profundidade de cor
  • Os frames devem ter um tamanho de vídeo padrão, como:
    • 640 ✕ 360 (360p)
    • 853 ✕ 480 (480p)
    • 1280 ✕ 720 (720p)
    • 1920 ✕ 1080 (1080p)
    • 4096 ✕ 2306 (4K)
  • Prefira quadros em PNG em vez de JPG
  • Evite transparência ou alfa no formato PNG

O comando levará algum tempo para converter o vídeo, otimizar seu desempenho e criar um arquivo MP4 chamado Penguins.mp4.

Agora, você pode querer ter, bem, uma imagem estática restante por mais de 33 milissegundos. Nesse caso, seu vídeo é mais uma apresentação de slides e não é a mesma coisa. Para fazer isso, você pode primeiro fornecer uma taxa de quadros mais lenta para a entrada e então dizer ao ffmpeg para duplicar os quadros na saída. Não, o YouTube e o Vimeo não vão gostar muito de um vídeo de 0,5 FPS, mesmo que você mude sua imagem a cada 2 segundos.

Vamos fazer isso:

$ffmpeg-r: v1/5 -eu 'Pinguins -% 05d.png'-r: v30-codec: v libx264-presetmuito devagar
-pix_fmt yuv420p-crf 28 -um 'Penguins.mp4'

Aqui vamos nós! O ffmpeg fará com que cada uma de suas imagens apareça por 5 segundos, mas em um vídeo de 30 FPS. Não se preocupe com o aviso de frames duplicados: é o que você deseja.

Conclusão

Agora você está - o novo Spielberg - capaz de criar seus próprios vídeos. Você pode fazer uma apresentação de slides simples ou preparar um vídeo quadro a quadro usando um editor de imagens como o GIMP, mas também pode se beneficiar do grande conjunto de efeitos e codecs que pode encontrar no ffmpeg.

Reserve um tempo para experimentar você mesmo - você é um artista, afinal - e crie um vídeo que fará milhões de visualizações no YouTube!