Extrair áudio de vídeos com FFMpeg
Imaginem que têm uma diretoria onde têm múltiplos ficheiros, inclusive ficheiros de vídeo e querem extrair o áudio sem fazer encoding para não perderem a qualidade existente
Podem usar este script de powershell para extrair com o ffmpeg o áudio sem encoding.
# Defina as diretorias de input onde estão os ficheiros de video
# e a directoria de output onde quer que fiquem os ficheiros extraidos
$inputDir = "C:\example\input\directory"
$outputDir = "C:\example\output\directory"
# Defina a localização ffmpeg.exe
$ffmpegPath = "C:\path\to\ffmpeg\bin\ffmpeg.exe"
# Ensure the output directory exists
if (-not (Test-Path $outputDir)) {
New-Item -ItemType Directory -Path $outputDir
}
# Lista todos os ficheiros da diretoria com a extenção .mp4, mude para as suas necessidades a
Get-ChildItem -Path $inputDir -Filter "*.mp4" | ForEach-Object {
$inputFile = $_.FullName
$outputFile = [System.IO.Path]::Combine($outputDir, ($_.BaseName + ".mp3"))
# FFmpeg command to extract audio without re-encoding
Start-Process -Wait -NoNewWindow -FilePath $ffmpegPath -ArgumentList "-i `"$inputFile`" -vn -acodec copy `"$outputFile`""
}
Só necessitam de alterar as variáveis para as vossas necessidades:
$inputDir -> com a localização dos ficheiros de vídeo.
$outputDir -> pela localização onde quer os ficheiros de áudio extraído. Esta diretoria tem que existir antes de correr o comando.
$ffmpegPath -> localização onde tem o FFMpeg.exe
Nota – No filtro “*.mp4” faz com o script só use todos os ficheiros com a extensão .mp4. Pode alterar para as suas necessidades. Como exemplo pode ter uma diretoria com múltiplos ficheiros .mov e só queria todos os que tivessem no nome “audio” pode usar no filtro algo como “*audio*.mov” desta forma só estes eram usados para a extração do áudio.
Por vezes pode ser necessário mudar a extensão do output, pois o ffmpeg espera que a extensão do ficheiro de output tenha a designação correta do que está a extrair. Se está a extrair por exemplo audio AAC. A extensão de output deve ter algo como “.aac”. Caso contrário dá erro.
Pode fazer o download do script no GitHub
Espero ter ajudado.
Pode fazer uma doação para ajudar a mater o site, Obrigado!