我想創建一個腳本,它會將它在一個文件夾(也掃描子文件夾)內檢測到的任何視頻文件轉換爲相同名稱的.avi文件, ,然後刪除原始文件。我並沒有真正使用cmd來編寫任何程序/腳本,所以我躊躇着我所懷疑的是一些非常簡單的語法問題。創建一個遞歸ffmpeg轉換器
如果有人熟悉編碼和ffmpeg,請指出編碼選項是否錯誤(我現在在黑暗中磕磕絆絆)。
使用this thread,我的東西目前類似工作:
dir/b/s *.(mkv|mp4|m4v|wmv) >listing.txt #Make a list of all the files with certain extensions, for reading.
for /F "delims=;" %%F in (listing.txt) do ffmpeg.exe -i "%%F" -c:v libx264 -preset slow -crf 20 -c:a libvo_aacenc -b:a 128k "%%~na.avi"
#Then to delete original files
for /F "delims=;" %%F in (listing.txt) do del %%F
del listing.txt
的第一個問題我是,我希望能夠與所有常見的視頻類型來填充列表。我在想象cmd有一些類似於perl字符串匹配的語法,例如A(B|C)
會匹配AB和AC,我可以模仿匹配任何視頻文件擴展名? (我已經在上面的代碼中寫了它來說明這一點,但我知道它不起作用)。
我希望這足以試圖說明我在嘗試什麼。
爲什麼AVI而不是像H.264這樣常用的更現代的容器格式如MP4?另外,原生FFmpeg AAC編碼器('-c:aac-strict experimental')在128k時可能比'libvo_aacenc'好。 – LordNeckbeard 2014-11-23 21:05:27
純粹是因爲我想要將這些文件可靠地傳輸到其他設備(即X360),並且它不播放mp4的所有編碼變體,但不包含avi - 至少在我過去的經驗中。 – 2014-11-23 21:18:19