†逆襲のOS/2†

mplayerで綺麗なリサイズ

作成開始日 2018.11.21
最終更新日 2019.07.14

基本的に、mplayerは原寸表示にしか向いていない。リサイズ表示自体は不可能ではないが、通常の方法ではドットが崩れて汚くなる。720×480のように、アスペクト比が元データの縦横比と異なる場合も同じ。OS/2のビデオドライバにリサイズ機能がないのが原因らしい。結局、ffmpegなどで、640×360とか480×360のように、ファイルごとリサイズして再生していた。

●フィルターによるリサイズ

が、実はそんな手間を掛けなくても、「-vf scale=」フィルターを使えば、奇麗なリサイズは可能だった。
 mplayer -vf scale=-2:-1 xxxx.mp4
ここで、「-vf」はビデオフィルターを意味し、「scale」がリサイズを意味する。 通常はここで「=640:360」のように直接的な表示サイズを指定するのだが、相対指定も可能。
 -1:元サイズ(ピクセル数)
 -2:もう一方のサイズとアスペクト比から算出されたサイズ
たとえば、720×480/16:9の動画で「-2:-1」を指定すると、縦は「-1」なので「480」そのまま、横は「-2」なので縦サイズとアスペクト比から「480×16/9=853」となる。逆に「-1:-2」とすれば、今度は縦が「720×6/19」となり「720×405」で表示される。絶対指定と混用しても良く、「640:-2」とすれば「640×360」となる。なお、「-vf」を指定すると、OSDが表示されなくなるようだ;必要ならば別途指定。

●リサイズのアルゴリズムの指定

「-sws」オプションで、リサイズのアルゴリズムを明示的に指定することもできる。
 mplayer -sws 9 -vf scale=-1:-2:0:0:3 xxxx.mp4
ここで、「-sws」はリサイズの方式(software scale type)。一応、0〜10の値を取るが、必ずしもスムーズさの程度を表すものではなく、数値によってアルゴリズムを指定する。「9」は「lanczos」を意味し、かなり綺麗になる。
 0 fast bilinear
 1 bilinear
 2 bicubic (good quality) (default)
 3 experimental
 4 nearest neighbor (bad quality)
 5 area
 6 luma bicubic / chroma bilinear
 7 gauss
 8 sincR
 9 lanczos
 10 natural bicubic spline
また、-vf scale=以下はリサイズのパラメータを指定する;
 -vf scale=横サイズ:縦サイズ:インターレース:クロームスキップ:リサイズオプション

※参考ページ
MPlayer and MEncoder on MacOSX
https://www.wikihouse.com/htumenc/index.php?Man%2FDECODING%A1%BFFILTERING%20OPTIONS
https://www.wikihouse.com/htumenc/index.php?Man%2FVIDEO%20FILTERS%2Fscale

●kmplayerにおけるサイズ指定

kmplayerでもmplayerと同じように、フィルターでリサイズすることは可能。
 kmp -vf scale=640:360 xxxx.mp4
ただし、mplayerの「-1」や「-2」のような相対指定はできないようだ。「0」は実サイズのようだが、「-1」は受け付けても意味不明、「-2」以下は受け付けない。また、少なくとも横サイズには16ドット・シバリがあるようで、16の倍数でないと、他のシーンの切れ端が表示され続ける。


【逆襲のOS/2目次】 【ホーム】