Недавно у меня появилась необходимость быстро конвертировать видео в формат, который делает видео более компактным. Решил конвертировать видео в 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 есть пункт Отправить:
В это меню мы и добавим пункт Конвертировать видео в MP4.
Выделяем созданный нами файл и через контекстное меню создаём ярлык:
Созданный нами ярлык перемещаем в каталог %userprofile%\AppData\Roaming\Microsoft\Windows\SendTo (прямо так в проводнике и указывайте путь):
Теперь можно выбрать любое видео и через контекстное меню запустить конвертацию:
Важно учесть, что в пути к исходному файлу не должно быть пробелов. Пример, который приведёт к ошибке: 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%"
Структура каталогов для этого файла:
В каталог tools помещается CMD-файл и ffmpeg.exe. Исходное видео помещается в корневой каталог (в примере каталог Снимки экрана), туда же и сохраняется конвертированное видео. При запуске скрипта предыдущее видео помещается в каталог arhive. После конвертации исходное видео удаляется.
Данный скрипт можно модифицировать как угодно на своё усмотрение.
Если вам нужна помощь в написании BAT и CMD, то запрашивайте информацию на специализированных форумах. Я с ними работаю редко и только в случае крайней необходимости.