ピクセル数はそのままなので、1280X720 だと、90度回転すると 720X1280 になる。似たフィルタに rotate, hflip, vflip フィルタがある。

映像を任意の角度に回転させる rotate
上下左右を入れ換える vflip, hflip

基本コマンド

ffmpeg - i input -vf transpose=cclock_flip output
ffplay - i input -vf transpose=0

オリジナル

cclock_flip(反時計回りに90度回転し上下反転)

clock(時計回りに90度回転)

cclock(反時計回りに90度回転)

clock_flip(時計回りに90度回転し上下反転)

ffplay - i input -vf transpose=1,transpose=1

clock を2回(時計回りに180度回転)

公式ドキュメント:FFmpeg Filters Documentation : transpose

オプション

  • dir[int]
    回転方向の設定
    • 0, cclock_flip
      反時計回りに90度回転し上下反転。既定値
    • 1, clock
      時計回りに90度回転
    • 2, cclock
      反時計回りに90度回転
    • 3, clock_flip
      時計回りに90度回転し上下反転
  • passthrough[int]
    フィルタを当てた後の縦と横の解像度を比較して回転をそのままにするかやめるかの設定
    • none
      なにもしない。既定値
    • portrait
      縦解像度が横解像度以上になるとフィルタの結果そのまま返す
    • landscape
      横解像度が縦解像度以上になるとフィルタの効果を打ち消す

transpose_opencl

opencl を使って transpose_opencl フィルタを使う。

opencl が使えれば以下のコマンドを実行すると対応 CPU、または GPU が表示される。
ffmpeg -hide_banner -v verbose -init_hw_device opencl

出力コマンド例。

ポイントは opencl を使うデバイスを上の例では 0.0 から 1.1 から指定する。能力によって処理速度が大きく異なる。オプション指定は通常と同じ。

コマンド例。
ffmpeg -init_hw_device opencl=ocl:1.0 -filter_hw_device ocl -i input -vf hwupload,transpose_opencl output

通常のフィルタに切り替えるには hwdownload,format=yuv420p フィルタを挟む。
ffmpeg -init_hw_device opencl=ocl:1.0 -filter_hw_device ocl -i input -vf hwupload,transpose_opencl,hwdownload,format=yuv420p,lutyuv=val:128:128 output

公式ドキュメント:ない
ffmpeg -h filter=transpose_opencl

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)