Blog Linux Avante

FFmpeg: Extraia áudio do vídeo no formato original ou converta-o para MP3 ou Ogg Vorbis

4 de novembro de 2019

Este artigo explica como usar FFmpeg para extrair o stream de áudio de um vídeo, seja sem recodificar (mantendo o formato original) ou convertendo o arquivo de áudio resultante em CBR (taxa de bits constante) ou VBR ( taxa de bits variável) MP3 ou Ogg Vorbis.

Para usar os exemplos/comandos FFmpeg abaixo, você precisará ter o FFmpeg instalado em seu sistema. Opcionalmente, instale libmp3lame para converter para mp3 e libvorbis para converter o áudio extraído para Ogg Vorbis.

Para extrair o áudio de um vídeo e manter o formato de áudio original, a primeira coisa que você vai querer fazer é verificar qual é o formato de áudio original para saber qual extensão de arquivo usar, usando ffprobe (parte do pacote FFmpeg) :

Comandos para usar no terminal

ffprobe myvideo.mp4

Substitua myvideo.mp4 pelo nome do arquivo do vídeo (e caminho, se o vídeo não estiver na pasta atual). Perto do final da saída deste comando, você deve ver o fluxo de áudio, por exemplo:

...............
Duration: 00:04:19.47, start: 0.000000, bitrate: 1261 kb/s
Stream #0:0: Video: h264 (Main), yuv420p(tv, bt709, progressive), 1280x720 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 1k tbn, 50 tbc (default)
Metadata:
HANDLER_NAME : VideoHandler
DURATION : 00:04:19.440000000
Stream #0:1(eng): Audio: vorbis, 44100 Hz, stereo, fltp (default)
Metadata:
DURATION : 00:04:19.467000000

Agora que você conhece o formato de áudio original, extraia o áudio do vídeo sem recodificá-lo usando:

Comandos para usar no terminal

ffmpeg -i myvideo.mp4 -vn -acodec copy audio.ogg

Substitua myvideo.mp4 pelo nome do arquivo/caminho do vídeo e audio.ogg pelo nome que deseja usar para o nome do arquivo de saída de áudio e a extensão.

Neste comando, -i é usado para especificar o caminho e o nome do arquivo do vídeo de entrada, -vn pula a inclusão do fluxo de vídeo, enquanto -acodec copy é para copiar o áudio original (sem recodificação).

Extraia apenas uma parte do áudio de um vídeo, usando o mesmo formato de áudio usado pela fonte original:

Comandos para usar no terminal

ffmpeg -i myvideo.mp4 -ss 00:00:00 -t 00:00:00.0 -vn -acodec copy audio.ogg

-ss é o início do carimbo de data/hora de áudio extraído e -t é a duração do áudio.

Por exemplo, para extrair 30 segundos de áudio a partir de 2 minutos no vídeo e usar o mesmo codec de áudio da fonte original:

Comandos para usar no terminal

ffmpeg -i myvideo.mp4 -ss 00:02:00 -t 00:00:30.0 -vn -acodec copy audio.ogg

Como o mp3 não pode conter um stream de vídeo, para extrair o áudio do vídeo e convertê-lo em mp3 basta usar (pule a adição de -vn):

Comandos para usar no terminal

ffmpeg -i myvideo.mp4 audio.mp3

O FFmpeg normalmente detecta automaticamente o formato de saída da extensão que você insere para os arquivos de saída, portanto, especificar o formato/codec não é necessário na maioria dos casos. Mas se você quiser especificar o codec, adicione -codec:a libmp3lame para converter para mp3:

Comandos para usar no terminal

ffmpeg -i myvideo.mp4 -codec:a libmp3lame audio.mp3

Extraia o áudio do vídeo, convertendo o áudio extraído em mp3 e especificando uma qualidade de taxa de bits de áudio constante (CBR):

Comandos para usar no terminal

ffmpeg -i myvideo.mp4 -b:a BITRATE audio.mp3

Substitua BITRATE por estas opções de CBR disponíveis: 8k, 16k, 24k, 32k, 40k, 48k, 64k, 80k, 96k, 112k, 128k, 160k, 192k, 224k, 256k ou 320k.

Extraia o áudio do vídeo, convertendo o áudio em mp3 com codificação de taxa de bits variável:

Comandos para usar no terminal

ffmpeg -i myvideo.mp4 -codec:a libmp3lame -q:a QUALITY audio.mp3

Especifique QUALITY no intervalo 0-9, em que 0 é o melhor, 9 é o pior e 4 é o valor padrão. Uma tabela apresentando cada opção FFmpeg VBR está disponível aqui.

Extraia o áudio de um vídeo, usando Ogg como o contêiner resultante (ele deve detectar automaticamente o Vorbis como o formato de áudio), com taxa de bits variável (VBR):

Comandos para usar no terminal

ffmpeg -i myvideo.mp4 -vn -q:a QUALITY audio.ogg

O intervalo de QUALITY é -1.0 a 10.0, com 10.0 sendo a qualidade mais alta e 3 sendo o padrão (com uma meta de 112 kbps). Consulte esta página para obter detalhes sobre a configuração da qualidade Ogg Vorbis VBR.

No caso raro em que o FFmpeg falha em detectar automaticamente o codec, especifique libvorbis usando -codec:a, assim:

Comandos para usar no terminal

ffmpeg -i myvideo.mp4 -vn -codec:a libvorbis -q:a QUALITY audio.ogg

Em alguns casos, você pode querer converter vários vídeos em lote para áudio. Confira este exemplo de processamento em lote (adapte-o às suas necessidades exatas) em que todos os vídeos mp4 na pasta atual são convertidos para mp3 com um valor de perfil de taxa de bits variável de 3, com o nome do arquivo igual ao original vídeo, mas com mp3 como extensão de arquivo:

Comandos para usar no terminal

for i in *.mp4; do ffmpeg -i "$i" -codec:a libmp3lame -q:a 3 "${i%.*}.mp3"; done

Consulte a documentação do FFmpeg para um uso mais avançado.

Confira a versão original desse post em inglês
Propaganda
Blog Comments powered by Disqus.