Profile picture for Admin

Столкнулся с задачей конвертирования звуковой дорожки в видеофайле в другой формат. Сделать нужно было для винды. Просмотрев несколько программ не нашел нужной. Задача простая: конвертировать любую аудиодорожку в 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

Добавить комментарий

Содержимое данного поля является приватным и не предназначено для показа.
  • HTML-теги не обрабатываются и показываются как обычный текст
 dP   dP   dP  dP    dP  .d888b.  dP  dP 
88 88 88 Y8. .8P Y8' `88 88 88
88 .8P .8P Y8aa8P `8bad88 88 88
88 d8' d8' d8' `8b `88 88 88
88.d8P8.d8P 88 88 d. .88 88 88
8888' Y88' dP dP `8888P dP dP

Введите код, изображенный в стиле ASCII-арт.