video - 使用 ffmpeg windows explorer 扩展旋转视频
问题描述
我想用这个命令旋转我的 mp4 视频,ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=270 output.mp4
但添加一个名为类似这样的资源管理器扩展名,rotate ccw
这样我就可以右键单击一个名为的文件,即GH010235.MP4
选择该选项并旋转视频,然后将其添加到同一个文件夹中,相同的文件名但是最后添加了 _rotated 所以我会得到 ieGH010235_rotated.MP4
或者,我希望 ffmpeg 处理整个文件夹。它应该查找所有 *.mp4 旋转它们并将它们命名为 *_rotated.mp4 将它们放在同一文件夹或子文件夹 \output 中。如果可能,使用 cmd 而不是 linux、phyton 或 w/e
解决方案
我认为您可能想使用 cmd 因为您在 Windows 上。如果您使用的是 Windows,则可以使用 powershell。因此,我将介绍基于 powershell 的解决方案。
第一个解决方案
您可以为此编写一个 Powershell 函数:
function rotate_ccw {
Param ([System.IO.FileInfo] $inputfile, [System.IO.FileInfo] $outputfile)
ffmpeg -i $inputfile -c copy -metadata:s:v:0 rotate=270 $outputfile
}
调用将如下所示:
rotate_ccs -inputfile input.mp4 -outputfile output.mp4
注意:这个解决方案应该是不言自明的。如果有任何问题,请提出。
第二种解决方案
循环方法的解决方案(也在 powershell 中)是:
ls ./*.mp4 | foreach {ffmpeg -i "$_" -c copy -metadata:s:v:0 rotate=270 "$($_.basename)_rotated.mp4"}
ls ./*.mp4
:列出本地目录中的所有 *.mp4 文件。
<command> | <command>
:所谓的管道操作符从第一个命令获取输出并将其作为输入传递给第二个命令。
foreach {<do your stuff>}
: 自我解释
$_
:这引用了来自 foreach 循环的当前文件。
推荐阅读
- c# - DPSF 粒子生成器的单博游戏问题
- jquery - jQuery 菜单在页面加载时打开和折叠
- r - R 括号问题和简化 CSV 连接的替代方法
- c# - 在 c# 中复制不安全字节 * 缓冲区的最快方法是什么?
- bash - 简单的 bash shell 程序
- javascript - 你如何在反应中分享风格?
- python - Python中的“鸭子打字”也是一种“外观设计模式”吗?
- r - 使用 azuremlsdk 的 azure 机器学习和 R - 支持的 R 版本和 custom_docker_image
- python - 支付计算器 - 不支持的操作数
- javascript - 无法在 AWS EC2 实例上运行基于 NextJS 的节点服务器