ฉันต้องการสร้างไฟล์. gif แบบเคลื่อนไหวเป็นภาพขนาดย่อสำหรับวิดีโอ ฉันใช้บรรทัดคำสั่งนี้เพื่อคว้า 20 เฟรมจากวิดีโอ:
ffmpeg -i input.mkv -ss 00:05:14.435 -vframes 20 ./thumbs/out%02d.png
ซึ่งทำงานได้ดีในการรับตัวอย่างที่ฉันสามารถสร้าง. gif ได้ แต่ในวิดีโอที่ยาวกว่ามีหลายฉากอย่างชัดเจนและฉันต้องการเพิ่มอีก 20 เฟรมจากส่วนอื่น ๆ และอีกหลายครั้งเพื่อให้ได้ฉากไม่กี่ฉาก แน่นอนว่าจะนำเสนอปัญหาวิธีการตัดสินใจที่จะคว้าเฟรมจาก
ฉันค้นหาและพบว่าคำถามนี้คำตอบซึ่งจริงๆดูเหมือนว่าใกล้เคียงกับสิ่งที่ฉันต้องการ - ภาพขนาดเล็กที่มีความหมายสำหรับวิดีโอโดยใช้ FFmpeg ในคำตอบนั้นพวกเขาเสนอคำสั่ง:
ffmpeg -ss 3 -i input.mkv -vf "select=gt(scene\,0.4)" -frames:v 5 -vsync vfr -vf fps=fps=1/600 ./thumbs/out%02d.jpg
ซึ่งได้รับเฟรมเดียวที่จุดเริ่มต้นของแต่ละฉากเปลี่ยนไปห้าฉาก ฉันถูกออกเพราะการคว้าเฟรม 10 หรือ 20 เฟรมจากแต่ละฉากนั้นยอดเยี่ยมมากและก็แค่อยากได้
ฉันไม่สามารถบอกวิธีรวมสองแนวคิดในการค้นหาสถานที่ที่มีการเปลี่ยนแปลงของฉากและจับภาพหลายเฟรมจากสถานที่แต่ละแห่ง -frames: v และ -vframes ดูเหมือนจะเป็นพารามิเตอร์เดียวกันและในคำสั่งเดียวพวกเขาบอกให้ ffmpeg ทำการจับ 10 เฟรมที่ต่อเนื่อง
ฉันจะสร้างคำสั่งที่จะคว้า n เฟรมจากแต่ละฉากแยกเป็นฉากหยุดพักได้อย่างไร Heck ฉันจะไม่สามารถควบคุมได้ว่าฉากแบ่งเฟรม n เฟรมให้ได้อย่างไร
select
ตัวกรองเป็นหมายเลขเฟรมเฉพาะหรือใช้trim
คำสั่งเพื่อรับส่วนที่เหมาะสม . เห็นได้ชัดว่าไม่ได้โพสต์คำตอบเพราะฉันไม่มีเวลาเขียนโปรแกรมแก้ไขปัญหาเหล่านี้ ณ จุดนี้