You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用FFmpeg裁剪视频片段并旋转180度失败,求可行解决方案

使用FFmpeg裁剪视频片段并旋转180度失败,求可行解决方案

兄弟,我看你试了一堆FFmpeg组合命令都没搞定裁剪加180度旋转的需求,别愁了,我来给你几个靠谱的解决方案,顺便聊聊你之前可能踩的坑。

首先,你之前的命令逻辑大多没问题,但大概率栽在了视频元数据的自动旋转上——很多手机/相机拍摄的视频会在文件里存一个旋转标记(比如竖拍的视频会标记“需要转90度”),FFmpeg默认会自动读取这个标记并旋转视频,这时候你再手动加旋转命令,等于叠了两次旋转,结果自然不是你想要的180度。

给你几个直接能用的命令,按需求选就行:

方案1:直接用rotate滤镜(最直观)

这个命令直接指定旋转180度,同时关掉FFmpeg的自动旋转功能,避免元数据干扰:

ffmpeg -noautorotate -ss 70 -i GH030258.MP4 -t 10 -vf "rotate=180" -c:a copy passing_opponent_alarm_084305.mp4

方案2:用水平+垂直翻转替代180度旋转

180度旋转其实等价于先水平翻转再垂直翻转,这个效果和rotate=180完全一样,你也可以试试:

ffmpeg -noautorotate -ss 70 -i GH030258.MP4 -t 10 -vf "hflip,vflip" -c:a copy passing_opponent_alarm_084305.mp4

方案3:用你之前的transpose组合(修正版)

你之前试过两次transpose的组合,其实逻辑是对的,只要加上-noautorotate就能正常工作:

ffmpeg -noautorotate -ss 70 -i GH030258.MP4 -t 10 -vf "transpose=2,transpose=2" -c:a copy passing_opponent_alarm_084305.mp4

如果你想确认是不是元数据的问题,可以先运行这个命令查看视频的旋转标记:

ffmpeg -i GH030258.MP4 2>&1 | grep rotate

如果输出里有类似rotate: 90的内容,那就是这个问题导致的之前命令失效。

备注:内容来源于stack exchange,提问作者Alex

火山引擎 最新活动