有没有办法更改视频文件的旋转角度?

我有几个视频方向错误,所以我只想纠正它。

#1 楼

如果您要求将视频旋转90º或180º,则应使用avidemux。

sudo apt-get update
sudo apt-get install avidemux



在avidemux中打开视频
选择一个新的视频格式,请不要选择

在“视频”下单击过滤器


选择“变换”并向下滚动,直到看到旋转。
添加它
选择直角
选择预览
确定。


转到文件
保存
保存视频

您就完成了。

评论


不确定我应该选择哪种视频格式?我可以保留原始视频格式吗?

– Dziamid
2012年12月4日上午9:47

我已经使用Apple Quicktime Pro(“ QTP”)在Windows XP中旋转了视频(.MOV)。如果正确完成,文件将在其他Windows机器和我妻子的iMac上保持旋转状态,但在使用Kubuntu 12.04.1的Dragon Player(“ DP”)中显示为未旋转状态。 DP并没有声称自己是“简单”播放器,但我怀疑问题在于QTP旋转文件的方式只能在QT中访问。 Avidemux会做得更好吗?

–WGCman
2012年12月9日,12:14

确切地说,“选择一种新的视频格式而不选择复制”是什么意思?

–杰夫·特鲁尔
2014年7月6日下午4:57

呼应@JeffTrull,您可以详细说明这些步骤吗?我发现“点击过滤器”的意思是“从菜单中选择视频→过滤器”,但是它说“要应用过滤器,必须对视频进行转码”……无论如何……

–迈克尔·谢珀(Michael Scheper)
15年4月28日在4:38

可悲的是,“ avidemux”不再存在于标准仓库中。

–塞林
17-10-24在4:13

#2 楼

您还可以使用ffmpeg和命令行(摘自使用FFmpeg旋转视频):


顺时针旋转90:

ffmpeg -i in.mov -vf "transpose=1" out.mov


对于转置参数,您可以传递:

0 = 90CounterCLockwise and Vertical Flip (default) 
1 = 90Clockwise 
2 = 90CounterClockwise 
3 = 90Clockwise and Vertical Flip



并水平翻转(ffmpeg文档):


水平翻转输入视频。

