Reframe + Chroma
ซูม 7 มุม × ตัดจอเขียว
จากวิดีโอ 1 คลิป ทำเป็น 21 วิดีโอใหม่ — คนละมุมกล้อง คนละ composition เหมาะกับ TikTok/Reels ที่ต้องการหลายมุม
🔄 ทบทวน TC01
TC01 = 1 product + 1 background → 1 output (ตัดจอเขียวอย่างเดียว)
TC02 = TC01 + "ซูมเข้า-ออก" — ขั้นต่อไปที่ใหญ่ที่สุด
🎬 Reframe คืออะไร?
คือการ "ครอป + ซูม" วิดีโอให้เข้ากับขนาดใหม่ โดยไม่ทำให้ภาพเสีย
ตัวอย่างในชีวิตจริง
ถ่ายวิดีโอแนวนอน 16:9 แต่อยากเอาไปลง TikTok/Reels ที่เป็น 9:16 — ปัญหาคือ ถ้าครอปธรรมดา จะเห็นแค่กลางจอ คน/ของที่อยู่ข้างๆ หายไป
Reframe คือการ "เลื่อนกล้อง" ฉลาดๆ เพื่อให้คน/ของสำคัญอยู่ในเฟรมเสมอ
7 lens ที่ V3 ใช้
แทนที่จะซูมแค่ 1 ระดับ V3 จะสร้าง 7 มุม (เลนส์) ให้เลือก — เหมือนถ่ายด้วยกล้อง 7 ตัวพร้อมกัน
🎯 3 Composition (ตำแหน่งวางคน)
นอกจากเลือก lens แล้ว ยังเลือกได้ว่าจะให้ "คน/ของ" อยู่ตรงไหนในเฟรม
🎯 center
คน/ของอยู่กลางเฟรม — มาตรฐาน ดูสบายตา
เหมาะ: ทั่วไป, presentation
👈 left
คน/ของอยู่ซ้าย เหลือพื้นที่ขวา — ใส่ข้อความ/ลูกศรได้
เหมาะ: TikTok with text overlay
👉 right
คน/ของอยู่ขวา เหลือพื้นที่ซ้าย — ใส่ข้อความ/ลูกศรได้
เหมาะ: Reels with CTA on left
⚙️ TC02 ทำงานยังไง?
TC02 = 2 ขั้นตอนหลัก (อัตโนมัติทั้งคู่)
Reframe — ซูม 7 lens × 3 composition = 21 คลิป
เอา product มาตัด/ซูม 21 แบบ บันทึกเป็นไฟล์ชั่วคราว (intermediate) — แต่ละไฟล์ยังมีจอเขียวอยู่
Chroma — เอา 21 outputs ไปตัดจอเขียวใส่ background
แต่ละ output ถูกนำไปผ่าน TC01 process เดียวกัน ได้ผลลัพธ์เป็น 21 MP4 ที่ตัดจอเขียวเรียบร้อย + มี background ใหม่
Encode — บันทึกเป็น MP4
แต่ละ output ถูก encode เป็น H.264 MP4 คุณภาพสูง พร้อมอัปโหลด
⚖️ TC01 vs TC02 — ต่างกันยังไง?
เลือกให้เหมาะกับงาน
🟢 TC01
- 📦 1 product
- 🏖️ 1 background
- ⚙️ ตั้งค่า chroma
- ✨ 1 output
- ⏱ ~2-5 วินาที
- 💾 ไฟล์เดียว
🟣 TC02
- 📦 1 product
- 🏖️ 1 background
- ⚙️ + 7 lens + 3 composition
- ✨ 21 outputs
- ⏱ ~30-90 วินาที
- 💾 21 ไฟล์ (≈ 50-200MB รวม)
- วิดีโอต้นฉบับเป็นแนวนอน แต่อยากลง TikTok/Reels (แนวตั้ง) → TC02 เหมาะสุด
- อยากได้หลายมุม ให้เลือกเวลา post (เช่น ทำ storyboard 9 ช่อง) → TC02
- อยากทำ content เดียวกัน แต่หลาย platform (9:16 + 1:1 + 16:9) → TC02 + crop_diff
📁 ไฟล์ที่ต้องมี
เหมือน TC01 + ตั้งค่า reframe เพิ่ม
📦 Product
เหมือน TC01 — วิดีโอหน้าจอเขียว MP4/MOV/MKV/AVI
ขนาดแนะนำ: แนวนอน 16:9 (1920×1080) จะได้ผลดีสุด เพราะมีพื้นที่ให้ crop ได้ทุก lens
⚠️ สำคัญ: ถ้า product เป็นแนวตั้งอยู่แล้ว (9:16) → reframe ไม่ค่อยเห็นผล ใช้ TC01 จะดีกว่า
🏖️ Background
เหมือน TC01 — ภาพหรือวิดีโอฉากหลัง
ความยาว: ≥ product (ถ้าสั้นจะ loop)
Aspect ratio: ตรงกับ output (เช่น 9:16 สำหรับ TikTok)
ตั้งค่า reframe เพิ่ม
💻 ลองเรียก API
ตัวอย่าง Python — TC02 เต็มรูปแบบ
# tc02_render.py — เรียก V3 API แบบ TC02 (reframe + chroma)
import requests, time
BASE = "https://green.cutdee.com/v3api"
API_KEY = "cutdee_vdo_..." # เก็บใน env
H = {"Authorization": f"Bearer {API_KEY}"}
# 1. Submit TC02
files = {
"product": ("interview.mp4", open("interview.mp4", "rb"), "video/mp4"),
"background": ("studio.mp4", open("studio.mp4", "rb"), "video/mp4"),
}
data = {
# Chroma settings (เหมือน TC01)
"width": "1080", "height": "1920",
"preset": "fast", "key_color": "#00FF00",
"similarity": "0.32", "blend": "0.06", "despill": "0.35",
# TC02 extras: reframe settings
"reframe_lens_count": "7",
"reframe_compositions": "center,left,right",
}
r = requests.post(f"{BASE}/api/render/tc02", files=files, data=data, headers=H, timeout=300)
job = r.json()
print("queued:", job["job_id"])
# 2. Poll (TC02 ใช้เวลานานกว่า TC01)
while True:
j = requests.get(f"{BASE}/api/job/{job['job_id']}", headers=H).json()
print(f" {j['status']:12s} progress={j.get('progress', 0)}% outputs={len(j.get('output_files', []))}")
if j["status"] in ("succeeded", "failed"):
break
time.sleep(3)
# 3. Download ทั้ง 21 ไฟล์
if j["status"] == "succeeded":
for fn in j["output_files"]:
out = requests.get(
f"{BASE}/api/v1/jobs/{job['job_id']}/download/{fn}", headers=H)
open(f"results/{fn}", "wb").write(out.content)
print(f" saved {fn} ({len(out.content)} bytes)")
🧠 ทดสอบความเข้าใจ
❓ 1. TC02 ได้ outputs กี่ไฟล์ (ถ้าตั้งค่าเต็ม)?
❓ 2. ถ้า product เป็นวิดีโอ 16:9 อยากลง TikTok (9:16) — เลือก mode ไหน?
❓ 3. reframe_lens_count=3 หมายถึงอะไร?
💡 เคล็ดลับใช้งาน
🎯 เลือก lens น้อย เพื่อเร็ว
ถ้าไม่อยากได้ 21 ไฟล์ → ตั้ง reframe_lens_count=3 จะได้ 9 ไฟล์ (3 lens × 3 composition) เร็วขึ้น 3 เท่า
📐 Output เป็น 9:16 หรือ 1:1?
TC02 จะใช้ aspect ratio จาก width + height — ถ้าใส่ 1080×1920 = 9:16 (TikTok) แต่ถ้าใส่ 1080×1080 = 1:1 (Instagram square)
💾 เก็บไฟล์ยังไง
21 ไฟล์ = 50-200MB รวม — ใช้ zip download หรือเก็บแยก folder ตาม lens
🔄 ทำเป็น storyboard
21 outputs สามารถเอาไปทำ Instagram carousel (3x7 grid) หรือ 9-grid post ได้
⚠️ ข้อผิดพลาดที่พบบ่อย
TC02 reframe จากแนวนอน→แนวตั้ง ถ้า product เป็นแนวตั้งอยู่แล้วจะ crop แค่เล็กน้อย ไม่ค่อยเห็นความต่าง — ใช้ TC01 จะคุ้มกว่า
ถ้าไม่อยากได้ 21 ไฟล์ → ตั้ง lens_count=1 (เฉพาะ center) ใช้เวลาเท่า TC01 แต่ได้ chroma 1 ไฟล์ (ไม่ใช่ TC02)
TC02 ต้องการ background เพื่อเอาไป composit กับ reframe outputs ถ้าไม่ใส่จะ fail
📚 เรียนอะไรต่อดี?
- TC03 (Batch + Chroma) — ตัดวิดีโอยาวเป็นชิ้นๆ เหมาะทำ shorts จาก vlog
- Python สำหรับเรียก API — เรียนเขียน script เรียก V3 API แบบนี้แต่ batch 100+ jobs
- คำนวณต้นทุน — 21 outputs/render × 100 renders = 2,100 files = ค่าใช้จ่ายเท่าไหร่