Video 使用ffmpeg windows资源管理器扩展旋转视频

Video 使用ffmpeg windows资源管理器扩展旋转视频,video,rotation,mp4,Video,Rotation,Mp4,我想用这个命令旋转我的mp4视频ffmpeg-I input.mp4-c copy-metadata:s:v:0 rotate=270 output.mp4,但是添加一个名为rotate ccw的资源管理器扩展名,这样我就可以右键单击一个名为ieGH010235的文件。mp4选择该选项,它就会旋转视频,然后将其添加到同一文件夹中,相同的文件名,但在末尾添加了_rotated,这样我就可以得到ieGH010235_rotated.MP4 或者,我希望ffmpeg处理整个文件夹。它应该查找所有*.m

我想用这个命令旋转我的mp4视频
ffmpeg-I input.mp4-c copy-metadata:s:v:0 rotate=270 output.mp4
,但是添加一个名为
rotate ccw
的资源管理器扩展名,这样我就可以右键单击一个名为ie
GH010235的文件。mp4
选择该选项,它就会旋转视频,然后将其添加到同一文件夹中,相同的文件名,但在末尾添加了_rotated,这样我就可以得到ie
GH010235_rotated.MP4


或者,我希望ffmpeg处理整个文件夹。它应该查找所有*.mp4 rotate并将它们命名为*\u 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\u ccs-inputfile input.mp4-outputfile output.mp4

注意:此解决方案应自我解释。如果有任何问题,请提问


第二种解决方案 循环方法的解决方案(也在powershell中)是:

ls./*.mp4
:列出本地目录中的所有*.mp4文件

|
:所谓的管道操作符获取第一个命令的输出,并将其作为输入传递给第二个命令

foreach{}
:自我解释

$\
:此引用来自foreach循环的当前文件

ls ./*.mp4 | foreach {ffmpeg -i "$_" -c copy -metadata:s:v:0 rotate=270 "$($_.basename)_rotated.mp4"}