技術書典9開催中の現在はそちらでの購入が100円安くなっています。技術書典9終了してから新しいバージョンに差し替えます。 https://techbookfest.org/product/5702243030401024 技術書典7(2019/9/22)で頒布したFFmpegの本のPDF版(カラー) https://techbookfest.org/event/tbf07/circle/5116704724090880 振り返りレポート https://nico-lab.net/feedback_techbookfest7/ 技術書典9で頒布したオーディオフィルタの本 https://nico-lab.booth.pm/items/2400770
公式サイト
https://nico-lab.net https://looooooooop.blog.fc2.com
【概要】 いつも使い方をググっている人が最初に調べるFFmpegの本。 内容はブログで書いてきたことを中心に改稿したものになる。他のブログでよく紹介されている使い方から便利な使い方まで基本的な使い方を紹介する。 バージョンは1.xと2.xの両方がダウンロードできる。 【フォーマット】 PDF, A4サイズ, 139ページ(v2.1) 【目次 v1.5の抜粋】 冒頭部分は無料のサンプルをご覧ください。v2.0以降はVScodeでPDF出力しているので目次にページ番号が付いていない。 https://nico-lab.booth.pm/items/1583916 【目次 v1.5】 1章 はじめに 4 1.1 この本の対象者 4 1.2 著者説明 4 1.3 日本語訳について 4 1.4 ファイル名について 4 1.5 読む順番について 5 1.6 扱わない、扱いが少ない内容 5 1.7 免責事項 5 2章 FFmpegの基本 5 2.1 FFmpegをダウンロードする 5 2.2 ログの見方 6 2.3 オプションの順番 10 2.4 扱えるファイルの種類 11 2.5 ダウンローダとして使う 11 2.6 テストソースを作る 12 2.6.1 映像のテストソース 12 2.6.2 音声のテストソース 15 3章 よく使う設定について 16 3.1 オプション 16 3.2 ビットレート 17 3.3 フレームレート 17 3.4 時間指定 19 3.5 出力を振り分ける 20 3.6 一入力複数出力 21 3.6.1 teeマクサ 22 3.6.2 segmentマクサ 22 3.6.3 fifoマクサ 23 3.7 リサイズ(簡易) 25 3.8 無音・音量調整 26 3.9 音声チャンネルを操作する 27 3.9.1 チャンネルレイアウト 27 3.9.2 channelsplitフィルタ 27 3.9.3 panフィルタ 28 3.9.4 amergeフィルタ 29 3.9.5 amixフィルタ 30 3.10 音声だけ、映像だけにする 30 3.11 字幕について(ソフトサブ) 31 3.12 複数ファイルをつなげる 32 3.12.1 concatフィルタ 32 3.12.2 concatプロトコル 33 3.12.3 concatデマクサ 33 3.13 動画から画像を作る 34 3.13.1 画像1枚を出力する 35 3.13.2 最終フレームだけ出力する 36 3.13.3 隣り合うフレームを出力する 36 3.13.4 指定秒間で出力する 37 3.13.5 指定フレーム間で出力する 37 3.13.6 一定秒間隔で出力する 37 3.13.7 一定フレーム間隔で出力する 38 3.13.8 フレームタイプを指定して出力する 38 3.14 画像から動画を作る 39 3.14.1 1枚画像から動画を作る 39 3.14.2 連番画像から動画を作る 40 3.15 タイムラプス動画を作る 41 3.15.1 動画から作る 41 3.15.2 画像から作る 41 3.16 デスクトップ画面を録画する 42 3.17 アニメーションGIFを作る 43 4章 フィルタについて 45 4.1 書き方 45 4.1.1 エスケープ処理 46 4.1.2 評価式 47 4.1.3 タイムライン編集 49 4.2 リサイズ(詳細) 49 4.2.1 scaleフィルタ 49 4.2.2 zscaleフィルタ 51 4.2.3 解像度を大きくする 52 4.2.3.1 hqxフィルタ 52 4.2.3.2 super2xsaiフィルタ 52 4.2.3.3 xbrフィルタ 52 4.3 映像の一部を切り取る(クロップ) 52 4.4 映像に余白を追加する(パディング) 54 4.5 映像の上に映像を載せる(オーバーレイ) 55 4.6 映像を並べる 56 4.6.1 tileフィルタ 57 4.6.2 hstack, vstackフィルタ 58 4.6.3 xstackフィルタ 58 4.7 映像を回転させる 59 4.7.1 transposeフィルタ 59 4.7.2 vflip, hflipフィルタ 61 4.7.3 rotateフィルタ 61 4.8 映像を先鋭化する(シャープ) 63 4.9 映像をぼかす(ブラー) 64 4.9.1 avgblurフィルタ 64 4.9.2 gblurフィルタ 64 4.9.3 avgblur, gblurフィルタの比較画像 65 4.10 映像のノイズを減らす(デノイズ) 65 4.10.1 bm3dフィルタ 65 4.10.2 dctdnoizフィルタ 65 4.10.3 fftdnoizフィルタ 66 4.10.4 hqdn3dフィルタ 67 4.10.5 owdenoiseフィルタ 68 4.10.6 vaguedenoiserフィルタ 68 4.10.7 deblockフィルタ 69 4.10.8 nlmeansフィルタ 70 4.10.9 各フィルタの画像比較 70 4.11 映像のインターレースを解除する 72 4.11.1 bwdifフィルタ 72 4.11.2 nnediフィルタ 72 4.11.3 w3fdifフィルタ 73 4.11.4 yadifフィルタ 74 4.12 映像のフレームを処理する 74 4.12.1 fpsフィルタ 75 4.12.2 framestepフィルタ 75 4.12.3 decimateフィルタ 75 4.12.4 mpdecimateフィルタ 75 4.12.5 minterpolateフィルタ 76 4.13 映像の手ぶれを補正する 76 4.13.1 vidstabdetectフィルタ 76 4.13.2 vidstabtransformフィルタ 77 4.14 映像を逆再生にする 79 4.15 再生速度を変える 80 4.15.1 映像の再生速度を変える 80 4.15.1.1 PTSを変える 80 4.15.1.2 フレームレートを変える 80 4.15.1.3 再エンコードせずに変える 80 4.15.2 音声の再生速度を変える 81 4.15.2.1 atempoフィルタ 81 4.15.2.2 rubberbandフィルタ 81 4.15.3 速度変更のまとめ 82 4.16 映像に文字を書き込む(ハードサブ) 82 4.16.1 描写を読みやすくするには 87 4.16.2 応用例 88 4.17 映像に四角い枠を書き込む 89 4.18 映像に一定間隔の直線を引く 91 4.19 映像にある文字を認識する(OCR) 92 4.20 映像にクロマキー処理をして指定色を透過させる 93 4.21 映像にフェードの効果を追加する 95 4.21.1 fadeフィルタ 95 4.21.2 afadeフィルタ 96 4.21.3 acrossfadeフィルタ 97 4.21.4 映像と音声をクロスフェードする 99 4.22 setpts, asetptsフィルタとはなにか 99 5章 音声を映像化する 100 5.1 リアルタイムでVUメーターを表示 100 5.2 音量を1枚画像で出力 101 5.3 Y軸に振幅、X軸に周波数の波形を表示 102 5.5 周波数スペクトラムを表示 106 5.6 CQTを表示 108 5.7 オシロスコープを表示 108 5.8 LUFSを表示 110 6章 ファイルを扱う 110 6.1 ピクセルフォーマットについて 111 6.2 コンテナフォーマットについて 112 6.3 エンコーダについて 112 6.4 デバイスについて 112 6.4.1 dshow 112 6.4.2 sdl 115 6.4.3 opengl 115 6.4.4 decklink 115 6.4.5 Windows以外のOS 116 7章 エンコードについて 116 7.1 映像のエンコード設定 116 7.1.1 libx264 116 7.1.1.1 h264_metadata 120 7.1.2 libvpx-vp9 122 7.1.2.1 vp9_metadata 124 7.2 音声のエンコード設定 124 7.2.1 aac 124 7.2.2 libfdk_aac 125 7.2.3 opus 126 7.2.4 libopus 127 7.3 目的別のエンコード設定 127 7.3.1 Twitter 127 7.3.2 YouTube 129 7.3.3 ニコニコ動画 130 8章 RTMP、HLS、DASHについて 131 8.1 RTMP 131 8.2 HLS 133 8.3 DASH 136 9章 ffplayについて 138 10章 後書き 140 11章ビデオフィルタ一覧とブログ記事のリンク 141 6.2 コンテナフォーマットについて(グラフ) 151 6.3 エンコーダについて(グラフ) 156
アップデート履歴
[2019-09-12: v1.0] 頒布した書籍版 [2019-09-20: v1.1] 頒布したPDF版 [2019-09-25: v1.2] 見出しやリンク挿入など一部を修正した版 [2019-09-30: v1.3] 「3.16 デスクトップ画面を録画する」を修正した版 [2019-12-31: v1.5] 「3.13.1 画像 1 枚を出力する 」にJPGの正確な品質指定の追記 「4.16 映像に文字を書き込む(ハードサブ) 」にstrftime()書式を追記 「7.3.1 Twitter 」現在の仕様に修正 そのほか細部修正 [2020-09-22: v2.0] 技術書典9で頒布したバージョン。文章の校正など大きく修正している。 [2020-12-26: v2.1] 細部の表現を修正 xfadeフィルタを追加 個別項目にブログリンクを追加 -start_numberを入力オプションから出力オプションに訂正 Twitter投稿形式でオープンGOPではなく、クロースGOPに訂正 gdigrabの座標のオフセットは右上ではなく左上に訂正
動作環境
Windows 10/8/7 FFmpegのバージョンは4.2