# FFmpegガイド

FFmpegと連携した動画変換・処理機能の説明です。

## いつ使うか

FileDirectorのFFmpeg機能は主に以下の目的で使用します：

- **Web UIで再生できない動画をMP4に変換する** — ブラウザはH.265（HEVC）や特定のコーデックを再生できないことがあります。MP4（H.264）に変換するとスマホ・PCブラウザで確実に再生できます
- **動画から音声だけを取り出す**
- **複数の動画ファイルを1つに結合する**
- **動画の向きを修正する**（スマホ撮影の縦向き動画など）

---

## セットアップ

FFmpegは同梱されていません。別途インストールして設定が必要です。

1. [https://ffmpeg.org/](https://ffmpeg.org/) からダウンロード（フルビルド版を推奨）
2. 設定画面で `ffmpeg.exe` と `ffprobe.exe` のパスを指定

---

## 基本操作

1. ファイルリストでファイルを選択（複数選択可）
2. 右クリック → **FFMPEG** サブメニューを選択
3. 変換オプションを選択
4. 確認ダイアログで「Yes」
5. 完了後、出力ファイルが自動でDBに追加（元ファイルのタグを引き継ぎ）

---

## 変換オプション一覧

### Convert to mp4 グループ

| メニュー表示 | 内容 | 用途 |
|---|---|---|
| **Copy streams** | ストリームをそのままMP4コンテナに格納（再エンコードなし） | MKV・AVIなどをWeb UI対応のMP4に変換。高速で画質劣化なし |
| **Copy streams (ignore DTS)** | DTS（デコードタイムスタンプ）エラーを無視してコピー | Copy streamsでエラーが出る動画に使用 |
| **Re-encode (libx264)** | H.264でソフトウェア再エンコード | コーデック非対応の動画や、ファイルサイズを削減したい場合 |
| **Re-encode (nVidia h264_nvenc)** | NVIDIA GPUでH.264エンコード | GeForce/RTX/Quadroがある場合に高速処理 |
| **Re-encode (AMD h264_amf)** | AMD GPUでH.264エンコード | Radeonがある場合に高速処理 |
| **Re-encode (Intel h264_qsv)** | Intel GPU（QuickSync）でH.264エンコード | Intel内蔵グラフィックスがある場合に高速処理 |

**コーデックの選び方（Web UI再生を目的とする場合）:**

```
まず試す → Copy streams
  ↓ エラーが出たら → Copy streams (ignore DTS)
  ↓ それでもダメなら → Re-encode (libx264) または GPU版
```

### Transform グループ

| メニュー表示 | 内容 |
|---|---|
| **Rotate 90° CW** | 時計回り90°回転 |
| **Rotate 90° CCW** | 反時計回り90°回転 |
| **Rotate 180°** | 180°回転 |
| **Flip Horizontal** | 左右反転 |
| **Flip Vertical** | 上下反転 |

### その他

| メニュー表示 | 内容 | 用途 |
|---|---|---|
| **Extract audio stream** | 音声のみをM4Aファイルとして抽出 | 動画から音声ファイルを作成 |
| **Extract video stream** | 映像のみをM4Vファイルとして抽出（音声なし） | 音声トラックの除去 |
| **Concatenate** | 複数動画を1つに結合（再エンコードなし） | 同じコーデックの動画を高速結合 |
| **Multiplex** | 音声ファイルと映像ファイルを合成してMP4作成 | 別々に録った音声と映像を合わせる |
| **Thru-coding** | `-c copy` でファイルを再構築 | コンテナ問題のある動画ファイルの修復 |
| **[ユーザー定義]** | 設定に登録したカスタムFFmpegコマンドを実行 | 独自の変換処理 |

---

## 品質設定

再エンコード時の品質は設定画面で変更できます。

| 設定項目 | 対象オプション | デフォルト | 備考 |
|---|---|---|---|
| **CRF値** | Re-encode (libx264) | 23 | 低いほど高品質・大容量。0〜51の範囲 |
| **CQ値** | Re-encode (nVidia h264_nvenc) | 28 | 低いほど高品質 |
| **AMD AMFオプション** | Re-encode (AMD h264_amf) | — | スペース区切りの追加引数 |

CRF値の目安：
- 18〜23：高品質（アーカイブ用）
- 23〜28：通常用途
- 28〜35：ファイルサイズ優先

---

## トラブルシューティング

### FFmpegが見つからないと表示される
設定画面で `ffmpeg.exe` のパスを確認してください。パスが設定されていない場合、FFMPEG メニュー自体が表示されません。

### Copy streamsで変換後もブラウザで再生できない
映像コーデックがH.265（HEVC）やその他のブラウザ非対応コーデックの場合は、再エンコードが必要です。Re-encode オプションをご使用ください。

### GPU変換でエラーが出る
対応するGPUがない環境でGPUオプションを選択するとエラーになります。Re-encode (libx264) をお使いください。
