2021年9月23日木曜日

ffmpeg-ptyhonでcropフィルタを使用して、動画の一部を切り取る

ffmpeg-ptyhonでcropフィルタを使用して、動画の一部を切り取るには、以下のサンプルプログラムのようにfilterメソッドにフィルタ名"crop"とパラメータを指定します。 ffmepg-pythonがインストールされた仮想環境の作成方法は「FFmpegをPythonから操作できるffmpeg-pythonをインストールした仮想環境を作成し、動画形式変換する」を参考にしてください。

動画の中央を切り取るサンプルプログラム

画像中央の切り取るサイズをw(幅)、h(高さ)パラメータで指定します。

ffmpeg_center.py
import ffmpeg

input = ffmpeg.input('./hydrangea_short.mp4')
processed = input.video.filter("crop",w=500,h=300)
ffmpeg.output(processed, input.audio, './hydrangea_crop_center.mp4').run()

・実行方法
以下のコマンドを実行して、サンプルプログラムを実行します。
python ffmpeg_center.py

〇変更前画像

〇変更後画像

指定した位置の画像を切り取るサンプルプログラム

x/yパラメータで切り取る位置を指定できます。以下のサンプルでは左上(x=0,y=0)の位置から切り取っています。

ffmpeg_crop_pos.py
import ffmpeg

input = ffmpeg.input('./hydrangea_short.mp4')
processed = input.video.filter("crop",x=0,y=0,w=600,h=400)
ffmpeg.output(processed, input.audio, './hydrangea_crop_pos.mp4').run()

〇変更後画像

入力画像のサイズの右下半分を切り取るサンプルプログラム

入力画像のサイズを示すiw(幅)/ih(高さ)を使用してサイズを指定することが出来ます。

ffmpeg_crop_size.py
import ffmpeg

input = ffmpeg.input('./hydrangea_short.mp4')
processed = input.video.filter("crop",x="iw/2",y="ih/2",w="iw/2",h="ih/2")
ffmpeg.output(processed, input.audio, './hydrangea_crop_size.mp4').run()

〇変更後画像

関連情報

・様々な動画に関するアプリケーションについては、以下のまとめを参照してください。
動画関連アプリケーションのまとめ

0 件のコメント:

コメントを投稿