2013-05-13 190 views
0

我不是批量編程方面的專家,我的唯一技能是C \ C++。我甚至不知道如何去做這件事。批處理編程循環?

我有一堆像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 2013-05-13 07:03:59

+1

等等,是不是兩套報價互相干擾? – user2033427 2013-05-13 08:46:11

回答

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行嗎?在我看來,你已經省略了輸出文件名的引號。

而另一個問題是你可以數嗎?如果你像你說的那樣,第1部分有27個視頻,第2部分有26個等等,那麼你可能會有27 + 26 + 25 ... 3 + 2 + 1視頻轉換 - 根據我的觀點,這將是378計算 - 更重要的是,批量 - 不是165.

+0

哈哈,是的,我意識到我搞砸了這個命令,但是這是一個模擬命令,看起來像這樣,但它不是真正的命令,我用真名。但第二種方式看起來像我期待的方式。謝謝! – 2013-05-13 15:59:21

+0

噢,這裏有165個視頻,在你的例子中,你可以瀏覽27個部分,我只有6個部分,每部分的視頻數量是多種多樣的。 – 2013-05-13 16:31:32