Guia prático com exemplos de conversão de áudio e vídeo usando o FFmpeg

ffmpeg-linuxdescomplicado-blog

FFmpeg é um excelente framework, de código aberto, completo que lida com arquivos de áudio e vídeo. Em outras palavras, é possível converter um formato multimídia para outro, extrair áudio de um vídeo, compactar um vídeo e até mesmo extrair imagens de um vídeo; e diversas outras coisas… É escrito, principalmente, na linguagem de programação C; juntamente com diversas bibliotecas livres. Sendo assim, resolvi criar um guia prático com exemplos que mostram o poder dessa ferramenta!

FFmpeg

Como dito, o FFmpeg é um framework open source multiplataforma que oferece uma das melhores estruturas para manipulação de dados multimídia (áudio/vídeo) existentes. Pois, ele contém várias ferramentas disponíveis para diferentes tarefas. Por exemplo:

ffplay – um reprodutor de mídia leve que pode ser usado para reproduzir arquivos de áudio/vídeo;
ffmpeg – um conversor para diferentes formatos de arquivo áudio/vídeo;
ffserver – pode ser usado para transmitir streaming ao vivo;
ffprobe – é capaz de analisar stream multimídia.

Assim, com suporte ao Linux, Mac OS X, Microsoft Windows, BSDs, Solaris; o FFmpeg é um framework multimédia capaz de decodificar, codificar, transcodificar, mux, demux, transmitir, filtrar e mais…. Inclusive, ele suporta os formatos áudio/vídeo mais diversos possíveis.

De acordo com a descrição do site oficial, a razão para ter um framework multimídia tão completo é a combinação das melhores opções de software livre disponíveis.

Instalação

Ubuntu

Ubuntu 14.04

Instalação via PPA (recomendado no site oficial). Execute:

sudo add-apt-repository ppa:mc3man/trusty-media
sudo apt-get update
sudo apt-get install ffmpeg gstreamer0.10-ffmpeg

Ubuntu 15.04, 15.10 e 16.04

sudo apt-get update
sudo apt-get install ffmpeg

Debian

Debian Jessie

Adicione ao final do arquivo /etc/apt/source.list:

deb http://www.deb-multimedia.org jessie main non-free
deb-src http://www.deb-multimedia.org jessie main non-free

Execute, como root (observe os dois comandos update):

apt-get update
apt-get install deb-multimedia-keyring
apt-get update

Fedora

Fedora 24:

sudo dnf install http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-24.noarch.rpm
sudo dnf update
sudo dnf install ffmpeg

Fedora 25:

sudo dnf install http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-25.noarch.rpm
sudo dnf update
sudo dnf install ffmpeg

OpenSuse

OpenSuse

Primeiro é preciso configurar o repositório Pacman, conforme sua versão:

sudo zypper ar –refresh “VERSION-URL” packman

“VERSION-URL” – Tumbleweed http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/
“VERSION-URL” – Leap 42.2 http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_42.2/
“VERSION-URL” – Leap 42.1 http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_42.1/
“VERSION-URL” – 13.2 http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_13.2/

Depois, instale:

sudo zypper install ffmpeg

Conversão de áudio e vídeo usando o FFmpeg

ffmpeg

1 – Obter informações avançadas de um vídeo

Para fazer isso, a ferramenta ffprobe deve ser usada. De acordo com a documentação oficial, esta ferramenta reúne informações de streams multimídia e exibe-os de forma legível por um humano (claro, que entenda o assunto):

ffprobe -show_format -show_streams ARQUIVO.mp4

2 – Obter informações sobre o arquivo multimídia

Para obter informações sobre um arquivo (por exemplo, video.mp4), execute o seguinte comando:

ffmpeg -i video.mp4

3 – Extrair o áudio de vídeo MP4

Esse recurso permite salvar o arquivo de áudio de um vídeo MP4:

ffmpeg -i video.mp4 -vn -ab 128 audiovideo.mp3

Onde,

“-i” – significa a inserção do arquivo de entrada;
“-vn” – significa que não inclui o vídeo na saída;
“-ab” – usado para salvar o áudio em 128Kbps – pode ser 256kbps;

4 – Alterar dimensões do vídeo

Nesse exemplo, um vídeo com dimensões 1920×1080 será convertido para um com dimensões de 640×480:

ffmpeg -i video.mp4 -s 640×480 -c:a copy videoalterado.mp4

