フィルタ内で分割するsegment、asegment

ffmpeg 4.5から使える予定のフィルタ。いままではselect、aselectフィルタで複数の区間をフィルタ内で分割できたのがより直感的に分割できるようになった。タイムライン編集が使えないフィルタを使ったり、エンコードパラメータを複数使い分けて1つのファイルに戻すなどに使う。

特定の映像フレームや音声サンプルを出力するselect, aselect

Tがあればタイムライン編集に対応している。
ffmpeg -filters : gist.github.com

Continue reading “フィルタ内で分割するsegment、asegment”

フィールドオーダーを変更するfieldorder

フィールドオーダーを書き換えて順番を入れ替えるfieldorderフィルタの使い方。フィールドオーダーの明示がなくフラグを立てるのはsetfieldフィルタ。

フィールドオーダーのフラグを建てるsetfield

Continue reading “フィールドオーダーを変更するfieldorder”

クロミナンスノイズ低減フィルタchromanr

色彩のデノイズを行うchromanrフィルタの使い方。軽く当てると明るさ成分には影響なく、あまり色彩を失わずにデノイズできる。変化度合いのしきい値が指定できるので調整しやすい。タイムライン編集に対応。フレーム間の色彩デノイズ、いわゆるちらつき除去はhqdn3dフィルタを使う。

Windows の ffmpeg で生放送する方法 – 3次元デノイズフィルタ

Continue reading “クロミナンスノイズ低減フィルタchromanr”

ffmpeg 4.4 リリース

2021年10月25日に4.4.1がリリースされた。アップデート内容はセキュリティ関係など修正ばかりで新しいフィルタは入ってない。

git.videolan.org Git – ffmpeg.git/commitdiff
git.videolan.org Git – ffmpeg.git/shortlog : n4.4.1

次のバージョンに追加予定の内容。
git.videolan.org Git – ffmpeg.git/blob – Changelog

4.4.1には入っていないが「swscale slice threading」はスレッド数の多いPCでのリサイズにおいてCPU使用率の大幅な向上が見られる。

およそ10か月ぶりの更新で2021年4月9日にffmpeg 4.4 “Rao“がリリースされた。今回のリリースはメジャーアップデートとなり、セキュリティ対応や4.3以降に追加された新機能の中からマスターにしか追加されていなかったフィルタやデコーダの新機能が全て取り込まれた。

git.videolan.org Git – ffmpeg.git/shortlog : n4.4

Continue reading “ffmpeg 4.4 リリース”

2つの映像の差の絶対値の合計平均を調べるmsad

ffmpeg 4.4から使える予定のフィルタ。2つの映像は同じ解像度、ピクセルフォーマットでなければならない。メタデータに出力できるのでffprobe連携しやすい。
ffprobe の使い方

framesyncに対応しているので片方の出力が終わったら終了するようにできる。
2ファイル入力するフィルタの挙動設定 framesync

基本コマンド

オプション設定はなし。出力値は0から1までの小数。変化が少ないほど0に近づく。
ffmpeg -i 調べたい動画 -i 元の動画 -filter_complex "[0:v]settb=1/AVTB,setpts=PTS-STARTPTS[0v];[1:v]settb=1/AVTB,setpts=PTS-STARTPTS[1v];[0v][1v]scale2ref=flags=bicubic,msad=shortest=1:repeatlast=0" -an -f null -

ffmpeg 5.1以降はts_sync_mode対応したのでsettb=1/AVTB,setpts=PTS-STARTPTSが不要になった。
ffmpeg -i 調べたい動画 -i 元の動画 -filter_complex "scale2ref=flags=bicubic,msad=shortest=1:repeatlast=0:ts_sync_mode=1" -an -f null -

公式ドキュメント:FFmpeg Filters Documentation : msad

メタデータ出力内容。

lavfi.msad.msad.Y
lavfi.msad.msad.U
lavfi.msad.msad.V
lavfi.msad.msad_avg

ffprobe連携例。出力時間は-read_intervalsで指定。
ffprobe -f lavfi -i movie=enc.mp4,settb=1/AVTB,setpts=PTS-STARTPTS[0];movie=orig.mp4,settb=1/AVTB,setpts=PTS-STARTPTS[1];[0][1]scale2ref=flags=bicubic,msad -show_entries packet_tags=lavfi.msad.msad_avg -read_intervals "%1" > msad_avg.txt

ffprobe の使い方

2つの映像がどれだけ同じかを調べるidentity

