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ídeocrop
Indica o filtro de recortew, 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, 5pattern_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.