Áudio e Vídeo

FFMPEG – Receitas Manipulação Áudio e Vídeo

Aqui estão alguns comandos que uso no dia a dia para manipulação de áudio e vídeo. A página principal do projeto FFMPEG tem uma ampla documentação. Aqui separei usos corriqueiros encontrados na internet em www.linhadecodigo.com.br, https://catswhocode.com e http://www.dicas-l.com.br

Conversão de formatos de vídeo

ffmpeg -i origem.mpg -q:v 0 -q:a 0 destino.avi

Entendendo a sintaxe:
-q:v 0 -q:v 0 preserva vídeo original
-q:a 0 -q:a 0 preserva áudio original

Obs: se não usar a diretiva “q:” teremos a saída default que é 64kbps e 200kbps (áudio e vídeo)

Extrair imagens de vídeo

ffmpeg -i origem.mpg -r 1 xxx-%3d.jpeg

Entendendo a sintaxe:
-r 1 extrai uma(1) imagem por segundo
-xxx qualquer prefixo
%3d sequencial de tres casas (001, 002…)

Exibir informações/detalhes do vídeo

ffmpeg -i origem.mp4 -hide_banner

Renderizar sem o audio, apenas video

ffmpeg -i origem.mp4 -an videoMudo.mp4

Como recortar uma parte da imagem no vídeo

ffmpeg -i origem.mp4 -filter:v "crop=w:h:x:y" destino.mp4

Entendendo a sintaxe:
-filter:v Indica o uso de um filtro de vídeo
crop Indica o filtro de recorte
w, h, x e y Largura, altura e coordenadas do video resultante

Dividindo um arquivo de vídeo em dois

ffmpeg -i origem.mp4 -t 00:01:00 -c copy parte1.mp4 -ss 00:01:00 -codec copy parte2.mp4

Entendendo a sintaxe:
-t 00:01:00 -c copy copia do inicio até o primeiro minuto , gerando parte1.mp4
-ss 00:01:00 -codec copy copia da posição minuto um até o final, gerando parte2.mp4

Reduzir tamanho de Vídeo

Este comando permite reduzir em 90% o tamanho dos vídeos. Entradas como .mkv e .mp4, atingem estes patamares. Precisa do ffmpeg instalado.

ffmpeg -i entrada.mkv -vcodec libx264 -crf 20 saida.mp4

Entendendo a Sintaxe:
entrada.mkv, arquivo que será reduzido;
saida.mp4,nome do arquivo que será gerado;
-vcodec libx264 -crf 20 especifica o codec a ser usado e as taxas de compressão;

Recortar áudio de uma parte do Vídeo

Este comando permite extrair o áudio de uma parte do vídeo. Precisa do ffmpeg instalado.

ffmpeg -i entrada.mp4 -ss 00:00:28 -t 00:01:00 -q:a 0 -map a saida.mp3

Entendendo a Sintaxe:
entrada.mp4, arquivo que será reduzido;
saida.mp3,nome do arquivo que será gerado;
--ss 00:00:28 especifica o início do recorte
-t 00:01:00 especifica o final do recorte
-q:a 0 -map a especifica que só o áudio será mantido conforme valores mapeados anteriormente

Gerar vídeo a partir de imagens

ffmpeg -r 5 -pattern_type glob -i 'origem*.jpg' -c:v libx264 saida.mp4

Entendendo a sintaxe:
-r 5 indica o número de imagens a serem apresentadas por segundo, neste caso, 5
pattern_type glob irá ler todos os arquivos em ordem sequencial
-c:v libx264 especifica o formato

Converter um arquivo avi/wav para Mp3

ffmpeg -i origem.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 saida.mp3

Combinar som e vídeo

ffmpeg -i som.wav -i video.avi saida.mpg

Juntar dois vídeos

Existem muitas opções. Esta aqui usa o a ferramenta mkvmerge que oferece outros recursos para trabalhar com videos usando os containers matroska.

mkvmerge -o saida.mp4 video1.mp4 + video2.mp4

Adicionar thumbnail ao vídeo

Você pode obter uma thumbnail do vídeo usando o comando abaixo ou selecionar uma outra qualquer. Importante manter a proporção para ficar ajustada ao vídeo:

ffmpeg -i entrada.mp4 -ss 00:00:01.000 -vframes 1 img_thumbnail.png

Observe que neste caso a imagem foi capturada no primeiro segundo do video 00:00:01.000. Você pode alterar este tempo para pegar outra imagem que considere melhor. A imagem ficará com o nome img_thumbnail.png

Agora vamos colocar a imagem junto ao vídeo usando o comando:

ffmpeg -i entrada.mp4 -i img_thumbnail.png -map 0 -map 1 -c copy -c:v:1 png -disposition:v:1 attached_pic out.mp4

Youtube-dl

Este é um comando de terminal que permite baixar vídeos das redes sociais. Não é restrito ao youtube. Para instalar a versão mais atualizada nas distros like “.deb” o passo a passo é:

sudo apt install python3-pip

pip3 install youtube-dl

sudo ln -s ~/.local/bin/youtube-dl /usr/bin

Outra alternativa é usar:

sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl


sudo chmod a+rx /usr/local/bin/youtube-dl

Doicumentação e outros recursos podem ser encontrados no site youtube-dl

Diminuir Resolução do vídeo

Aqui o comando é bem simples. Você pode especificar largura e altura, ou escolher uma das duas e setar a outra em função da primeira, mantendo a proporção.

No primeiro caso usamos a opção -vf scale=1280:720 (ou qualquer outra proporção desejada).

No segundo caso, usaríamos a opção -vf scale=1280:-1 , que faria com que a largura fosse 1280 e a altura proporcional. O inverso, funcionaria da mesma forma, -vf scale=-1:720 fazendo com que a altura fosse considerada e a largura seguiria a proporção.

ffmpeg -i base.mkv -vcodec libx265 -crf 24 -vf scale=640:480 saida.mkv seria uma opção, acrescentando ainda a compressão (0-51) para reduzir o tamanho do vídeo.