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

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

我在这里这里找到了两个现有的答案,它们可以处理来自Hero 3相机的MP4文件,但只有在命令中添加-c:a copy(就在输出文件名之前)之后才能正常工作。我还发现第二个版本的质量与链式翻译版本相同,但速度快了约50%。 - Simon
5个回答


这个工具旋转了我的视频,但是画质(分辨率和帧率)下降得非常严重(iPhone .mov文件)。 - Gringo Suave
1转置=现在时钟已经运行,查看我的答案 - Elder Geek

是的,但是你需要在命令中添加一些额外选项才能使其正常工作。转置和垂直翻转/水平翻转应该可以解决问题,但如果你不告诉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设置编码速度,可以选择"slow"、"medium"或"fast"。通过选择较慢的速度,您可以获得更小的文件大小,但会有明显的折衷。您应该调整-codec:v以匹配原始设置。如果您不设置这些选项,将使用默认值,而这些默认值在翻转iPhone视频时效果不佳。

无法识别选项“preset” 无法为选项“preset”设置值“slow” - Karel Bílek
...没有它,我得到了未知编码器 'libx264' - Karel Bílek
1apt-get install libavcodec-extra-53 解决了这个问题。 - Karel Bílek

使用avconv的另一种方法是使用vflip和hflip滤镜。这样可能会更快速且质量更好。
avconv -i video.mp4 -vf vflip,hflip out.mp4

同样的:这个工具旋转了我的视频,但是画质(分辨率和帧率)大幅下降了(iPhone .mov文件)。 - Gringo Suave
1@GringoSuave wcarlson 给了你一个简化的示例,你仍然需要添加所有的 -codec:v ... 和其他标签。 - v010dya

我做了这个:

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

全高清视频,非常出色的效果,质量损失不可察觉。

纯金的avconv版本11.12-6:11.12-1~deb8u9,除了我想要一个90度顺时针旋转之外,所以我用transpose=clock替换了"hflip,vflip" - Digger

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

自从@phoibos对这个问题给出了高质量的答案以来,libav文档发生了一些变化。您可以通过将两个90度的命令链接在一起(用逗号分隔)来避免完全翻转视频,从而将其旋转180度。我使用以下命令实现了这一点:

avconv -i inputfile -vf transpose=clock,transpose=clock outputfile

用于顺时针旋转。

在ffmpeg中,语法是相同的。

ffmpeg -i inputfile -vf transpose=clock,transpose=clock outputfile

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

要逆时针旋转,请将clock替换为cclock

来源:

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

测试在Ubuntu 14.04.5和16.04 LTS上进行。