รูปขนาดย่อเคลื่อนไหวสำหรับวิดีโอโดยใช้ FFmpeg


1

ฉันต้องการสร้างไฟล์. 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 เฟรมให้ได้อย่างไร


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

1
ความเป็นไปได้อีกอย่างหนึ่งก็คือการใช้สคริปต์ Pythonที่ฉันเขียนซึ่งแยกการตัดฉากในลักษณะที่แยกวิเคราะห์ได้จากนั้นจึงทำการเขียนสคริปต์จุดแยกโดยใช้ข้อมูลนี้ป้อนให้กับselectตัวกรองเป็นหมายเลขเฟรมเฉพาะหรือใช้trimคำสั่งเพื่อรับส่วนที่เหมาะสม . เห็นได้ชัดว่าไม่ได้โพสต์คำตอบเพราะฉันไม่มีเวลาเขียนโปรแกรมแก้ไขปัญหาเหล่านี้ ณ จุดนี้
slhck

ตัวชี้ของคุณไปที่คำตอบเพื่อ "เลือกตัวกรองเพื่อเลือก 8 เฟรมทุก 5 วินาที" ดูมีแนวโน้มมากเพราะโดยทั่วไปฉันต้องการรวบรวม 10 เฟรม แต่เคยมีการแบ่งฉาก ฉันต้องยอมรับว่าความพยายามของฉันในการประกบคำสั่งฉากกับนิพจน์นั้นไม่ประสบความสำเร็จ แต่ฉันแน่ใจว่าเป็นเพราะฉันไม่ได้รับวิธีการเลือกการแสดงออกทุก 5 วินาทีในตอนแรก ฉันไม่พบเอกสาร ffmpeg ที่เลือกเพื่อให้ความสว่างเพียงพอ
เอียนเลสลี่

1
ไม่มันไม่ง่ายนักที่จะเข้าใจ แต่ข้างหลังมันมีศักยภาพมากมาย นิพจน์ใช้ฟังก์ชั่นหลายอย่างที่กำหนดไว้ที่นี่: ffmpeg.org/ffmpeg-utils.html - บางทีฉันอาจหาเวลาสักพักในช่วงสุดสัปดาห์
slhck
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.