Недавно у меня появилась необходимость быстро конвертировать видео в формат, который делает видео более компактным. Решил конвертировать видео в MP4. Однако специальными редакторами пользоваться не хочется, так как это долго и лениво.

Решил я написать CMD-файл, который с помощью ffmpeg будет быстро конвертировать видео любого формата в MP4 (можно конвертировать и в другие форматы поддерживаемые ffmpeg). Скачать ffmpeg вы можете на официальном сайте разработчиков ffmpeg.org. Из скачанного нам потребуется только файл ffmpeg.exe.

Далее привожу пример CMD-файла с комментариями:

@echo off
rem Данный файл вызывается только из контекстного меню

rem Переменная пути к каталогу куда будут сохраняться сконвертированные видеофайлы (укажите свой путь)
SET video="c:\video"

rem Переменная, которая передаётся параметром данному командному файлу (путь к исходному видео)
set origvid="%1"

rem Переместить предыдущие видео в архив (если нужно)
MOVE /Y "%video%\*.mp4" "%video%\arhive"

rem Форматируем дату и время в формат "20100909_102441", чтобы задавать в имени выходного файла
set dd=%DATE%
set tt=%TIME%

set /a ddd=%dd:~0,2%
IF %ddd% LSS 10 (
  SET day=0%ddd%) else (
  SET day=%ddd%)
set month=%dd:~3,2%
set year=%dd:~6,4%

set /a ttt=%tt:~0,2%

IF %ttt% LSS 10 (
  SET hour=0%ttt%) else (
  SET hour=%ttt%)

SET minute=%tt:~3,2%
SET sec=%tt:~6,2%
rem echo %day% %month% %year% %hour% %minute% %sec%

rem Конвертировать видео
ffmpeg.exe -i "%origvid%" "%video%\video_%year%%month%%day%_%hour%%minute%%sec%.mp4"

rem Открыть каталог с выходным файлом
start "" "%video%"

Сохраняем данный CMD с именем Конвертировать видео в MP4 и помещаем его рядом с файлом ffmpeg.exe. CMD-файл надо запускать с передачей ему в параметрах имени исходного файла видео, который будем конвертировать. Как это сделать?

Все знают, что в контекстном меню проводника Windows есть пункт Отправить:

Конвертирование видео (ffmpeg + CMD)

В это меню мы и добавим пункт Конвертировать видео в MP4.

Выделяем созданный нами файл и через контекстное меню создаём ярлык:

Конвертирование видео (ffmpeg + CMD)

Созданный нами ярлык перемещаем в каталог %userprofile%\AppData\Roaming\Microsoft\Windows\SendTo (прямо так в проводнике и указывайте путь):

Конвертирование видео (ffmpeg + CMD)

Теперь можно выбрать любое видео и через контекстное меню запустить конвертацию:

Конвертирование видео (ffmpeg + CMD)
Конвертирование видео (ffmpeg + CMD)

Важно учесть, что в пути к исходному файлу не должно быть пробелов. Пример, который приведёт к ошибке: C:\video ishodniki\video

Ещё пример CMD-файла, который конвертирует видеофайл, который находится в определённом каталоге. Он может запускаться вручную или автоматически по расписанию. Комментировать его не буду, так как в нём информативные комментарии:

@echo off

rem Переменная пути к каталогу с видео (тут и исходные видео и конвертированные).
SET screen="c:\video "

rem Получить список файлов определённого формата в каталоге (ожидается, что в каталоге один файл)
dir /s /b %video%\*.wmv > "%video%\tools\listwmv.txt"

rem Считать значение пути к исходному файлу из текстового файла в переменную "origvid"
for /F "delims=" %%i in (listwmv.txt) do set origvid=%%i

rem Переместить старые видео в архив
MOVE /Y "%screen%\*.mp4" "%screen%\arhive"

rem Форматируем дату и время в формат "20100909_102441", чтобы задавать в имени выходного файла
set dd=%DATE%
set tt=%TIME%

set /a ddd=%dd:~0,2%
IF %ddd% LSS 10 (
  SET day=0%ddd%) else (
  SET day=%ddd%)
set month=%dd:~3,2%
set year=%dd:~6,4%

set /a ttt=%tt:~0,2%

IF %ttt% LSS 10 (
  SET hour=0%ttt%) else (
  SET hour=%ttt%)

SET minute=%tt:~3,2%
SET sec=%tt:~6,2%
rem echo %day% %month% %year% %hour% %minute% %sec%

rem Конвертировать видео
ffmpeg.exe -i "%origvid%" "%screen%\video_%year%%month%%day%_%hour%%minute%%sec%.mp4"

rem Удалить исходник и текстовый файл
DEL /F /Q "%screen%\*.wmv"
DEL /F /Q "%screen%\tools\*.txt"

rem Открыть каталог с выходным файлом
start "" "%screen%"

Структура каталогов для этого файла:

Конвертирование видео (ffmpeg + CMD)

В каталог tools помещается CMD-файл и ffmpeg.exe. Исходное видео помещается в корневой каталог (в примере каталог Снимки экрана), туда же и сохраняется конвертированное видео. При запуске скрипта предыдущее видео помещается в каталог arhive. После конвертации исходное видео удаляется.

Данный скрипт можно модифицировать как угодно на своё усмотрение.

Если вам нужна помощь в написании BAT и CMD, то запрашивайте информацию на специализированных форумах. Я с ними работаю редко и только в случае крайней необходимости.