夜間バッチ・プロキシ/本番の二段構成・遠方ストレージ読み込みでは、FFmpeg×VideoToolbox の 並列 と キュー・タイムアウト が支配的です。算力選定(ProRes)・VT 詳細表 と併読し、日本・米西・シンガポール などデータ面に合わせてノードを選んでください。
シナリオ
リモート M4 でキューから ffmpeg を起動し、HW デコード+HW エンコード で動画バッチを回す想定です。ソースが遠いと VT より先に 読み取り が詰まります。表は初期値なので 代表クリップ で並列を確かめてください。
ハードウェア能力の境界
ユニファイドメモリ がデコード・フィルタ・エンコードを共有します。16GB は 4K VT を主に1本、24GB で 1080p 並列に余裕。CPU フィルタが入ると VT が効きにくいので 前処理 と VT はキュー分離が無難です。解像度しきい値は VT マトリクス を参照。
パラメータマトリクス
バッチ初期値。品質は -q:v、配信はビットレートとセットで調整。
| ワークロード | 並列 VT セッション(目安) | preset / レート制御(例) | I/O 方針 | 一時ディスクパス(例) | タイムアウトと降格 |
|---|---|---|---|---|---|
| 1080p プロキシ大量生成 | 16GB:2〜3 24GB:3〜4 | h264_videotoolbox -b:v 5M 目安 |
同一 APFS、読み並列 ≤ セッション | /Volumes/fastwork/tmp/vt/$JOB_ID |
1.5× 壁時計で kill → 並列−1 再試行 → ビットレート降下 |
| 1080p 本番 HEVC | 16GB:2 24GB:2〜3 | hevc_videotoolbox -tag:v hvc1 -b:v 12–18M |
シーケンシャル読み、書き込み1ボリューム | SSD 上専用(NFS tmp 禁止) | 2回失敗 → セグメント半分 → libx264 降格 |
| 4K SDR 中ビットレート | 16GB:1+軽作業 24GB:1〜2 | -q:v 65 品質/-maxrate 配信 |
ソースと同一リージョン(TCO) | work/+.part |
15分分割、TTL 超 → 保留+通知 |
デコード+エンコード(実行例):ハードウェアデコード試行後、H.264 で書き出し。
ffmpeg -hide_banner -hwaccel videotoolbox -i "$SRC" \ -c:v h264_videotoolbox -b:v 10M -maxrate 12M -bufsize 24M \ -pix_fmt yuv420p -c:a aac -b:a 192k "$DST.part" \ && mv "$DST.part" "$DST"
エンコードのみ VT、デコードはネイティブに任せる例(フィルタなしの単純経路):
ffmpeg -i "$SRC" -c:v hevc_videotoolbox -tag:v hvc1 \ -b:v 16M -c:a copy "$DST.part" && mv "$DST.part" "$DST"
キューとディスク
FAQ
HW デコード必須? いいえ。デコード詰まりなら試す。フィルタで CPU 落ちするかはログ確認。
多並列のコツ: 出力名をジョブID分離、tmp 掃除、ディスクランダム書きを避ける。
遅いのが跨境だけ: ワーカーをデータ近くへ。リージョン稿 参照。