如何使用 avconv 将视频旋转 180 度

如何使用 avconv 将视频旋转 180 度

我想将视频 (mp4) 旋转 180 度,但不翻转。可以使用 avconv 实现吗?

答案1

使用视频滤镜是可能的transpose。您无法旋转 180 度,但可以旋转 90 度并链接滤镜。

avconv -i video.mp4 -vf transpose=1,transpose=1 out.mkv

参见transpose手册avconv页: http://manpages.ubuntu.com/manpages/quantal/en/man1/avconv.1.html

答案2

是的,但您需要在命令中添加一些其他选项才能使其正常工作。Transpose 和 vflip/hflip 应该可以解决问题,但如果您不告诉 avconv 您想要的更多细节,您可能会得到非常低质量的输出,请尝试:

 avconv -i original.mp4 -vf "hflip,vflip" -codec:v libx264 -preset slow -crf 20 -codec:a copy flipped.mp4

注意-crf选项。该选项设置输出质量。它从 0(无损)以对数方式向上增加。在大多数情况下,您可能需要一个介于 19 和 25 之间的值。-preset设置编码速度,可以是“慢”、“中”或“快”。慢应该可以让您的文件大小更小,但代价显然是不利的。您应该进行调整-codec:v以匹配原始文件。如果您不设置这些选项,您将获得默认值,这在翻转 iPhone 视频时效果不佳。

答案3

avconv 的附加方法是使用 vflip 和 hflip 过滤器。应该运行得更快,质量也更好:

avconv -i video.mp4 -vf vflip,hflip out.mp4

答案4

对于 avconv 或 ffmpeg 14.04 或更高版本

自从 @phoibos 对此问题做出高质量回答以来,libav 文档发生了一些变化。你可以通过将 2 个 90 度命令连接在一起(用逗号分隔)来将视频旋转 180 度,从而避免完全翻转。我使用以下命令实现了此操作

avconv -i 输入文件 -vf transpose=clock,transpose=clock 输出文件

顺时针旋转。

在 ffmpeg 中语法是相同的。

ffmpeg -i 输入文件 -vf transpose=clock,transpose=clock 输出文件

其中 inputfile 是您支持的输入视频文件,outputfile 是您想要的输出文件。

对于逆时针旋转,将clock替换为cclock

资料来源:

https://libav.org/avconv.html#transpose

在 Ubuntu 14.04.5 和 16.04 LTS 上测试

相关内容