Пакетная конвертация файлов с помощью ffmpeg

FFmpeg — замечательный инструмент с открытым исходным кодом, которые позволяют записывать, конвертировать и передавать цифровые аудио- и видеозаписи в различных форматах.  Но как и всякий инструмент командной строки он требует определенных знаний и навыков.

Что если необходимо сконвертировать не один файл, а несколько? На помощь придет конвейерная обработка и powershell. Наша задача будет решена всего одной строчкой команд:

dir | foreach-object { $newname = $_.Basename + ".mp4"; ffmpeg -i "$_" -c:v h264 -b:v 3M -c:a mp3 -ab 128k $newname }

То есть мы получаем содержимое директории и отдаем ее дальше на обработку ffmpeg в цикле for.