ffmpeg 4.4から使える予定のフィルタ。2つの映像は同じ解像度、ピクセルフォーマットでなければならない。メタデータに出力できるのでffprobe連携しやすい。
ffprobe の使い方

framesyncに対応しているので片方の出力が終わったら終了するようにできる。
2ファイル入力するフィルタの挙動設定 framesync

基本コマンド

オプション設定はなし。出力値は0から1までの小数。
ffmpeg -i 調べたい動画 -i 元の動画 -filter_complex "[0:v]settb=1/AVTB,setpts=PTS-STARTPTS[0v];[1:v]settb=1/AVTB,setpts=PTS-STARTPTS[1v];[0v][1v]scale2ref=flags=bicubic,identity=shortest=1:repeatlast=0" -an -f null -

ffmpeg 5.1以降はts_sync_mode対応したのでsettb=1/AVTB,setpts=PTS-STARTPTSが不要になった。
ffmpeg -i 調べたい動画 -i 元の動画 -filter_complex "scale2ref=flags=bicubic,identity=shortest=1:repeatlast=0:ts_sync_mode=1" -an -f null -

公式ドキュメント:FFmpeg Filters Documentation : identity

メタデータ出力内容。

  • lavfi.identity.identity.Y
  • lavfi.identity.identity.U
  • lavfi.identity.identity.V
  • lavfi.identity.identity_avg

ffprobe連携例。出力時間は-read_intervalsで指定。
ffprobe -f lavfi -i movie=enc.mp4,settb=1/AVTB,setpts=PTS-STARTPTS[0];movie=orig.mp4,settb=1/AVTB,setpts=PTS-STARTPTS[1];[0][1]scale2ref=flags=bicubic,identity -show_entries packet_tags=lavfi.identity.identity_avg -read_intervals "%1" > identity_avg.txt

千円HDMIキャプチャ、Y&H HDMIキャプチャカード

千円で有名になったHDMIキャプチャカードだが、複数の販売元では送料込みで700円を割り込んでいる。公式画像では「Shenzhen Yonghui Fashion Co., Ltd」の配送になるが、今回購入したのは「XBOW」から。「今すぐ買う」のボタンの下から選択できる。最初の頃に言われていた音声がおかしい問題は解決されて1280×720の60fpsのMJPGで取り込めて、手軽なHDMI出力の画面表示に使える。

Continue reading “千円HDMIキャプチャ、Y&H HDMIキャプチャカード”

ffmpegでBlackmagic Designの製品を扱う

保有しているIntensity Proをffmpegで入力したり、出力したりする。ずいぶん昔のハードウェアなのでキャプチャー解像度は1080p30まで。音声は6チャンネルのサラウンドも読み込める(実際に音が含まれているかは未確認)。接続方法にHDMIとコンポーネント端子、RCA端子(黄白赤)がある。解像度やフレームレート、インターレースなど対応内容に一致しないと扱えない。HDMI以外のアナログ入力はffmpegで扱う方法がよくわからなかった。OBSではアナログでも出力を480iに入力解像度を合わせれば表示できた。RCA端子(黄白赤)入力には8(緑)、14(白)、 15(赤)に接続。

現在のffmpegでは出力に使う–enable-decklinkをつけるには–enable-nonfreeも必要なので配布バイナリには含まれていない。用意するだけならmedia-autobuild_suiteを使うのが手軽。SDKの利用にm-ab-s / decklink-headers · GitLabを使っている。

扱う方法は映像と音声を合わせた–enable-decklink-f decklinkと、-f dshowの映像2種類Decklink Video Captureと、Blackmagic WDM Capture。音声2種類ライン入力 (Blackmagic Audio)Decklink Audio Captureがある。

まずはドライバを現在の最新版である、Desktop Video 11.6をインストールする。古いバージョンをインストールしていれば先にアンインストールする。

サポートセンター | Blackmagic Design

Nintendo SwitchをHDMIに入力し、HDMIの出力からPCモニターに接続したところ、入力映像をアクティブ、例えばffplayやffmpeg、OBSでデバイスを読み込むと入力と同時に出力も行う。

Continue reading “ffmpegでBlackmagic Designの製品を扱う”

この1ヶ月でのニコニコアカウント取得の変更点

まずはアカウントIDは9月1日時点では9921万で、8月からおよそ100万増えている。

10月1日時点では1億1596万で一気に1675万も増えた。

Continue reading “この1ヶ月でのニコニコアカウント取得の変更点”