ฉันมีไฟล์ MP4 ของการบันทึกหน้าจอที่ฉันต้องครอบตัด ฉันจะทำสิ่งนี้ให้สำเร็จโดยไม่ต้องใช้เครื่องมือราคาแพงอย่าง Adobe Premier หรือ Final Cut ได้อย่างไร ฉันชอบffmpeg
เพราะฉันเคยใช้มาก่อน
ฉันมีไฟล์ MP4 ของการบันทึกหน้าจอที่ฉันต้องครอบตัด ฉันจะทำสิ่งนี้ให้สำเร็จโดยไม่ต้องใช้เครื่องมือราคาแพงอย่าง Adobe Premier หรือ Final Cut ได้อย่างไร ฉันชอบffmpeg
เพราะฉันเคยใช้มาก่อน
คำตอบ:
ใช้crop
ตัวกรอง :
ffmpeg -i in.mp4 -filter:v "crop=out_w:out_h:x:y" out.mp4
โดยที่ตัวเลือกมีดังนี้:
out_w
คือความกว้างของสี่เหลี่ยมผืนผ้าเอาต์พุตout_h
คือความสูงของสี่เหลี่ยมผืนผ้าผลลัพธ์x
และy
ระบุมุมบนซ้ายของสี่เหลี่ยมออก
รูปภาพ 320x240 ต้นฉบับ
หากต้องการครอบตัดส่วน 80 × 60 ให้เริ่มจากตำแหน่ง (200, 100):
ffmpeg -i in.mp4 -filter:v "crop=80:60:200:100" -c:a copy out.mp4
หากต้องการครอบตัดไตรมาสล่างขวา:
ffmpeg -i in.mp4 -filter:v "crop=in_w/2:in_h/2:in_w/2:in_h/2" -c:a copy out.mp4
นี่คือเช่นเดียวกับ:
ffmpeg -i in.mp4 -filter:v "crop=320/2:240/2:320/2:240/2" -c:a copy out.mp4
ซึ่งเหมือนกับ:
ffmpeg -i in.mp4 -filter:v "crop=240:120:240:120" -c:a copy out.mp4
in_w
และin_h
ตามที่แสดงในตัวอย่างแรกนี้ ความกว้างและความสูงของการส่งออกนอกจากนี้ยังสามารถนำมาใช้กับและout_w
out_h
ครอบตัด 20 พิกเซลจากด้านบนและ 20 จากด้านล่าง:
ffmpeg -i in.mp4 -filter:v "crop=in_w:in_h-40" -c:a copy out.mp4
x
และy
ถูกละเว้นเช่นในตัวอย่างนี้คุณสามารถทำการครอบตัด (heh heh) และดูตัวอย่างแบบสดๆด้วยffplay
:
ffplay -i input -vf "crop=in_w:in_h-40"
วิธีนี้คุณสามารถทดลองและปรับการครอบตัดของคุณโดยไม่จำเป็นต้องเข้ารหัสดูทำซ้ำ
ตัวเข้ารหัสเริ่มต้นสำหรับ MP4 คือlibx264
(วิดีโอ H.264) หรือmpeg4
(วิดีโอ MPEG-4 ตอนที่ 2) ขึ้นอยู่กับffmpeg
โครงสร้างของคุณ ดูFFmpeg Wiki: คู่มือการเข้ารหัสวิดีโอ H.264สำหรับข้อมูลเพิ่มเติม
แทนที่จะครอบตัดและเข้ารหัสอีกครั้งให้ลองตัดเมื่อเล่น นี่เป็นไปได้กับผู้เล่นที่มีมูลค่าการใช้
โบราณffmpeg
สร้างมาใช้-croptop
, -cropbottom
, -cropleft
, -cropright
ตัวเลือกแทนการcrop
กรอง หากเป็นกรณีนี้สำหรับคุณแล้วได้รับทันสมัย ffmpeg
การพัฒนามีความกระฉับกระเฉงและไม่มีเหตุผลที่จะใช้โบราณวัตถุ
/Users/kukodajanos/Workspace/ffmpeg -i /Users/kukodajanos/Desktop/video_640x480-2.mp4 -filter:v "crop=1920:1080:0:0" -c:a copy /Users/kukodajanos/Desktop/video_640x480-4.mp4
แต่หนังต้นฉบับกลับมาแล้ว
crop
ตัวกรอง) เข้ารหัสวิดีโออีกครั้งดูstackoverflow.com/questions/33378548/หากการเข้ารหัสใหม่มีความสำคัญกับคุณ
-filter:v
ไปเป็นจำนวนมากขึ้นและพิมพ์-vf
ได้ง่ายขึ้น ไชโย!