GUIA de de ffmpeg | Como baixar, instalar e utilizar o software!

25 de novembro, 2019

foto Xuxa
Xuxa

Informador

Já ouviu falar sobre o ffmpeg mas não sabe por onde começar?

Como usar o ffmpeg

Neste guia, vou explicar como baixar, configurar (no Windows) e usar o ffmpeg para fazer várias operações em imagens, vídeos, áudio com alguns exemplos. O guia não cobre todas as possibilidades pois são muitas, mas as coisas mais comuns. Caso já tenha o ffmpeg, pule para o item 3.

1. Download

1.1. Download da página oficial

Para fazer o download do ffmpeg, entre no site oficial do ffmpeg: https://www.ffmpeg.org/download.html. Clique no logo do Windows como mostrado abaixo:

Após isso essa opção aparecerá, clicando nela você será levado a outro site: https://ffmpeg.zeranoe.com/builds/

O recomendado aqui é escolher a opção 4.2.1 (ou mais recente, que não contenha uma data, igual ao 2019/11/23) na primeira coluna. A opção de cima também é válida, mas por ser uma versão que é feita com as alterações diárias, pode conter bugs.

escolher o Build

Escolha o seu Windows e deixe a opção Static na terceira coluna.

2. Instalação

2.1. Descompactar o arquivo

Estou usando o 7-zip para descompactar (Clique aqui para baixá-lo, pssst, é de graça, parem de clicar naquela tela do WinRAR toda vez 🙊). Como no zip o ffmpeg já vem dentro de uma pasta, vamos entrar dentro dela e descompactar nós mesmos em outra pasta.

tela inicial do 7-zip

Arquivos de dentro da pasta do ffmpeg:

arquivos dentro da pasta do ffmpeg

A sugestão é que seja colocado em um caminho fácil de se chegar, pois precisaremos desse caminho em breve (e, caso não queira usar o PATH, todas as vezes que precisar usar o ffmpeg). Eu, particularmente, coloco o ffmpeg em C:\ffmpeg.

tela inicial do 7-zip

2.2. Facilitar o uso do ffmpeg em qualquer pasta (opcional)

Podemos usar o ffmpeg de qualquer pasta, independente de onde estamos, isso é feito colocando a pasta \bin do ffmpeg no PATH do Windows. PATH é uma listagem de pastas que o Windows sempre procura pelos arquivos se estão disponíveis lá dentro, independente de qual pasta você esteja no momento, então nesse caso, se quisermos usar o ffmpeg em qualquer lugar, é necessário colocar a pasta que contém o executável do ffmpeg no PATH.

Caso não queira, pule para o passo 3. Isso impossibilitará de usar o ffmpeg em qualquer pasta e você sempre terá que ir na pasta do ffmpeg para usá-lo.

Para isso, aperte a tecla Windows para abrir o menu iniciar e digite “environment” (em inglês) ou “ambiente” (em português) e clique em “Edit environment variables for your account” ou “Editar as variáveis de ambiente para sua conta”.

menu iniciar escrito environment ou ambiente

Aqui podemos editar o PATH para incluir a pasta do ffmpeg, clique em PATH na parte de cima da janela e clique em Edit(ar)….

variáveis de ambiente do Windows

Clique em New e uma nova entrada será adicionada à lista, digite o caminho para a pasta onde o arquivo ffmpeg.exe se encontra, ele fica dentro da pasta \bin de onde você descompactou o ffmpeg, nesse exemplo estamos usando C:\ffmpeg\bin.

edição de variáveis de ambiente

Caso a tela de edição seja igual à tela abaixo, adicione um ; no final e digite o caminho completo da pasta da mesma forma que acima: C:\ffmpeg\bin. (Ambos passos são a mesma coisa, a tela de cima é só uma tela mais recente do Windows, e a abaixo versões mais antigas).

edição de variáveis de ambiente antiga

Após adicionar o ffmpeg no PATH, aperte a tecla Windows, digite cmd e dê Enter, o prompt de comando do Windows irá abrir, chamaremos essa janela de terminal.

iniciar com cmd

Para se certificar que a inclusão do ffmpeg no PATH foi feita corretamente, digite ffmpeg e dê enter, várias coisas sobre o ffmpeg deverão aparecer.

terminal executando ffmpeg

