Столкнулся с задачей конвертирования звуковой дорожки в видеофайле в другой формат. Сделать нужно было для винды. Просмотрев несколько программ не нашел нужной. Задача простая: конвертировать любую аудиодорожку в mp3, видео оставить без изменений. Все программы что я смотрел предлагали конвертировать и видео и аудио. Данный вариант увеличивал время конвертирования в разы и был откинут сразу.
Я решил использовать готовое решение - ffmpeg. Под линуксом написать такой скрипт не проблема, а в винде я с таким еще не сталкивался.
Задача:
- конвертировать аудио дорожку в mp3,
- видео оставить без изменений,
- скрипт для винды,
- конвертирование нескольких файлов в очереди.
Получилось следующее решение:
@echo off ECHO ========================= setlocal enabledelayedexpansion set argCount=0 for %%x in (%*) do ( set /A argCount+=1 set "argVec[!argCount!]=%%~x" set "argFex[!argCount!]=%%~nxx" ) echo Number of files to process: %argCount% for /L %%i in (1,1,%argCount%) do ( echo Processfile !argVec[%%i]! cmd /k C:\ffmpeg.exe -i "!argVec[%%i]!" -c:v copy -c:a libmp3lame "C:\convert\!argFex[%%i]!" echo File saved at C:\convert\!argFex[%%i]! ) explorer.exe C:\convert ECHO ========================= PAUSE
Первый цикл проходит по аргументам и записывает их в массив. Во втором цикле происходит непосредственно вызов ffmpeg с нужными парамтрами для конвертирования видеофайла.
По окончанию открывается папка с результатом.
https://gist.github.com/onesixromcom/61b98db3a6ed80d9fa826baf8e087169
Добавить комментарий