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) :
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
Você também pode gostar de: Como baixar uma lista de reprodução do YouTube e convertê-la em MP3 usando youtube-dl (linha de comando)
Agora que você conhece o formato de áudio original, extraia o áudio do vídeo sem recodificá-lo usando:
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:
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:
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
):
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:
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):
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:
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):
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:
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:
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.
Esse post foi traduzido do site LinuxUprising.com pela rtland.team.
Confira a versão original desse post em inglês:
FFmpeg: Extract Audio From Video In Original Format Or Converting It To MP3 Or Ogg Vorbis