Caso tenha dado errado, a seguinte mensagem aparecerá, que significa que o terminal não conseguiu achar o ffmpeg em nenhuma das pastas listadas pelo PATH ou na pasta atual, que é C:\Users\Xuxa.

terminal executando ffmpeg, mas não encontrado

3. Uso

3.1. Comandos básicos de um terminal

Quando você abrir o terminal, como na imagem acima, você vai ver um caminho de pastas a partir de um drive, nesse caso C:\Users\Xuxa. Isso significa que estamos dentro da pasta Xuxa que fica dentro da pasta Users, no drive C:.

Para navegar nessas pastas, usamos alguns comandos basicos, que são:

Comando Descricao Exemplo
X: Troca para outro drive, substitua X por outra letra D: vai para o drive D
dir Lista todas pastas e arquivos da pasta na qual você está dir
mkdir nome Cria uma pasta chamada nome mkdir xuxa cria uma pasta chamada xuxa
cd nome Entra em uma pasta chamada nome, ela já precisa estar criada cd xuxa entra na pasta xuxa
cd .. Volta uma pasta cd .. sai de C:\Users\Xuxa\ para C:\Users
cd Sai de todas as pastas até a letra do drive cd \ sai de C:\Users\Xuxa\ para C:
nome Executa um programa chamado nome ffmpeg executa o ffmpeg, é assim que utilizaremos ele

Caso queira mexer em um arquivo que não esteja na pasta em que o cmd abriu, use os comandos acima para navegar até chegar na pasta desejada.

3.1. Comandos do ffmpeg

Os comandos digitados seguem uma lógica, cada opção além do nome do programa é chamada de parâmetro.

Alguns parâmetros definem propriedades por si só, como o parâmetro de não mostrar as propriedades do ffmpeg todas as vezes que ele for utilizado. (-hide_banner).

Já, em outros parâmetros, são necessários dados adicionais, como para reduzir um video, é necessário definir o tamanho final desejado.

Os parâmetros são sempre especificados com um hífen e o nome da opção, e, no caso de dados adicionais, são digitados após um espaço, fazendo com que aqueles dados pertençam ao parâmetro anterior.

Exemplo: ffmpeg -i entrada.mp4 -ab 320 -vn -f mp3 saida.mp3

-i é o parâmetro que define em qual arquivo o ffmpeg irá trabalhar, então ele precisa de dados adicionais, no caso, é o entrada.mp4.

-ab define o bitrate do mp3 de saída, 320 é o bitrate desejado.

-vn é um parâmetro por si só, portanto não tem nenhum dado após ele, esse parâmetro desabilita o vídeo do arquivo de entrada.

-f define o formato, que é mp3.

e, por último, o nome do arquivo de saída, que é saida.mp3. Esse arquivo será criado na mesma pasta na qual você está no momento. Essa opção não precisa de parâmetro, já que é esperado que você tenha um arquivo de saída, exceto no caso quando você só quer ver as propriedades de um arquivo.

Agrupando visualmente, ficaria assim:

ffmpeg [-i entrada.mp4] [-ab 320] [-vn] [-f mp3] [saida.mp3]

3.1. Propriedades do arquivo

Para ver as propriedades do arquivo usamos:

ffmpeg -i entrada.mp4

propriedades do arquivo

Caso queira mostrar somente as propriedades do arquivo, sem as propriedades do ffmpeg em si, use -hide_banner como um parametro.

ffmpeg -i entrada.mp4 -hide_banner

propriedades do arquivo sem descrição do ffmpeg

3.2. Converter para outro formato

Caso tenha um arquivo video.flv e deseja converter para mp4, use o comando abaixo:

ffmpeg -i video.flv video.mp4

Para listar todos os formatos disponíveis do ffmpeg, use:

ffmpeg -formats

3.3. Cortar partes

Para fazer um recorte do video, -filter:v com crop:

Em largura e altura, substituímos qual a largura e altura finais desejadas.

Em x e y, a coordenada na qual começaremos a contar a largura e altura.

3.3.1 Retângulo no meio do video

ffmpeg -i entrada.mp4 -filter:v "crop=largura:altura:x:y" saida.mp4

Nesse caso, para cortar essa parte da imagem:

ffmpeg -i entrada.mp4 -filter:v "crop=445:360:168:546" saida.mp4

barras VHS

Começando na coordenada 168x546, pegamos 445 pixels de largura e 360 de altura, resultando no corte abaixo:

