Twitterに投稿 はてなブックマークに追加 Google Bookmarksに追加

目次 >> ffmpeg >> 動画を回転させてエンコードする

動画を回転させてエンコードする

90度単位で回転させる

transposeオプションを使う。なお、複数の-vfを入れると、最後ののみ有効になるので、-vfオプションが複数ある場合はカンマで区切ること。

ffmpeg -i input.mp4 -vf "transpose=1" output.mp4

0:90度反時計回りに回転したのち上下反転
1:90度時計回り
2:90度反時計回り
3:90度時計回りののち上下反転

任意の角度で回転させる

rotateオプションを使う。角度はラジアンで指定するので、時計回りに45度回転させる場合は、

ffmpeg -i input.mp4 -vf "rotate=45*PI/180" output.mp4

反時計回りに45度回転させる場合は、

ffmpeg -i input.mp4 -vf "rotate=-45*PI/180" output.mp4

時間とともに回転させる

rotateオプションで、tを使うと、tには、時間が秒で入っている。例えば、

ffmpeg -i input.mp4 -vf "rotate=2*PI*t/10" output.mp4

とすると、10秒間に時計回りに一回転する動画作成される。

回転した際の余白の制御

回転させてできる動画の縦と横は、元の動画のそれと同じである。
その為、任意の角度で回転させると、切れてしまう部分と、黒いバックグランドで埋められる部分が出てくる。

回転させた際に、すべての画像が表示されるようにするには

ow='hypot(iw,ih)':oh=ow

を、余白が作られなうようにするには、

ow='min(iw,ih)/sqrt(2)':oh=ow:c=none

を追加すればよい。具体的には、

ffmpeg -i input.mp4 -vf "rotate=2*PI*t/10:ow='hypot(iw,ih)':oh=ow" output.mp4
ffmpeg -i input.mp4 -vf "rotate=2*PI*t/10:ow='min(iw,ih)/sqrt(2)':oh=ow:c=none" output.mp4

のようになる。

最終更新日


本文中のFC4はFedora ProjectのFedora Core 4を、FC5はFedora Core 5を、FC6はFedora Core 6をopenSUSEはNovellのSUSE Linux OSSを表します。Fedora7以降は、単にFedora7、Fedora8、Fedora9、Fedora10、Fedora11、Fedora12、Fedora13、Fedora14、Fedora15と表示しています。Ubuntuは、必要に応じて20.04、21.04のようにバージョン番号をつけて区別しています。

ここに登場するドメイン名やIPアドレスなどはフィクションです。実在の人物・団体等とは一切関係がありません。
実際に使用する際は、各自の環境に合わせて書き換えてください。
もし何か間違いなどありましたらこちらからご連絡ください
リンクに許可は不要です。
Copyright (C) 2021 Chikuma Engineering Co., Ltd. All Rights Reserved.