例如,使用`ffmpeg'水平翻转输入视频:

ffmpeg -i in.avi -vf "hflip" out.avi



Nota bene 1

旧版本的Ubuntu提供了avconv而不是ffmpeg。在这种情况下,只需将ffmpeg更改为avconv

avconv -i in.mov -vf "transpose=1" out.mov


Nota bene 2

如果输出是.mp4视频,则必须在前面添加strict -2输出文件以避免错误消息:

ffmpeg -i in.mp4 -vf "transpose=1" -strict -2 out.mp4


评论


-sameq并不意味着“相同的质量”,它实际上是一个非常有限的选项,几乎从不实际使用,并且由于其名称引起混乱,因此已从ffmpeg的最新版本中删除。

– evilsoup
2013年9月16日上午9:14

@evilsoup谢谢您的评论。我已经撤消了更改。但是,可以提供一个更好的链接:trac.ffmpeg.org/wiki/…',它来自ffmpeg网站本身。

– Alaa Ali
2013年9月17日下午4:29

N.B. ffmpeg已被弃用,而转而推荐给avconf“ ***该程序已被弃用***该程序仅出于兼容性目的而提供,将在以后的版本中删除。请改用avconv。”请参阅avconv的答案:askubuntu.com/questions/269429/…

– Sparhawk
2014年2月10日下午6:50

@Sparhawk你是对的---但是ffmpeg似乎有机会卷土重来。 lwn.net/Articles/607591 ;-)

–罗马诺
2014年9月8日上午9:37

要添加到您的答案中(也许某些人可能会觉得有用):要使用ffmpeg旋转x264视频,我必须明确指定编解码器/库:ffmpeg -i in.mp4 -vcodec libx264 -vf“ transpose = 2” out。 mkv。如果显示未知编码器libx264,则需要安装适当的libavcodec-extra软件包。

– Balu
2015年11月5日14:00

#3 楼

您是说在播放时旋转还是将其转换为旋转版本?

作为命令行用户,我通常使用mplayer:

播放:
mplayer -vf rotate=1 videofile.mp4
(旋转的值可以从0到7,1顺时针旋转90度)

转换(需要转码):
mencoder -vf rotate=1 videofile.mp4 -oac copy -of lavf -lavfopts format=mp4 -ovc lavc -lavcopts vcodec=mpeg4 -o newfilename.mp4
(您也可以使用其他视频编解码器,只是一个例子)

下面是一个图形工具来完成后者:kdenlive(来自宇宙的kde应用程序)


将视频导入为剪辑
将剪辑绘制到时间轴中
右键单击时间轴中的视频块
选择“添加效果”->“裁剪和变换”->“旋转(可关键帧)”
可以在窗口的中央上部配置效果,将X设置为900(即顺时针旋转90度)
渲染项目(在主菜单中选择“项目”->“渲染”)
请谨慎选择最终纵向格式的视频分辨率
选择您喜欢的任何视频编解码器,我建议使用x264或vp8(我们bm)


评论


转换为旋转形式。

–贝内特
2012年10月26日16:46

出于好奇:您到底使用了mencoder还是kdenlive?网上有很多文档可以用来调整Mencoder选项。还有一些关于“完美的Mencoder命令行”(TM)的建议,其中大多数都很好。

–PaulHänsch
2012年10月27日13:01

如果要旋转180度,则必须同时使用选项flip和mirror,因此mplayer -vf flip,mirror videofile.mkv

–erik
17年1月20日在16:40

@erik很好的提示。但是很奇怪,当我使用mplayer -vf flip播放视频时,镜像一切正常。但是当我尝试使用mencoder -vf flip,mirror对其进行转换时,它仍然旋转了90°。 Mencoder将视频翻转180°是否有其他语法?

–Würgspaß
18年8月2日在17:11

#4 楼

如果您只想以不同的方向观看电影,从图腾3.1.4开始(在Raring 13.04及更高版本中),可以使用“旋转插件”,将其打开(编辑/插件),然后旋转例如。通过ctrl-r。

当存在旋转元数据时,我认为适当的旋转应该是自动的,我在这里评论了一个相关的图腾错误:Bug 701950 – Iphone电影

那里也是在mplayer中执行此操作的方法(并使用Mencoder转换为旋转的影片),例如

 mplayer -vf rotate file.mov




 mencoder file.mov -oac lavc -ovc x264 -vf rotate=1 -o file-rotated.mov


评论


我发现它只能旋转90度,但可以通过翻转和镜像进行各种组合。要获得180度的旋转,我必须运行mplayer -vf rotation = 1,rotate = 1 file.mp4,即连续两个90度旋转。

–松脆
20-11-22在4:46

#5 楼

最好的选择(我认为!)是OpenShot,只需执行以下简单步骤即可:


启动OpenShot
在“文件”选项卡上,导入需要旋转的视频文件
将导入的视频拖到底部的时间轴字段中(任何一个都可以!)。
一旦视频剪辑位于时间轴字段中,请右键单击它并选择旋转到
角度
,然后在“文件”选项卡上选择“导出视频”并为其设置首选的格式和位置
!并保存!就这样


评论


您并没有真正解释如何实际旋转它。请编辑您的答案并添加该信息。

–迈克·麦克
13年11月13日在7:20

不,它旋转视频,但保持纵横比垂直,使视频裁剪并保持正方形

– Magnetic_dud
15年3月4日在9:16

#6 楼

从横向旋转到纵向时,OpenShot会裁剪视频。为了弥补这一点,我尝试了这些步骤,但效果很好。希望它也对您有用。


将视频放在轨道上,右键单击并选择属性
在“视频”选项卡下,取消选中“保持宽高比”和“拉伸全屏”
在视频下选项卡,将90沿顺时针方向旋转,或将-90沿逆时针方向旋转
在“布局”选项卡下,将“单击开始”和“剪辑结束”的宽度%减小至较低的值(例如70)。该值应取决于拍摄的纵横比,因此请尝试。我的是16:9,值70很好。

这样,您会发现视频裁剪得最少,并且不会引起注意。

#7 楼

Transmageddon是一种也可以旋转的简单工具。使用

sudo apt install transmageddon

安装,然后将文件加载到其中并选择旋转位置



评论


相同的编解码器,但是输出文件变得小10倍以上……是因为质量下降吗?

– HEKTO
20-1-19的3:11

这是最好的答案。而HEKTO,输出的质量取决于您选择的输出格式和编解码器。

–Nav
20年7月14日在4:38

ModuleNotFoundError:没有名为“ gi”的模块

– rclyde
20 Nov 17 '14:17