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ヶ月でのニコニコアカウント取得の変更点”

FFmpegのオーディオフィルタの本を頒布した技術書典9を振り返る

#技術書典 「刺され!技術書アワード」の最終候補作品に選ばれた。

前回参加記事
FFmpegの本を頒布した技術書典7を振り返る

告知記事
技術書典9でFFmpegのオーディオフィルタ本が出ます

サークルページ
ニコラボ | 技術書典

新刊。BOOTH版は目次の頭文字数字の項目を直している。どちらも同じ価格で決済手段が異なる。技術書典は差し替えに再審査が必要なので差し替えていない。

FFmpegのオーディオフィルタの本:ニコラボ | 技術書典
【PDF】FFmpegのオーディオフィルタの本 – ニコラボの本屋 – BOOTH

現在技術書典内では電子版と物理本は販売終了し、電子版は一時的に販売停止になっている

Continue reading “FFmpegのオーディオフィルタの本を頒布した技術書典9を振り返る”

技術書典9でFFmpegのオーディオフィルタ本が出ます

ブログではビデオフィルタばかり書いているが、今回はオーディオフィルタを使って音量の調整や、デノイズ、簡単な解析に特化した内容になる。前回は100ページを超える大作だったが、今回は30ページ、電子版は最後の白紙ページを除いた28ページになる。価格は電子版、物理本どちらも500円になり、電子版だけと、電子版と物理本のセットの2種類になる。電子版と物理本のセットは技術書典9開催期間中だけの販売となる。物理本は50部の予定なので売り切れたら終了、残ったらBOOTHでの委託販売も考えている。

2020年9月12日10時から販売開始予定。
FFmpegのオーディオフィルタの本:ニコラボ

Continue reading “技術書典9でFFmpegのオーディオフィルタ本が出ます”

Zeranoe ffmpeg、9月18日に閉鎖へ

FFmpeg Builds – Zeranoe

ffmpeg.zeranoe.com will close on Sep 18, 2020, and all builds will be removed. If you’re using Zeranoe FFmpeg Builds in your product, please ensure that you have a hosting strategy in place by the 18th. Thank you to everyone who supported the project along the way!

WindowsとmacOSのffmpegを配布しているffmpeg.zeranoe.comは過去のアーカイブも削除して2020年9月18日に閉鎖する。これに対して個人でffmpegを用意するにはビルドスクリプトを使う方法がある。

Continue reading “Zeranoe ffmpeg、9月18日に閉鎖へ”

音声のチャンネルレイアウトを変えるchannelmap

ステレオの左右を入れ替えたり、3つの音声を合わせると2.1チャンネル、3チャンネル(前)、3チャンネル(後)など推定できないときにレイアウトを指定するのに使うchannelmapフィルタの使い方。コーデックが対応してないレイアウトの時にレイアウトを直すことでエンコーダに渡せる。チャンネルにないレイアウトを指定したら音がなくなるので配置を正しく行う。チャンネルから一部のレイアウトを取り出すこともできる。

左右を入れ替えたり、混ぜたり音量を変えるpanフィルタや、複数ファイルを入力して複数チャンネルにするamergeフィルタや、amergechannelmapフィルタを合わせたjoinフィルタもある。

Continue reading “音声のチャンネルレイアウトを変えるchannelmap”