我想将视频 (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 上测试