アスペクト比を維持しながら、AviSynthでビデオのサイズを480ピクセルの高さにするにはどうすればよいですか?簡単にするために、バイリニアのサイズ変更を想定します。
私はもう試した:
source = DirectShowSource("TheClip.avi")
resized = BilinearResize(source, target_height=480)
return resized
しかし、それはエラーを与えます
スクリプトエラー:関数「BilinearResize」の引数が無効です
注:width
を提供しない理由は、知らないからです幅。スクリプトは メディアサーバー によって使用されています 実行するためにAviSynthの使用を強制しますサイズ変更 。私は誰もが再生することを選択するかもしれないビデオのサイズを知りません-しかし私はそれをx480にサイズ変更する必要があることを知っています。
aviSynthは次のようなことができると思います。
resized=BilinearResize(source, source.width*480/source.height, 480)
しかし、それも失敗します:
サイズ変更:YUY2の宛先幅は均等である必要があります
AddBorders または Crop 、幅 mod4、mod8、またはmod16 にする方法を見つけようとして、続行できます。または、ここで質問することもできますが、アスペクトを維持するスケーリングを実行する方法はすでにあるかもしれません。
私はavisynthスクリプトに少し錆びていますが、これは480のターゲットの高さに基づいて幅を取得し、指定されたモジュロ値を取得するために機能するはずです... avisynthがないため、テストできませんでしたインストール済み.。
srceH = source.height
srceW = source.width
AR = (float(srceW) / float(srceH))
targH = 480
targW = int(float(targH) * AR)
coMod = 4 # The codec modulo requirement
targW = ((targW / coMod) * coMod)