答案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))
}
此脚本将使用您提供的代码(我没有检查,但你无论如何都可以轻松替换它)并将生成的文件保存到名称后缀为“_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安装