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


24

我想将视频(mp4)旋转180度,但不希望翻转。是否可以使用avconv做到这一点?


我发现 两个现有的答案是theywork与英雄3相机的MP4文件,但只有在我加入-c:a副本的命令(只输出文件名之前)。我还发现第二个版本的质量难以区分,但是比链式翻译版本快约50%。
西蒙(Simon)

Answers:



15

是的,但是您需要在命令中添加一些其他选项才能使其正常工作。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视频时效果不佳。


Unrecognized option 'preset' Failed to set value 'slow' for option 'preset' 那就是我得到的
KarelBílek'14

...而且没有它,我得到了Unknown encoder 'libx264'
KarelBílek,2014年

1
apt-get install libavcodec-extra-53解决了它
KarelBílek'14

6

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

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

相同:这旋转了我的视频,但是质量下降(分辨率和帧速率)很大(iphone .mov文件)。
Gringo Suave 2014年

1
@GringoSuave wcarlson给了您一个简化的示例,您仍然需要添加所有-codec:v ...和其他标签
v010dya 2014年

1

我是这样做的:

avconv -i invertedOne.mp4 -c:a copy -vf "hflip,vflip" rightOne.mp4

全高清视频,出色的显示效果,但质量损失不明显


1

对于低于14.04或更高版本的avconv或ffmpeg

自@phoibos质量回答此问题以来,libav文档进行了一些更改。通过将2个90度命令链接在一起(以逗号分隔),您可以将视频旋转180度,从而避免完全翻转(通过逗号分隔)

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

顺时针旋转。

在ffmpeg中,语法是相同的。

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

其中inputfile是您支持的输入视频文件,而outputfile是所需的输出文件。

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

资料来源:

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

在Ubuntu 14.04.5和16.04 LTS上进行测试

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.