我想使用 Ubuntu 和标准软件包(例如 ffmpeg)将 .3gp 视频文件向任意方向旋转 90 度。最好使用命令行或 Python 脚本。
我怎样才能做到这一点?
答案1
答案2
从命令行使用 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 编码指南如果你想重新编码音频而不是流复制。
答案3
自最初回答此问题以来,libav 发生了一些变化。为了保持最新和实用,我将提供以下内容:
您可以使用转置视频过滤器通过最新版本来实现这一点ffmpeg
。avconv
avconv -i inputfile -vf transpose=clock outputfile
顺时针旋转。
在 ffmpeg 中语法是相同的。
ffmpeg -i inputfile -vf transpose=clock outputfile
在哪里输入文件是您支持的输入视频文件,输出文件是您想要的输出文件。
逆时针旋转时更换钟和时钟
以下是文档的摘录:
‘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.
资料来源:
在 Ubuntu 14.04.5 LTS、Ubuntu 16.04、Ubuntu 18.04 上测试
答案4
我不知道具体有什么区别,但最佳答案 ffmpeg 命令需要很长时间才能在我的计算机上运行才能旋转视频。
另一方面,这个 ffmpeg 命令仅花费大约 7 秒钟来旋转 2gb 的视频文件:
ffmpeg -i input-video.mov -metadata:s:v \
rotate="-90" -codec copy output-video.mov