ความหมายของคำสั่ง zoompan ของ ffmpeg
-vf "zoompan=z='min(zoom+0.0003,1.05)':d=100"
คำสั่ง -vf "zoompan=z='min(zoom+0.0003,1.05)':d=100" คือการสั่งให้ ซูมเข้า (Zoom-in) วิดีโอทีละน้อยอย่างช้าๆ และนุ่มนวล โดยมีรายละเอียดการทำงานของแต่ละพารามิเตอร์ดังนี้
โครงสร้างคำสั่ง
- -vf: ย่อมาจาก Video Filter เป็นการบอกให้โปรแกรมเรียกใช้ฟิลเตอร์จัดการภาพวิดีโอ
- zoompan: ชื่อฟิลเตอร์ที่ใช้สำหรับทำเอฟเฟกต์ ซูม (Zoom) และ เลื่อนมุมกล้อง (Pan)
การทำงาน
z='min(zoom+0.0003,1.05)'
zoom+0.0003: ในทุกๆ เฟรมที่ภาพวิ่งผ่าน โปรแกรมจะเพิ่มระยะซูมเข้าไปทีละ 0.0003 เท่าจากเฟรมก่อนหน้า ทำให้ภาพค่อยๆ ขยายใหญ่ขึ้นอย่างช้าๆ
1.05: คือค่าซูมสูงสุดที่ยอมให้ขยายได้ (ขยายใหญ่ขึ้น 5% จากขนาดภาพต้นฉบับ)
min(..., 1.05): ฟังก์ชันหาค่าที่น้อยที่สุด ทำหน้าที่เป็นตัวล็อกไม่ให้ซูมเกิน 1.05 เท่า เมื่อซูมถึงจุดนี้แล้ ภาพจะหยุดนิ่งอยู่กับที่ ไม่ขยายต่อ
d=100
หมายถึงให้เอฟเฟกต์นี้ทำงานต่อเนื่องเป็นจำนวน 100 เฟรม (ถ้าเทียบกับวิดีโอทั่วไปที่มี 25 fps เอฟเฟกต์นี้จะทำงานยาวนานประมาณ 4 วินาที)
ผลลัพธ์ที่ได้
ภาพวิดีโอจะค่อยๆ ซูมเข้าอย่างช้ามากๆ สไตล์ภาพยนตร์ (Slow Zoom-in) ตั้งแต่เฟรมแรก และจะไปหยุดนิ่งอย่างนุ่มนวลเมื่อขนาดขยายถึง 1.05 เท่าของภาพเดิม
ตัวอย่างการใช้คำสั่ง
ffmpeg -i "input.mp4" -vf "scale=1920:1080,zoompan=z='min(zoom+0.0003,1.05)':d=100" -c:v libx264 -pix_fmt yuv420p "output.mp4"
ffplay -i "input.mp4" -vf "zoompan=z='min(zoom+0.0003,1.05)':d=100"
ไม่มีความคิดเห็น:
แสดงความคิดเห็น