5 – Extrair uma imagem específica de um vídeo (Thumbnail)

É possível extrair imagem específica de determinado trecho do vídeo:

ffmpeg -i video.mp4 -ss 00:00:14.435 -vframes 1 imagem.png

Onde,

“-i” – – significa a inserção do arquivo de entrada;
“-ss” – tempo em segundos depois do início do vídeo;
“-vframes” – informa a quantidade de frames a serem extraídos. Nesse caso, 1 frame (quadro);

6 – Adicionar imagem de poster para um arquivo de áudio

Muito útil para fazer upload para sites/serviços de streaming de áudio que oferecem esse tipo de recurso:

ffmpeg -loop 1 -i poster.jpg -i audio.mp3 -c:v libx264 -c:a aac -strict experimental -b:a 192k -shortest arquivosaida.mp4

7 – Exportar várias imagens do vídeo

ffmpeg -i arquivo.mp4 imagem%d.jpg

A saída vai ficar assim: imagem01.jpg, imagem02.jpg, imagem03.jpg e assim por diante 😉

8 – Converter várias imagens em um vídeo

Dado um diretório repleto de imagens, com um padrão no nome do arquivo (imagem01.jpg, imagem02.jpg,…), é possível criar um vídeo a partir delas:

ffmpeg -f image2 -i imagem%d.jpg videodeimagem.mpg

9 – Cortar um vídeo em pedaços menores

Dado um vídeo, é possível criar “miniaturas” dele e gerar um novo vídeo:

ffmpeg -i video.mp4 -ss 00:00:45 -codec copy -t 40 videomenor.mp4

Onde,

“-i” – – significa a inserção do arquivo de entrada;
“-ss” – tempo em segundos depois do início do vídeo;
“-t” – duração do vídeo. Nesse caso, 40s;

10 – “Misturar” com um áudio com um vídeo

ffmpeg -i audio.mp3 -i video.avi video_audio_mix.mpg

11 – Verificar qualidade do áudio e vídeo

Para verificar a qualidade técnica do vídeo, use a ferramenta ffplay:

ffplay video.mp4

Um player “simples” de vídeo será iniciado e informações do vídeo serão mostradas no terminal, simultaneamente!

Para verificar a qualidade técnica do áudio:

fplay audio.mp3

12 – Adicionar legenda a um vídeo

Caso possua o arquivo “legenda.srt” de legenda, use o seguinte comando para adicioná-la ao vídeo:

ffmpeg -i video.mp4 -i legenda.srt -map 0 -map 1 -c copy -c:v libx264 -crf 23 -preset veryfast video-legenda.mkv

13 – Cortar aúdio

ffmpeg -ss 00:00:15 -t 45 -i audio.mp3 audiocortado.mp3

14 – Converter vídeo MP4 para AVI

ffmpeg -i video.mp4 video.avi

Ou vice-versa:

ffmpeg -i video.avi video.mp4

15 – Converter um vídeo para outro formato

Para conhecer os formatos suportados pelo ffmpeg, execute:

ffmpeg -formats

Depois, prossiga para a conversão. Seguem alguns exemplos:

MP4/WMV

ffmpeg -ivideo.mp4 -c:v libx264 video.wmv

FLV/MPG

ffmpeg -i video.flv video.mpg

AVI/MPEG

ffmpeg -i video.avi -target pal-dvd -ps 2000000000 -aspect 16:9 video.mpeg

16 – Unir arquivos de vídeo

ffmpeg -f concat -i lista.txt -c copy arquivo.mp4

Onde,

“lista.txt” é o arquivo que contém o caminho de todos os vídeos:

/home/linux10complica/video1.mp4
/home/linux10complica/video2.mp4
/home/linux10complica/video3.mp4

17 – Remover áudio de vídeo

É possível remover o áudio de um vídeo e deixá-lo “mudo”:

ffmpeg -i video.mp4 -an videomudo.mp4

Via | Unixmen | Hongkiat | Tecmint

Ricardo Ferreira

Ricardo Ferreira

Fundador do Linux Descomplicado - LD.

Sempre em busca de novos conhecimentos, preza por conteúdo de qualidade e auto-explicativo. Por isso, persiste em criar um site com artigos relevantes para todos os leitores do Linux Descomplicado!
Ricardo Ferreira

Comentários

comentários


VOCÊ TAMBÉM PODERÁ LER...

  • Willian Eduardo

    Tem algum comando para converter todos os arquivos de uma pasta?