2013-05-13 2 views
0

Я не специалист по пакетному программированию, мой единственный навык - в C \ C++. Я даже не знаю, как это сделать.Batch Programming Looping?

Я получил кучу видео, как Video1.mp4, Video2.mp4 (это не их реальные имена, но они имеют номера, указывающие на начало и конец)

В принципе у меня есть этот FFMPEG команду, я могу использовать, чтобы преобразовать все это в соотношении 16:10, который выглядит примерно так:

"ffmpeg -i "Section 1 Video 1.mp4" -aspect 16:10 OutSection 1 Video 1.mp4" 
"ffmpeg -i "Section 1 Video 2.mp4" -aspect 16:10 OutSection 1 Video 2.mp4" 
"ffmpeg -i "Section 2 Video 1.mp4" -aspect 16:10 OutSection 2 Video 1.mp4" 

Теперь вместо того, чтобы писать эту команду снова и снова, есть в любом случае для меня, чтобы заменить номера для действительных переменных ? Я знаю, что раздел 1 заканчивается на видео 27, а раздел 2 заканчивается на видео 26 и т. Д. В принципе, мне нужен цикл для запуска 165 раз, поэтому мне не нужно писать команду 165 раз.

Или это выходит за рамки возможностей простой пакетной программы?

+0

Вызывает ли это решение: http://stackoverflow.com/questions/5642021/batch-process-all-files-in-directory – Stolas

+1

Подождите, не будет два набора котировок мешают друг другу? – user2033427

ответ

0

Ну, конечно, партия может это сделать, реальный вопрос: можете ли вы правильно сформулировать вопрос?

Вот три способа: команда FFMPEG просто эхом. Удалите ECHO для активации.

@ECHO OFF 
SETLOCAL enabledelayedexpansion 
:: way the first 
for /l %%a IN (1,1,27) DO FOR /l %%b IN (1,1,27) DO (
IF EXIST "section %%a video %%b.mp4" ECHO FFMPEG -i "Section %%a Video %%b.mp4" -aspect 16:10 "OutSection %%a Video %%b.mp4" 
) 
ECHO ============================== 
:: Way the second 
for /l %%a IN (1,1,27) DO FOR /l %%b IN (1,1,27) DO (
SET /a total=%%a+%%b 
IF !total! leq 28 ECHO FFMPEG -i "Section %%a Video %%b.mp4" -aspect 16:10 "OutSection %%a Video %%b.mp4" 
) 
ECHO ============================== 
:: Way the third 
FOR %%i IN ("Section * Video *.mp4") DO (
ECHO FFMPEG -i "%%i" -aspect 16:10 "Out%%i" 
) 
ECHO ============================== 

Теперь - вопрос здесь - вы уверены в своей FFMPEG линии? Мне кажется, что вы опустили кавычки вокруг имени выходного файла.

И другой вопрос: можете ли вы посчитать? Если у вас есть, как вы говорите, 27 видеороликов в разделе 1, 26 в 2 и т. Д., То у вас, вероятно, будет 27 + 26 + 25 ... 3 + 2 + 1 видео для конвертирования - и это будет 378 по моему расчет - и, что более важно, пакет - не 165.

+0

Ха-ха, да, я понял, что испортил команду, но это было предназначено как команда макета, похоже, что это, но это не настоящая команда, которую я использовал с настоящими именами. Но второй способ кажется таким, каким я его искал. Спасибо! –

+0

О, и есть 165 видеороликов, и в вашем примере вы делаете это через 27 разделов, где у меня есть только 6 разделов, и количество видеороликов в каждом разделе варьируется. –

Смежные вопросы