このフィルターを使用して切り抜きを行います:
-filter_complex "[0:v]crop=w=320:h=240[v0c]
問題なく動作します。問題は、私が得ようとしている入力が何であるかわからないことがあるということです。たとえば、1000x500
または500x1000
の場合があります。したがって、それが発生すると、ビデオの中央の小さな領域が取得されます。理想的なのは、入力のサイズを変更して、小さい方のサイズを目的の出力に一致させ、残りをトリミングすることです。問題は、どの次元になるかわからないことです。
この問題を解決するためのフィルターを作成するにはどうすればよいですか?
コメント
- 必要な出力サイズはどれくらいですか?
- 私が書いたコマンドのように320×240
回答
使用
[0:v]scale="if(gt(a,4/3),-1,320)":"if(gt(a,4/3),240,-1)",setsar=1,crop=320:240[v0c]
xとyのスケールフィルター式は、入力のアスペクト比をチェックし、4より大きい場合はチェックします。 :3、値を2番目の引数に設定し、そうでない場合は3番目の引数に設定します。 -1
は、元のアスペクト比を維持する必要があることを意味します。 scale=-1:400
を600x800
キャンバスに適用すると、300x400
になります。
320
と?
(a,234/787)