3.3.2 Referências e possibilidade de se fazer contas

O ffmpeg conta com duas referências do tamanho do video de entrada, in_h para altura e in_w para largura. Podemos usar essas referências para pegar o canto inferior direito do video fazendo algumas contas:

ffmpeg -i entrada.mp4 -filter:v "crop=in_w/2:in_h/2:in_w/2:in_h/2" saida.mp4

Começamos no ponto central da tela (metade de in_w e metade de in_h, e pegamos uma altura e largura correspondente à metade da tela também, resultando no canto inferior direito)

corte 2

3.3.3 Omitindo a coordenada x:y

Quando omitimos a coordenada na qual deseja-se começar o recorte, o próprio ffmpeg calcula onde ficaria a coordenada onde o recorte fica centralizado na tela, ou seja, o recorte abaixo ainda possui metade da largura e altura, mas foi feito de forma que 14 da borda fosse removida, de todos os lados, como se fosse uma moldura.

ffmpeg -i entrada.mp4 -filter:v "crop=in_w/2:in_h/2" saida.mp4

corte 3

3.3.4 Visualizando sem precisar reencodar

Caso necessite visualizar como ficaria o recorte, sem precisar reencodar o video, esperar, testar, etc, o comando ffplay faz exatamente isso:

Nesse caso, para ver como ficaria o resultado do vídeo com o comando de recorte acima, usamos:

ffplay -i entrada.mp4 -vf "crop=in_w/2:in_h/2"

3.4. Extrair audio

ffmpeg -i input.mp4 -vn audio.mp3

-vn - desabilitar gravação de vídeo

Caso precise ser mais específico com o arquivo final de áudio:

ffmpeg -i input.mp4 -vn -ar 48000 -ac 2 -ab 192 -f mp3 audio.mp3

-ar - frequência do arquivo final, geralmente são usados 22050, 44100 e 48000Hz.

-ac - número de canais de áudio.

-ab - bitrate, valores comuns são 128, 192, e 320.

-f - formato do arquivo final, se omitido o ffmpeg tenta chutar o formato correto com base no nome do arquivo de saída, a não ser que você precise de um formato e um codec específico, essa opção quase sempre ficará omitida.

3.5. Mudar a resolução

ffmpeg -i entrada.mp4 -filter:v "scale=x:y" -c:a copy saida.mp4

-c:a - define o codec de áudio que será usado na saída, nesse caso, o áudio será somente copiado.

Exemplo para redimensionar um vídeo para 1280x720:

ffmpeg -i entrada.mp4 -filter:v "scale=1280:720" -c:a copy saida.mp4

O parâmetro -s pode ser usado como abreviação para -filter:v "scale=x:y", observe que usando -s, o divisor entre largura e altura é mudado de : para x.

ffmpeg -i entrada.mp4 -s 1280x720 -c:a copy saida.mp4

3.6. Remover áudio de um vídeo

ffmpeg -i entrada.mp4 -an saida.mp4

-an - Esse parâmetro remove o áudio do vídeo de saída.

3.7. Cortar um vídeo

Para extrair uma parte do vídeo, em segundos, podemos usar alguns parâmetros:

ffmpeg -i entrada.mp4 -t 10 saida.mp4

-t - Aqui especificamos o tempo em segundos, então o vídeo de saída começará no início do vídeo de entrada e ficará com a duração de 10 segundos. O tempo também pode ser especificado no formato hh:mm:ss, hora.minuto.segundo.

Caso precise que o corte comece em outro momento, usamos -ss.

ffmpeg -i entrada.mp4 -ss 15 -t 10 saida.mp4

Nesse caso o vídeo cortado ficará a partir dos 15 segundos do vídeo de entrada até os 25 segundos, pois tem duração de 10 segundos.

Para especificar até onde o corte vai, e não uma duração, usamos -to.

ffmpeg -i entrada.mp4 -ss 15 -to 25 saida.mp4

Os dois últimos comandos são equivalentes, pois ambos cortam o video até os 25 segundos, o primeiro especificando duração e o segundo onde o corte ocorrerá.

4. Todos os comandos do ffmpeg

Este guia cobre algumas das coisas mais comuns de se fazer, manipulando imagens, vídeos e áudio, mas é possível fazer muito mais.

Todos os detalhes podem ser encontrados na documentação do ffmpeg neste link: https://ffmpeg.org/ffmpeg.html.