2015年1月25日に公開された v1.7.8 から librtmp のパラメーターを使っての RTMP ストリームに対応した。これで RTMP 映像を受信できるが、アーカイブされた動画ではシークバーが動かなかったり、開始時間指定が機能しなかったり、ffplay では再生できる RTMPE が再生できなかったりと完全に機能しているわけではない。
ffmpeg でモーションブラーを掛ける
SHIROBAKO の15話でモーションブラーが出てきたがそれを ffmpeg でもある程度実現することができるのでその方法の紹介。ポイントは一定周期のフレーム数でブレンドの平均をするところ。
具体的にはモーションブラーとここで紹介するフレームブレンドは異なる。
使うフィルタはblendフィルタ。
YUV RGB を比較計算する blend
atadenoiseフィルタで手軽に前後1フレームのモーションブラーを当てることができる。
手軽にモーションブラー atadenoise
フレームブレンドで過去フレームの加重を調整するのに便利なtmixフィルタがある。
FFmpeg Filters Documentation : tmix
追記 2015年3月7日
tblendフィルタによる「とても軽めのモーションブラー」を追加。
ffmpeg に nvenc(cuda)をインストールする
ffmpeg 2.6から使えるNVENC, NVDECを使う方法。
- FFmpeg / libav | NVIDIA Developer
- NVIDIA FFmpeg Transcoding Guide | NVIDIA Developer Blog
- NVIDIA VIDEO CODEC SDK | NVIDIA Developer
- Using FFmpeg with NVIDIA GPU Hardware Acceleration
hardware acceleration の Wiki:HWAccelIntro – FFmpeg
追記 2024年4月1日
SDK 12.2のビット深度APIのサポート。
- avcodec/nvenc: support SDK 12.2 bit depth API · FFmpeg/FFmpeg@06c2a2c · GitHub
- avcodec/nvenc: update minimum driver version list · FFmpeg/FFmpeg@c06e9e2 · GitHub
- avcodec/nvenc: add support for unidirectional b-frames · FFmpeg/FFmpeg@21b4708 · GitHub
- avcodec/nvenc: add support for uhq tune · FFmpeg/FFmpeg@a270966 · GitHub
- avcodec/nvenc: add support for lookahead_level · FFmpeg/FFmpeg@77d23bc · GitHub
- avcodec/nvenc: add support for HEVC temporal filtering · FFmpeg/FFmpeg@64e3fc9 · GitHub
関連記事
ffmpeg で アニメーションWebP(Animated WebP)を作る
APNGと並んで互換性の低かったAnimated WebPについて。対応ブラウザは、Chrome、Opera、Winodws 10のMicrosoft Edge44以降、そしてFirefox 65以降である。画像投稿サイトはほとんど対応してないと思うので実用性は高くない。対応カラーフォーマットは YUV420p(YUVA420p)。APNGのように可逆圧縮だけではないので低容量でアニメGIFよりも高画質に作れるが互換性が低いのが弱点。
2020年11月現在、ffmpegではAnimated WebPをデコードできない。1フレームのWebpならデコードできる。Patchworkにパッチが来ているが公式には組み込まれていない。
#4907 (Support decoding animated WebP images) – FFmpeg
[FFmpeg-devel] avformat/webpdec: WebP demuxer implementation – Patchwork
ffmpeg を使って透過したオーバーレイ動画を作る
透過のテキストはできるが透過の動画はoverlayフィルタだけを使って動画を重ねても透過にならないので、blendフィルタを応用して透過したオーバーレイ動画を作る方法。コツは透過する画像の周りを背景となる映像と同じ映像をオーバーレイしてblendのaverageで同じ映像同士の平均は同じというのを利用する。透過する映像の位置は overlay フィルタで指定する。前回記事の「ffmpeg で差分動画を作る」と同じように「:c0_opacity=.5」と等とすることで透過具合を変更することもできる。
追記 2015/01/15
識別子の c が表示されていなかったので c0 に変更した。
ffmpeg で差分動画を作る
Avisynth で言うところのSubtractを ffmpeg のblendを使って差分を表示して比較動画を作る方法。
使うフィルタはblendで設定できる内容はたくさんあるが使うのは difference モードで2つの映像の差異を表示する。そのほかにも映像の YUVA/RGBA の値を四則演算できるが、それぞれの詳しい内容は理解していない。詳しい処理はソースコードを参照。
フレームレートを 30000/1001 から 24000/1001 に間引く場合はdecimateするときれいに間引ける。インターレース解除はyadif、フレーム数の指定でのカットはtrimを使う。yadif, trim, decimate, setpts の順番にフィルタをかける。
適切な音量が調べられる ffmpeg の ebur128 の使い方
LUFS、いわゆる平均ラウドネス値を調べるebur128フィルタの使い方。
LUFS(Loudness Unit Referred to Full Scale)とは平均ラウドネス値の単位で、LKFS(Loudness K Weghted Full Scale)とも言われている。
ニコニコ動画にも2020年1月29日(水)より大きすぎる音量感を抑制する方向でのみラウドネスノーマライゼーション(自動音量調整機能)を追加することが発表された。
動画音量の自動調整機能を導入します【PC版ニコニコ動画】|ニコニコインフォ
ニコニコ動画のラウドネスノーマライゼーション(自動音量調整機能)について:ニコニコ窓口:niconico窓口チャンネル(ニコニコ窓口担当) – ニコニコチャンネル:社会・言論