月別アーカイブ: 2015年11月

ffmpeg 2.8.2 リリース

今回も前回同様に修正がメインで新機能は追加されていない。ショートログを見ると分かるがあまりコミットされていない。

http://git.videolan.org/?p=ffmpeg.git;a=shortlog;h=refs/tags/n2.8.2

master で新たに追加されたフィルタでブログで紹介しているのは zscale filter だけである。
Zライブラリを使ったリサイズフィルタ zscale

master で公開されているフィルタはこちらから
git.videolan.org Git – ffmpeg.git/blob – Changelog

これとは別に Nvidia のハードウェアアクセレーションのリサイズパッチが Ubuntu 向けに公開されている。
http://developer.download.nvidia.com/compute/redist/ffmpeg/1511-patch/FFMPEG-with-NVIDIA-Acceleration-on-Ubuntu_UG_v01.pdf

輝度の階調を減らして容量を減らす試み

ffmpeg のフィルタで容量を減らすと言えばたいていの場合デノイズしてのっぺりさせてきたが、今回はデノイズではなくてYチャンネル(輝度)の階調を間引いて容量を減らしてみた。この方法のデメリットはのっぺりしたりぼやけたりはしないが階調が単純化されるのでグラデーションがきれいではなくなる(バンディングがのる)のと、処理が遅いのでリアルタイムエンコード(配信)向きである。

任意で階調を調整できるのでバンディングが目立つところを間引かずに他の所を間引くことで目立たないところで容量を減らすことができる。階調の調整は映像の内容によって変えた方がきれいに見える。

追記 2015年11月6日 0時21分
可逆圧縮(utvideo)の時は確かに容量は減るのだが、不可逆圧縮(libx264)のときはかえって容量は増えて SSIM も悪くなる傾向にあるのでもう少し調べてみる。

追記 2015年11月11日
paletteuse ではなくて lutyuv でも間引くことができるがわずかな効果しかない。Yチャンネルは修正しない方が無難かもしれない。

追記 2017年3月31日
見た目の変化がわかりにくい青色、YUV の U をデノイズした方がよい結果になるかも。使うフィルタは removegrain を使う。

奇数の値を+1繰り上げる。繰り下げる場合は-1。偶数はそのまま。
lutyuv=y="if(mod(val\,2)\,val\,val+1)":u="if(mod(val\,2)\,val\,val+1)":v="if(mod(val\,2)\,val\,val+1)"

その他に removegrain でそれぞれのチャンネルに個別にデノイズ処理する方法もある。

Windows の ffmpeg で生放送する方法 :: グレイン除去

追記ここまで

続きを読む 輝度の階調を減らして容量を減らす試み

YUV RGB を比較計算する blend

2入力した映像の YUVA や RGBA を比較して結果を表示する blend の使い方。差分を調べて比較動画を作ったり、マスクした部分に別の映像を重ねたりいろいろな映像効果を作ることができる。

基本コマンド

比較動画として上に二つ並べて左下に差分(Y は 0 差分、UV は1入力)の動画を表示するコマンド例
ffplay -f lavfi "movie=left.mp4,setpts=PTS-STARTPTS,split[a1][a2];movie=right.mp4,setpts=PTS-STARTPTS,split[b1][b2];[a1][b1]blend=c0_mode=difference,pad=2*iw:ih:0:0[blend];[a2][b2]hstack[tmp];[tmp][blend]vstack"
比較動画として上に二つ並べて左下に差分(Y は 0 差分、UV は128)の動画を表示するコマンド例
ffplay -f lavfi "movie=left.mp4,setpts=PTS-STARTPTS,split[a1][a2];movie=right.mp4,setpts=PTS-STARTPTS,split[b1][b2];[a1][b1]blend=c0_mode=difference,lutyuv=val:128:128,pad=2*iw:ih:0:0[blend];[a2][b2]hstack[tmp];[tmp][blend]vstack"

公式ドキュメント:FFmpeg Filters Documentation : blend, tblend
続きを読む YUV RGB を比較計算する blend