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

RTMP streams に対応した MPC-HC v1.7.8 が公開

2015年1月25日に公開された v1.7.8 から librtmp のパラメーターを使っての RTMP ストリームに対応した。これで RTMP 映像を受信できるが、アーカイブされた動画ではシークバーが動かなかったり、開始時間指定が機能しなかったり、ffplay では再生できる RTMPE が再生できなかったりと完全に機能しているわけではない。

ffmpeg でモーションブラーを掛ける

SHIROBAKO の15話でモーションブラーが出てきたがそれを ffmpeg でもある程度実現することができるのでその方法の紹介。ポイントは一定周期のフレーム数でブレンドの平均をするところ。

atadenoise フィルタでもっと手軽にモーションブラーを当てることができる
手軽にモーションブラー atadenoise

追記 2015年3月7日
tblend による「とても軽めのモーションブラー」を追加。

続きを読む ffmpeg でモーションブラーを掛ける

ffmpeg に nvenc(cuda) をインストールする

ffmpeg 2.6 から使える nvenc をコンパイルする方法。別途ヘッダファイルが必要なので nvidia の公式サイトから最新の SDK をダウンロードして nvEncodeAPI.h を include ディレクトリにコピーしておく。ffmpeg 3.2 から nvEncodeAPI.h を include ディレクトリにコピーする必要がなくなった。

FFmpeg / libav | NVIDIA Developer
NVIDIA VIDEO CODEC SDK | NVIDIA Developer

hardware acceleration の Wiki:HWAccelIntro – FFmpeg
qsv 対応の ffmpeg をつくる

追記 2017年5月10日
SDK 8.0.14 にアップデートされた。新機能は

  • 10/12-bit decoding support with HEVC/VP9, enabling end-to-end HDR transcoding
  • Improved quality via weighted prediction
  • Support for OpenGL inputs (Linux only)

ドライバーのバージョンは
NVIDIA Linux display driver 378.13 以上
NVIDIA Windows display driver 378.66 以上

compat/nvenc: bump nvEncodeAPI.h to Video Codec SDK 8.0.14 – ffmpeg.git/commitdiff
avcodec/nvenc: add weighted prediction support – ffmpeg.git/commitdiff
avcodec/nvenc: add fractional CQ support – ffmpeg.git/commitdiff
続きを読む ffmpeg に nvenc(cuda) をインストールする

ffmpeg で アニメーションWebP(Animated WebP)を作る

APNG と並んで互換性の少ない Animated WebP について。ブラウザは現在のところ、Chrome と Opera が対応している。対応している画像投稿サイトはほとんどないと思うので実用性は高くない。対応カラーフォーマットは YUV420 で、アルファチャンネルに対応している。APNG のように可逆圧縮だけではないので低容量で アニメGIF よりも高画質に作れるが互換性が少ないのが弱点。

続きを読む ffmpeg で アニメーションWebP(Animated WebP)を作る

ffmpeg を使って透過したオーバーレイ動画を作る

透過のテキストはできるが透過の動画は overlay フィルタだけを使って動画を重ねても透過にならないので、blend フィルタを応用して透過したオーバーレイ動画を作る方法。コツは透過する画像の周りを背景となる映像と同じ映像をオーバーレイして blend の average で同じ映像同士の平均は同じというのを利用する。透過する映像の位置は overlay フィルタで指定する。前回記事の「ffmpeg で差分動画を作る」と同じように「:c0_opacity=.5」と等とすることで透過具合を変更することもできる。

追記 2015/01/15
識別子の c が表示されていなかったので c0 に変更した。

続きを読む ffmpeg を使って透過したオーバーレイ動画を作る

ffmpeg で差分動画を作る

Avisynth で言うところの Subtract を ffmpeg の blend を使って差分を表示して比較動画を作る方法。

YUV RGB を比較計算する blend

使うフィルタは blend で設定できる内容はたくさんあるが使うのは difference モードで2つの映像の差異を表示する。そのほかにも映像の YUVA/RGBA の値を四則演算できるが、それぞれの詳しい内容は理解していない。詳しい処理はソースコードを参照。

フレームレートを 30000/1001 から 24000/1001 に間引く場合は decimate するときれいに間引ける。インターレース解除は yadif、フレーム数の指定でのカットは trim を使う。yadif, trim, decimate, setpts の順番にフィルタをかける。
続きを読む ffmpeg で差分動画を作る