答案1
基本上,您只需要查找檔案(將它們儲存在變數中),然後將這些查找到的檔案輸入 FFmpeg。
當然,Windows 的批次語言就足夠了。但由於我對此的熟練程度為零,這裡有一個 PowerShell 腳本:
# Searching for files with the Get-ChildItem cmdlet and saving their relevant properties in an array:
# NOTE: -File will only work with PowerShell-versions >= 3.
[array]$FilesToRotate = Get-ChildItem -Path "C:\PATH_TO_FILES" ((-Filter *.mp4)) ((-Recurse)) -File | ForEach-Object {
# NOTE: This part is a bit tricky - I just added it so I'm able to save the parent-path of each file in an object.
# NOTE: One could also omit the whole ForEach-Object and use the Split-Path cmdlet inside the output-file's specification in FFmpeg's code.
[PSCustomObject]@{
InFullName = $_.FullName
# Will put the output-file in the same folder as the input-file and add "_ROTATION" as suffix in its name.
OutFullName = "$(Split-Path -Parent -Path $($_.FullName))\$($_.BaseName)_ROTATE$($_.Extension)"
}
}
# Processing the files with FFmpeg using PowerShell's Start-Process cmdlet:
for($i=0; $i -lt $FilesToRotate.Length; $i++){
Start-Process -FilePath "C:\PATH_TO_FFMPEG\ffmpeg.exe" -Argumentlist " -i `"$($FilesToRotate[$i].InFullName)`" -c copy -metadata:s:v:0 rotate=<x> `"$($FilesToRotate[$i].OutFullName )`" " ((-Wait)) ((-NoNewWindow))
}
該腳本將運行 FFmpeg您提供的代碼(我沒有檢查它,但您無論如何都可以輕鬆替換它)並將生成的文件保存到名稱後綴為“_ROTATE”的同一資料夾中 - 因此“MyMovie2017.mov”將變為“MyMovie2017_ROTATE.mov”。 (如果您想將它們渲染到一個全新的資料夾,請替換$($FilesToRotate[$i].ParentPath)
為您喜歡的路徑。)
注意:雙括號中的內容(( ))
是可選的:
-Filter
將僅尋址(一種)特定類型的文件,例如 *.mp4 將僅查找 MP4 文件。如果您有不只一種文件類型,但許多文件不需要轉換(例如文字檔),您可以選擇-Exclude
您不想轉換的所有格式,也可以-Include
只轉換那些應該轉換的格式(-Include
就像-Filter
- 它速度較慢,但可以包含多種格式。-Recurse
還將查看子資料夾。您也可以-Depth
與 PowerShell v 5+ 一起使用。-Wait
將一次打開一個 ffmpeg 實例 - 沒有它,所有實例將並行打開。-NoNewWindow
將在 PowerShell 控制台上顯示 ffmpeg 實例的輸出,如果沒有它,ffmpeg 的每個實例都會在新的控制台視窗中開啟。僅有意義-Wait
。
在啟動腳本之前,您必須刪除所有雙括號(如果不需要,也可以刪除它們的內容)。
此外,還需要調整以下內容:
C:\PATH_TO_FILES
顯然,你的文件的路徑。C:\PATH_TO_FFMPEG\ffmpeg.exe
顯然,你的 ffmpeg.exe 的路徑。rotate=<x>
- 您需要將 替換<x>
為90
,180
, 或270
。 (如程式碼來源中所解釋的)
如果有什麼需要更多解釋,我很樂意提供協助。
答案2
一條線解決方案
npx rotate-video --source=source_path --destination=destination_path --extension=MP4 --angel=270
筆記:你需要安裝FFMPEG
先安裝 CLI安裝