使用Ubuntu将视频文件旋转90度


19

我想使用Ubuntu,最好使用ffmpeg等标准软件包,以将.3gp视频文件沿任何方向旋转90度。最好是命令行或Python脚本。

我怎样才能做到这一点?


我发现ffmpeg能够做到这一点。参见例如Ubuntu论坛:将视频旋转90度
Simon

Answers:


9

通过使用VLC,您可以转到工具>>偏好设置...来旋转视频。

然后选择“全部”进行显示设置。然后转到:视频>>滤镜>>旋转

设置所需的度数后,可以转到“工具”>“效果和滤镜”>“视频效果”>“几何...”来旋转。

替代文字

我测试过的是mp4,但我相信VLC也可以支持3gp。希望这可以帮助。:)


13
我可以观看旋转的视频,但是您如何继续进行更改
justinhj 2010年


17

在命令行中,使用ffmpeg:

ffmpeg -i input.3gp -filter:v transpose=1 \
-c:v libx264 -preset veryfast -crf 22 \
-c:a copy \
-metadata:s:v rotate="" \
output.3gp
  • transpose=1将视频顺时针旋转90度;使用逆时针旋转transpose=2。有关更多信息,请参见转置文档

  • -metadata:s:v rotate=""将剥离任何现有的视频流旋转元数据;否则ffmpeg将复制它,这可能会导致播放器施加其他不必要的旋转。

  • 有关此处视频编码设置的信息,如果要重新编码音频而不是流复制,请参阅此H.264编码指南AAC编码指南


这将更好地回答该问题,因为它说明了如何使用原始内容中指定的ffmpeg从命令行执行此操作。我认为这个答案应该标记为正确。截至2017年5月,在Fedora 25上,此功能仍然有效,尽管MP4编解码器已弃用消息。
贾斯汀·弗洛里

4

Avidemux应该能够做到这一点。

不要Video->Filters->Rotate(x degrees)->CloseFile->Save->Save Video


2

我解决了一个类似的问题-我将.MOV颠倒了(即旋转180度),我想将其设置为正确。

在我的Ubuntu 14.04系统,我跑了avconv有本质上给出了相同的命令行选项ffmpegevilsoup的答案。显然,它不支持transpose180度旋转选项,因此我做了90度顺时针旋转(即transpose=1)。

当我尝试最少的选项时,我收到一条消息,表示:

encoder 'aac' is experimental and might produce bad results.

Add '-strict experimental' if you want to use it.

并且输出文件的长度为零,因此我添加了-strict experimental

起作用的命令行是:

avconv -i IMG_orignl.MOV -filter:v 'transpose=1' -strict experimental IMG_interm.MOV
avconv -i IMG_interm.MOV -filter:v 'transpose=1' -strict experimental IMG_result.MOV

结果令人满意,并具有无法解释的副作用:

  1. 中间文件比原始文件小约14%。
  2. 结果文件比中间文件小18%,比原始文件小30%。
  3. 结果文件显示缩略图,而原始文件和中间文件仅显示通用图标。

我并不是在抱怨:这些是可取的;我只是不明白他们为什么来...


欢迎来到超级用户。(1)虽然您的答案中的一些背景信息可能会有所帮助,但最好集中精力解决问题。我已经编辑了您的答案以说明问题;如果您认为我的更改太多,请随时对其进行进一步的编辑。(2)答案的显示顺序可能有所不同;最好是明确地确定其他答案,而不要说“高于”。(2½)我希望您完整地介绍了avconv命令行,而不仅仅是与ffmpeg命令的区别。您的答案应该是自给自足的;其他答案可能消失了。(3)祝你好运!
G-Man说'Resstate Monica'15

另外,我假设您说“结果令人满意”是指您的“结果”文件看起来与原始文件一样好。您可能想要明确地说(编辑您的消息)。(此类信息(即,是否丢失了肉眼可见的视频质量)对您的答案很重要,不应在评论中隐藏它们。)此外,我敢打扰,您可以省略引号,只说-filter:v transpose=1 …
G-Man说“恢复莫妮卡”

2

自从最初回答这个问题以来,libav发生了一些变化。为了保持最新和有用,我将提供以下内容:

您可以使用的最新版本ffmpegavconv通过使用转置视频过滤器来完成此操作。

avconv -i inputfile -vf transpose=clock outputfile

顺时针旋转。

在ffmpeg中,语法是相同的。

ffmpeg -i inputfile -vf transpose=clock outputfile

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

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

以下是文档摘录:

‘cclock_flip’

    Rotate by 90 degrees counterclockwise and vertically flip. (default)
‘clock’

    Rotate by 90 degrees clockwise.
‘cclock’

    Rotate by 90 degrees counterclockwise.
‘clock_flip’

    Rotate by 90 degrees clockwise and vertically flip. 

资料来源:

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

https://ffmpeg.org/ffmpeg-filters.html#transpose-1

在Ubuntu 14.04.5 LTS,Ubuntu 16.04,Ubuntu 18.04上进行测试


1
感谢您的最小参数。ffmpeg为我工作(未尝试avconv
Amil Waduwawara

优秀!是的,很多关于的帖子都ffmpef包含很多不必要的参数,谢谢!
马里亚诺·鲁伊斯

@MarianoRuiz很高兴它对您有所帮助。ffmpeg一直在开发中,因此随着时间的推移,情况会发生变化。较之一些较早的答案,存在更简单的方法也就不足为奇了。干杯!
年长者怪杰
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.