我想使用Ubuntu,最好使用ffmpeg等标准软件包,以将.3gp视频文件沿任何方向旋转90度。最好是命令行或Python脚本。
我怎样才能做到这一点?
我想使用Ubuntu,最好使用ffmpeg等标准软件包,以将.3gp视频文件沿任何方向旋转90度。最好是命令行或Python脚本。
我怎样才能做到这一点?
Answers:
通过使用VLC,您可以转到工具>>偏好设置...来旋转视频。
然后选择“全部”进行显示设置。然后转到:视频>>滤镜>>旋转
设置所需的度数后,可以转到“工具”>“效果和滤镜”>“视频效果”>“几何...”来旋转。
我测试过的是mp4,但我相信VLC也可以支持3gp。希望这可以帮助。:)
在命令行中,使用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编码指南。
我解决了一个类似的问题-我将.MOV颠倒了(即旋转180度),我想将其设置为正确。
在我的Ubuntu 14.04系统,我跑了avconv
有本质上给出了相同的命令行选项ffmpeg
中evilsoup的答案。显然,它不支持transpose
180度旋转选项,因此我做了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
结果令人满意,并具有无法解释的副作用:
我并不是在抱怨:这些是可取的;我只是不明白他们为什么来...
avconv
命令行,而不仅仅是与ffmpeg
命令的区别。您的答案应该是自给自足的;其他答案可能消失了。(3)祝你好运!
-filter:v transpose=1 …
。
自从最初回答这个问题以来,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.
资料来源:
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
)
ffmpef
包含很多不必要的参数,谢谢!