在阅读完如何将视频旋转 90 度
我尝试了以下命令:
mencoder old.mp4 -oac lavc -ovc x264 vcodec=mpeg4 -vf flip,mirror -o new.mp4
mencoder old.mp4 -oac lavc -ovc x264 vcodec=mpeg4 -vf rotate=2 -o new.mp4
ffmpeg -i old.mp4 -vf "hflip" -strict -2 new.mp4
但转换后的视频仍然是颠倒的。
使用
mplayer -vf flip,mirror old.mp4
按照需要渲染。但无论如何,我想转变它。
我正在
ffmpeg version 2.8.15-0ubuntu0.16.04.1
使用
MEncoder 1.2.1 (Debian), built with gcc-5.3.1
答案1
手机中的视频通常具有元数据,可告知播放器在播放时进行旋转(并非所有播放器都遵守此规定)。重新编码时,ffmpeg
将根据旋转元数据自动旋转视频,因此您无需执行任何特殊操作:
ffmpeg -i input.mp4 -c:a copy output.mp4
但是,如果旋转元数据错误,您可以简单地删除或更改它,而无需重新编码:
ffmpeg -i input.mp4 -c copy -metadata:s:v rotate="" output.mp4
或者,您可以将其更改为诸如-metadata:s:v rotate="180"
。
答案2
我发现以下命令行代码在使用 ffmpeg 的 Ubuntu 20.04LTS 上可以运行:
ffmpeg -i filename.mp4 \
-c copy -metadata:s:v:0 rotate=0 \
output.mp4
它仅改变元数据,而不会造成质量损失。