Удаляем аудиодорожку из mp4 файлов

2015-11-12

Возникла достаточно нестандартная задача - удалить звук из нескольких сотен mp4 файлов. В одном файле это можно сделать тысячью способов, есть куча программ, которые могут распотрошить mp4 контейнер, но что делать если файлов тысячи?

На помощь приходит консольная утилита ffmpeg, как это не странно.
Что бы удалить все аудиодорожки, надо использовать команду -an. Как-то так:
ffmpeg -i input.mp4 -vcodec copy -an output.mp4
-i - указывает исходный файл
-vcodec copy говорит что не надо трогать видео
-an что аудио не нужно
output.mp4 - итоговый файл.

Отлично, но надо как-то подставить 1322 файла (147Gb)! Поможет PowerShell:

$FROMDIR = 'H:\2013\'
$TODIR = 'H:\2013_new'
$FFMPEG = 'H:\ffmpeg\bin\ffmpeg.exe'

$files = Get-ChildItem $FROMDIR -Filter  '*.mp4'

foreach ($file in $files)
{
	$output = $TODIR + '\' + $file.Name

	& $FFMPEG -i $FROMDIR$file -vcodec copy -an $output
}

Запускаем и ждем :)