การใช้ตัวกรองมาตราส่วนจะทำ แต่ก็มีอีกเล็กน้อย
ffmpeg -i input.mov -vf scale=720x406 output.mov
จะสร้างภาพยนตร์ที่มีขนาดพิกเซลที่ต้องการ แต่ถ้าคุณดูผลลัพธ์คุณจะพบว่ามันเพิ่มข้อมูลลงในข้อมูลเมตาเพื่อที่จะเล่นในอัตราส่วนเดียวกันกับต้นฉบับโดยใช้พิกเซลที่ไม่ใช่สี่เหลี่ยมจัตุรัส ดังนั้นหากคุณต้องการขยายภาพยนตร์ไปเป็นอัตราส่วนใหม่คุณต้องตั้งค่าอัตราส่วนพิกเซลด้วยตนเองเรียกว่า SAR สำหรับ "อัตราส่วนภาพตัวอย่าง" ดังนั้นสำหรับพิกเซลสี่เหลี่ยมใช้:
ffmpeg -i input.mov -vf scale=720x406,setsar=1:1 output.mov
หรือคุณสามารถตั้งค่าอัตราส่วนภาพที่แสดงตามที่คุณต้องการได้
ffmpeg -i input.mov -vf scale=720x406,setdar=16:9 output.mov
สิ่งที่ฉันทำด้วยคำสั่ง -vf และ x = y, z = a แสดงออกว่าต่อไปนี้คือการสร้างห่วงโซ่ของฟิลเตอร์ ตัวกรองอาจค่อนข้างซับซ้อน แต่ในการใช้งานที่ง่ายที่สุดพวกเขาใช้แบบฟอร์มeffect=parameter,nexteffect=anotherparameter
และพวกเขาจะได้รับการดำเนินการตามลำดับที่คุณเขียน
คุณอาจต้องการใส่คำสั่งเพิ่มเติมสำหรับตัวแปลงสัญญาณและอื่น ๆ เช่น-c:v libx264
ใช้ตัวเข้ารหัส mp4 x264 และสิ่งที่ต้องการ-crf 20
ตั้งค่าตัวประกอบอัตราคงที่เป็น 20 (โดยปกติแล้วจะเป็นการดีระหว่างขนาดและคุณภาพ) ดังนั้นคำสั่งที่สมบูรณ์แบบสมเหตุสมผลจะมีลักษณะ:
ffmpeg -i input.mov -vf scale=720x406,setdar=16:9 -c:v libx264 -preset slow -profile:v main -crf 20 output.mov
โปรไฟล์หลักนั้นดีสำหรับความเข้ากันได้ของอุปกรณ์slow
ตัวเข้ารหัส libx264 ที่ตั้งไว้ล่วงหน้านั้นมีความสมดุลที่ค่อนข้างดีของความเร็วและคุณภาพดังนั้นนี่จึงเป็นวิธีการเข้ารหัสเว็บที่ดีโดยทั่วไป คุณสามารถทำให้เร็วขึ้นโดยใช้fast
หรือveryfast
ช้าลงด้วยveryslow
และplacebo
จะทำให้ดีขึ้นเล็กน้อยกว่าveryslow
โดยเสียเวลาในการประมวลผลมากขึ้น (ดังนั้นชื่อ)
BTW อย่าใช้ -c copyนั่นหมายถึงเพียงแค่คัดลอกวิดีโอและออดิโอสตรีมโดยไม่ต้องทำอะไรกับพวกเขาเลยดังนั้นไม่มีอะไรที่คุณทำในแง่ของขนาดตัวแปลงสัญญาณบิตเรต ฯลฯ จะมีผลกระทบใด ๆ