#!/usr/bin/env bash
# gpu-nvenc-sweep2.sh —— 补跑更高 cq 档位（cq26 对这条源太奢侈，码率比源码率还高）
set -uo pipefail
SRC="${1:?源文件}"; OUT="${2:?输出目录}"; FF="${3:-ffmpeg}"
SEGS=(900 3000 5200); DUR=40
mkdir -p "$OUT"
V=(
  "nv-p3-cq33|av1_nvenc|-preset p3 -tune hq -bf 6 -lookahead_level 2 -qp_cb_offset 12 -cq 33"
  "nv-p3-cq36|av1_nvenc|-preset p3 -tune hq -bf 6 -lookahead_level 2 -qp_cb_offset 12 -cq 36"
  "nv-p5uhq-cq32|av1_nvenc|-preset p5 -tune uhq -bf 6 -lookahead_level 2 -qp_cb_offset 12 -cq 32"
  "nv-p7-cq32|av1_nvenc|-preset p7 -tune hq -cq 32"
)
for item in "${V[@]}"; do
  name="${item%%|*}"; rest="${item#*|}"; enc="${rest%%|*}"; params="${rest#*|}"
  for s in "${SEGS[@]}"; do
    out="$OUT/av1-$name-$s.mp4"
    [ -s "$out" ] && continue
    nice -n 19 "$FF" -hide_banner -nostdin -loglevel error -y -ss "$s" -t "$DUR" -i "$SRC" \
      -map 0:v:0 -map "0:a:0?" -c:a aac -b:a 128k \
      -c:v "$enc" $params -pix_fmt yuv420p -movflags +faststart "$out" 2>"$OUT/err-$name-$s.log" \
      || { echo "  ❌ $name @ ${s}s：$(tail -1 "$OUT/err-$name-$s.log")"; continue; }
    echo "  ✅ $name @ ${s}s  $(du -h "$out"|cut -f1)"
  done
done
echo "✅ 补充档位完成"
