เป็นไปได้ที่จะทำการเติมขอบสีดำของวิดีโอด้วย ffmpeg โดยอัตโนมัติหรือไม่?


16

ฉันคิดว่ามันมีตัวกรองวิดีโอ "ความมืด" ซึ่งสามารถกำหนดได้ว่าลำดับภาพเป็นสีดำหรือไม่ บางทีมันอาจมีตัวกรองเพื่อกำหนดค่าการครอบตัดโดยอัตโนมัติเพื่อลบขอบแบบฟอร์มสีดำของวิดีโอ หรืออาจเป็นไปได้ที่จะเขียนสคริปต์โดยใช้ตัวกรอง "ความมืด"

คำตอบ:


22

ใช่มันเป็นไปได้

เริ่มเล่นวิดีโอของคุณก่อนเพื่อดูว่าตกลงหรือไม่:

ffplay -i YourMovie.mp4 -vf "cropdetect=24:16:0"

cropdetectค่าตัวกรองคือ:

cropdetect=limit:round:reset

limit = black threshold (default 24)
round = output resolution must be divisible to this
reset = after how many frames the detection process will start over

หากดูเรียบร้อยแล้วให้ทำการครอบตัด:

ffmpeg -i YourMovie.mp4 -vf "crop=640:256:0:36" YourCroppedMovie.mp4

แหล่งที่มาและข้อมูลเพิ่มเติม: René Calles blog renevolution.com


6
อาจเป็นประโยชน์หากใส่จุดเริ่มต้น (-ss 00:05:00) เมื่อใช้ครอบตัดตรวจสอบ (ก่อนป้อน -i) เนื่องจากวิดีโอบางรายการจะมีหน้าจอสีดำสนิทเมื่อเริ่ม

ฉันต้องการใช้สิ่งนี้ในการครอบตัดpython matplotlib.animationวิดีโอที่มีเส้นขอบสีขาว เป็นไปได้หรือไม่ที่จะเปลี่ยนสีของเส้นขอบที่ตรวจพบ?
ryanjdillon

1
คุณสามารถระบุอย่างอื่นที่ไม่ใช่สีดำเป็นสีเส้นขอบได้หรือไม่ เช่นสีขาว
DanMan

สิ่งนี้ไม่ตอบคำถามในขณะที่คุณยังต้องดำเนินการด้วยตนเอง
Freedo

เฮ้ @Cornelius โปรดช่วยฉันหาคำสั่งเดียว - ฉันต้องการครอบตัด video.mp4 จาก Square ถึง Round โดยใช้ ffmpeg - ไม่ต้องการใช้คำสั่ง overlay สำหรับสิ่งนี้
Adil


4

การนำคำตอบอีกสองคำมารวมกันเป็นสคริปต์:

#!/bin/sh
#ffmpeg_zoom ver 20180128202453
I="$@";X=${I##*.};O=${I%.*}_zoomed.${X};f=$(which ffmpeg 2>/dev/null)
if [ ! "$f" ]||[ "$f" = '' ];then echo "Install ffmpeg";exit 1;fi
C=$($f -i "$I" -t 1 -vf cropdetect -f null - 2>&1|awk '/crop/{print $NF}'|tail -n1)
echo $f -i "$I" -vf "$C" "$O"; $f -i "$I" -vf "$C" "$O"

คำถามนี้มีตัวอย่าง ffmpeg ที่เกี่ยวข้อง

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