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

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

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

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

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

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

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

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

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

vlukanのハードウェア支援を受けた汎用フィルタlibplacebo

リサイズ、デバンディング、トーンマッピング、色相調整などができる外部ライブラリのlibplaceboフィルタの使い方。パラメータが多いので一部を抜粋。

haasn/libplacebo: Official mirror of libplacebo

Continue reading “vlukanのハードウェア支援を受けた汎用フィルタlibplacebo”

ffmpeg 5.0リリース

2022年1月15日に ffmpeg 5.0 Desitter(ウィレム・ド・ジッターLorentz(ヘンドリック・ローレンツ)がリリースされた。今回のリリースはメジャーアップデートとなり、4.4以降に追加された新機能の中からマスターにしか追加されていなかったフィルタやエンコーダ、デコーダ等の新機能が全て取り込まれた。

気になる新機能はハードウェア支援を受けて多様なフィルタが使えるlibplaceboフィルタ、MacOS向けのVideoToolbox ProResエンコーダ、scaleフィルタ、-sオプションのslice threading対応、フィルタ内でファイル分割するsegmentフィルタなど。リリースノートにない部分ではDolby Vision RPUパース対応と、-readrateオプションで読み込み速度を任意に制限できる。

ffmpeg でダウンロード速度を制限する

前回記事:ffmpeg 4.4 リリース

Continue reading “ffmpeg 5.0リリース”

file宣言が不要なプロトコルconcatf

ffmpeg 4.5から使える予定のプロトコル。demuxerのconcatでつけている-f concat -safe 0や連結ファイルをまとめて記述したテキストのファイルの前に指定するfileも不要に連結できる。

concat を使い分ける

基本コマンド

ffmpeg -i concatf:split.txt -c copy output
ffplay -i concatf:split.txt

ファイル毎に改行し、split.txtで使う特殊文字はバックスラッシュの\かシングルクオートのでエスケープする。

input.mp4
video/input.mp4

'C:\Users\owner\Desktop\input.mp4'
C:/Users/owner/Desktop/input.mp4

公式ドキュメント:FFmpeg Protocols Documentation : concatf

エッジ検出フィルタscharr

ffmpeg 4.5でリリース予定のビデオフィルタ。sobelprewittrobertsはカーネルが少し異なるがオプションは同じである。

Continue reading “エッジ検出フィルタscharr”

PIDをトラックIDとしてMP4コンテナにつける

encoding – How can I setup PIDs using ffmpeg & MP4 Container? – Stack Overflowより。

-streamidを指定して、かつ-use_stream_ids_as_track_ids trueを併用する。内容はMediainfoで確認できる。

ffmpeg -i input.ts -map 0:v -map 0:a:0 -map 0:a:1 -streamid 0:0x100 -streamid 1:0x110 -streamid 2:0x111 -use_stream_ids_as_track_ids true output.mp4

映像のエントロピーを調べるentropy

各フレームのカラーチャンネルのヒストグラムにおけるグレーレベルのエントロピーを測定するentropyフィルタの使い方。各チャンネルのピクセル値の不規則性を調べる。スコアが高いとより複雑な映像になる。ほかにYUVのピクセル値の統計をログで出力するにはsignalstatsフィルタがある。

YUV のデータを数値で表示する signalstats

Continue reading “映像のエントロピーを調べるentropy”

各チャンネルのピクセル値を反転するnegate

8ビットなら255を0に反転させるnegateフィルタの使い方。lutフィルタでも同様のことができる。タイムライン編集と高ビット深度に対応。

Windows の ffmpeg で生放送する方法 – LUT(ルックアップテーブル、ラット)

Continue reading “各チャンネルのピクセル値を反転するnegate”

オーディオフレームサイズを指定するasetnsamples

通常はコーデック毎やエンコーダ毎にサンプル数が異なるがこれを任意の値に指定できるasetnsamplesフィルタの使い方。映像のフレーム毎の内容を音声と同期させるために使う。

Continue reading “オーディオフレームサイズを指定するasetnsamples”

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

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

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

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

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