ลบ. mp4 วิดีโอบนและแถบสีดำด้านล่างโดยใช้ ffmpeg


23

ฉันใหม่กับ ffmpeg และฉันเคยได้ยินว่ามันมีตัวกรองสำหรับสีดำ ฉันต้องการลบแถบสีดำที่ด้านบนและด้านล่างของวิดีโอดังนั้นวิดีโอจะถูกตัดไปยังวิดีโอที่เหลือโดยไม่มีแถบสีดำ ขอบคุณ :)

ffmpeg  mp4 

Windows? ติดตั้ง WinFF มันจะช่วยให้คุณสามารถพิมพ์ค่าที่คุณต้องการครอบตัดผ่าน GUI ...
Kinnectus

คำตอบ:


40

FFmpeg ครอบตัดการตรวจสอบและตัวกรองครอบตัด

1. รับพารามิเตอร์การครอบตัด

cropdetectสามารถใช้เพื่อจัดเตรียมพารามิเตอร์สำหรับตัวกรองการครอบตัด ในตัวอย่างนี้ 90 วินาทีแรกถูกข้ามและประมวลผล 10 เฟรม:

$ ffmpeg -ss 90 -i input.mp4 -vframes 10 -vf cropdetect -f null -
...
[Parsed_cropdetect_0 @ 0x220cdc0] x1:0 x2:1279 y1:0 y2:719 w:1280 h:720 x:0 y:0 pts:215 t:0.215000 crop=1280:720:0:0
[Parsed_cropdetect_0 @ 0x220cdc0] x1:0 x2:1279 y1:0 y2:719 w:1280 h:720 x:0 y:0 pts:257 t:0.257000 crop=1280:720:0:0
[Parsed_cropdetect_0 @ 0x220cdc0] x1:0 x2:1279 y1:0 y2:719 w:1280 h:720 x:0 y:0 pts:299 t:0.299000 crop=1280:720:0:0

ดังนั้นตามการตรวจจับพืชที่เราสามารถcrop=1280:720:0:0ใช้ได้

2. ดูตัวอย่างด้วย ffplay

$ ffplay -vf crop=1280:720:0:0 input.mp4

3. เข้ารหัสอีกครั้งโดยใช้ตัวกรองการครอบตัด

$ ffmpeg -i input.mp4 -vf crop=1280:720:0:0 -c:a copy output.mp4

ในตัวอย่างนี้เสียงเป็นเพียงการคัดลอกสตรีม (muxed อีกครั้ง) เนื่องจากคุณอาจไม่จำเป็นต้องเข้ารหัสอีกครั้ง

ยังดู


ครอบตัดในระหว่างการเล่น

ดังที่คุณเห็นด้านบนพร้อมffplayตัวอย่างผู้เล่นบางคนอนุญาตให้คุณครอบตัดเมื่อเล่น นี่คือข้อดีของ:

  • ความพึงพอใจทันที; ไม่จำเป็นต้องเข้ารหัสอีกครั้ง
  • คุณภาพจะถูกรักษาไว้

ขออภัย แต่ฉันใหม่สำหรับ ffmpeg และฉันไม่เข้าใจส่วนที่จะลบแถบสีดำที่ด้านบนและด้านล่างและปรับขนาดวิดีโอให้เหลือขนาดโดยไม่มีแถบสีดำ

1
มีวิธีอัตโนมัติในการลบแถบสีดำหรือฉันต้องใช้ค่าครอบตัดด้วยตนเองเสมอหรือไม่

1
@rexhin เมื่อคุณเรียกใช้ cropdetect มันจะถ่ายโอนข้อมูลจำนวนมากในคอนโซลเอาต์พุตดังที่แสดงด้านบน มันให้พารามิเตอร์การครอบตัดตามจริงที่คุณต้องการใช้ คุณสามารถทำให้เป็นอัตโนมัติผ่านสคริปต์
llogan

ว้าวมันยอดเยี่ยม แต่เราใส่แผ่นกรองสีดำไว้ตรงไหน? อีกสอง params ในการเพาะปลูกคืออะไร = 1280: 720: 0: 24

มันได้ลบแถบสีดำด้านบน แต่ทิ้งแถบสีดำขนาดเล็กที่ด้านล่าง ทำไมสิ่งนี้ถึงเกิดขึ้น

1

@LordNeckbeard คำตอบของดีมาก ฉันจะแนะนำในกรณีส่วนใหญ่

ffplay ใช้งานได้ดีและดูตัวอย่างได้ดี แต่เวอร์ชั่นของ ffmpeg ที่ฉันใช้กำลังดิ้นรนกับเสียงจากวิดีโอที่ฉันใช้อยู่

st:1 error, non monotone timestamps 

ฉันสิ้นสุดมีปัญหากับคำตอบที่เสนอทั้งที่-c:aไม่ได้รับการสนับสนุนกับเวอร์ชันที่ฉันใช้และมีปัญหากับการแปลงบิตเรตกับวิดีโอที่ฉันใช้

หมายเหตุ: -c:aสามารถแทนที่ด้วย:-acodec

โซลูชันฟรีทางเลือกที่ง่ายที่สุดที่ฉันพบคือใช้เบรกมือ

มันเป็น autocrop ลบแถบสีดำโดยไม่มีปัญหามาก

หวังว่าจะช่วย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.