ffmpeg 5.1リリース

2022年9月25日にffmpeg 5.1.2がリリースされた。アップデート内容はフォーマット関係など修正ばかりで新しいフィルタは入ってない。

Update for 5.1.2 · FFmpeg/FFmpeg@eacfcba

2022年9月1日にffmpeg 5.1.1がリリースされた。アップデート内容はフォーマット関係など修正ばかりで新しいフィルタは入ってない。

Update for 5.1.1 · FFmpeg/FFmpeg@1bad30d

2022年7月23日にffmpeg 5.1 Riemann(ベルンハルト・リーマン – Wikipedia)がリリースされた。今回のリリースはメジャーアップデートとなり、4.4以降に追加された新機能の中からマスターにしか追加されていなかったフィルタやエンコーダ、デコーダ等の新機能が全て取り込まれた。

気になる新機能はipfs/ipnsプロトコル対応。映像の特性を調べるSITIフィルタ、任意の座標にフィルタを当てるfeedbackフィルタ。ffprobeの出力オプションの-oでリダイレクトせずに指定ファイル形式で保存できるように。リップシンク確認動画を作れるavsynctestテストソース、色の表示確認動画を作れるcolorchartテストソースなどがある。

チェンジログにない部分ではLittleCMS 2によるICC Profile対応とiccdetecticcgenフィルタ。AVIF muxer対応して.avif形式で出力と、JPEG XL対応してJPEG XLのエンコード・デコード対応。-vsyncが廃止予定に変わり同じオプション指定の-fps_modeと、複数のタイムスタンプを同期させる-isyncオプションが追加されている。

.avif形式で出力。上が静止画像、下がアニメーション画像:

ffmpeg -i image.png -c:v libsvtav1 -still-picture 1 image.avif
ffmpeg -i video.mp4 -c:v libsvtav1 -frames:v 24 image.avif

エンコーダ別の設定は以下を参照。
【ffmpeg】動画から特定フレームを画像で出力する方法 – avifを作る

前回記事:ffmpeg 5.0リリース

Continue reading “ffmpeg 5.1リリース”

ビットストリームで加工するnoise

任意の場所の映像や音声をコンテナを損傷することなくドロップさせたり、パケットにノイズをのせたりできるnoiseビットストリームフィルタの使い方。

Continue reading “ビットストリームで加工するnoise”

ピクチャーをインターリーブ、デインターリーブするil

ilフィルタの使い方。似たフィルタにフレームをインターリーブするinterleaveフィルタと、フレーム間をインターリーブするtinterlaceフィルタがある。

複数の映像を1つの映像に合わせるinterleave
フィールドを足したり引いたりする tinterlace

Continue reading “ピクチャーをインターリーブ、デインターリーブするil”

マスクに応じてぼかすvarblur

マスクのグレースケールに応じてぼかす範囲を指定するvarblur(Apply variable blur)フィルタの使い方。マスクをつくる方法はgeqフィルタで任意の図形をつくる、lutフィルタなどで映像を加工する、untileフィルタで分割した場所を指定するなどがある。2つのビデオストリームが必要だがそれぞれ同じ解像度出なければならない。タイムライン編集に対応。

Continue reading “マスクに応じてぼかすvarblur”

フレーム内の一部分にフィルタを当てるfeedback

ffmpeg 5.1から使えるフィルタ。指定した矩形にフィルタを当てるfeedbackフィルタの使い方。縦x横で分割できる範囲ならuntile、select、interleave、tileフィルタの併用でも同じことができ、ぼかすだけならvarblurフィルタでもできる。座標を指定して周りの色でブレンドするdelogoフィルタもある。ffmpeg 6.1からタイムライン編集に対応予定。

Continue reading “フレーム内の一部分にフィルタを当てるfeedback”

ピクセライズして映像にモザイクをかけるpixelize

ffmpeg 5.1から使える予定のフィルタ。指定ピクセル間を平均してブロック状にモザイクするpixelizeフィルタの使い方。今まではfrei0フィルタのpixeliz0rで使えていた。

ffmpeg で使える frei0r フィルタの使い方
ffmpeg でドット絵風の低画質に変換する

Continue reading “ピクセライズして映像にモザイクをかけるpixelize”

ITU-T P.910を元とした2次元と3次元で映像の品質スコアを調べるsiti

ffmpeg 5.1から使えるフィルタ。SI(Spatial Info:空間情報、フレーム内)とTI(Temporal Info:時間情報、フレーム間)の知覚情報のスコアを調べるsitiフィルタの使い方。SIは複雑なシーンほど数値が高くなる。似たフィルタにentropyフィルタがある。TIはフレーム間の動きの変化が多いほど数値が高くなる。アニメのように動かないと0になる。

映像のエントロピーを調べるentropy
各チャンネルのノイズ係数を調べる bitplanenoise

実装した論文:P.910 : Subjective video quality assessment methods for multimedia applications
論文の最新版:P.910 : Subjective video quality assessment methods for multimedia applications

映像の品質評価に使われるフィルタなど。

Continue reading “ITU-T P.910を元とした2次元と3次元で映像の品質スコアを調べるsiti”

Raspberry Pi 4 Model Bの64bit OSでインタレ解除してHWエンコードする

fieldhintフィルタで手動インターレース解除しH.264のハードウェアエンコードする。手動インターレース解除するとぎりぎり1倍速以上出るので縞フレームの場所が分かればライブ配信にも使える。patternオプションは2022年3月15日に追加されたものなのでffmpegはソースコードからビルドする。

jc-kynesim/rpi-ffmpeg: FFmpeg work for RPI
手動でフィールド処理を行う fieldhint

Continue reading “Raspberry Pi 4 Model Bの64bit OSでインタレ解除してHWエンコードする”