如何以 ffmpeg 將影片旋轉 90 度

作者:   發佈於: ,更新於:   #howto #ffmpeg

指令為:

ffmpeg -i input.mp4 -vf "transpose=clock" -c:a copy output.mp4

其中 output.mp4 為輸出檔名,-i input.mp4 為輸入。-c:a copy 表示影片中聲音部分的編碼保持原設定。

transpose=clock 表示依順時鐘方向轉 90 度。若 input.mp4 的寬高為 1920x1080,則 output.mp4 的寬高將為 1080x1920,且原影片中的左側將會成為新影片的上頂側。

若要依逆時鐘方向轉 90 度,可改用 transpose=cclock

ffmpeg -i input.mp4 -vf "transpose=cclock" -c:a copy output.mp4

若要轉 180 度(天地顛倒),可疊加兩次 transpose=clock,transpose=clock

ffmpeg -i input.mp4 -vf "transpose=clock,transpose=clock" -c:a copy output.mp4

此外亦有 transpose=clock_flip 表示「先依順時鐘方向轉 90 度後做一次垂直翻」(影片內容中原本直立人物會變成頭在左側,左右手互換),以及 transpose=cclock_flip 表示「先依逆時鐘方向轉 90 度後做一次垂直翻」(影片內容中原本直立人物會變成頭在右側,左右手互換)。