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

jus*_*nhj 24 ffmpeg command-line ubuntu video-editing

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

我怎样才能做到这一点?

evi*_*oup 21

从命令行,使用 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
Run Code Online (Sandbox Code Playgroud)
  • transpose=1将视频顺时针旋转 90 度;要逆时针旋转,请使用transpose=2。有关更多信息,请参阅转置文档

  • -metadata:s:v rotate=""将删除任何现有的视频流旋转元数据;否则ffmpeg将复制它,这可能会导致您的播放器应用额外的不需要的旋转。

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


Ye *_*ung 11

通过使用VLC,您可以通过转到工具>>首选项来旋转视频...

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

设置您想要的度数后,您可以通过转到工具 > 效果和滤镜 > 视频效果 > 几何...进行旋转。

替代文字

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

  • 我可以查看旋转的视频,但是如何使更改保持不变 (14认同)

Eld*_*eek 8

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

您可以使用最新版本的做到这一点ffmpeg,并avconv通过使用转置视频滤波器。

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. 
Run Code Online (Sandbox Code Playgroud)

资料来源:

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 上测试

  • 感谢您提供最小参数。`ffmpeg` 对我有用(没有尝试 `avconv`) (2认同)

Nif*_*fle 6

Avidemux应该能够做到这一点。

Video->Filters->Rotate(x degrees)->Close那么就做File->Save->Save Video