ฉันพยายามแยก "เฟรม 1 เฟรมของทุก ๆ 10" ของวิดีโอ (เช่นแยก 1 ออกจาก 9 จากนั้นทำซ้ำ) เพื่อวัตถุประสงค์ทางวิทยาศาสตร์ วิดีโอคือ 105 เฟรม, 3.5 วินาที, 29.97fps (h.264, .mov ผลิตโดย Nikon D3100)
VLC
คำสั่งด้านล่างควรสร้าง 10 เฟรม แต่สร้างได้เพียง 6 ภาพเท่านั้น ฉันลองอัตราส่วนฉากที่แตกต่างกันและไม่มีเฟรมใดสร้างจำนวนเฟรมที่ถูกต้อง
vlc 1.mov --video-filter=scene --vout=dummy --scene-ratio=10 --scene-prefix=img- --scene-path=. vlc://quit
ใครช่วยกรุณาบอกฉันว่าปัญหาคืออะไร?
FFmpeg
FFmpeg ดูเหมือนจะไม่ได้มีคำสั่งตรงตามวัตถุประสงค์ของฉัน คำสั่งด้านล่างแยก 3 เฟรมออกจากทุก ๆ วินาที แต่เนื่องจาก FPS ไม่ตรง 30 (แทนที่จะเป็น 2.97) นั่นจะไม่ให้ผลลัพธ์ที่ถูกต้องสำหรับฉัน
นอกจากนี้ FFmpeg ยังไม่ได้ให้จำนวนเฟรมที่ถูกต้องด้วยแม้แต่คำสั่งนี้ สำหรับวิดีโอ 3.5 วินาทีฉันคาดว่ามากที่สุด 10 เฟรม แต่สิ่งที่ฉันได้คือ 12 เฟรม!
ffmpeg -i 1.mov -y -an -sameq -r 3 -f image2 -vcodec mjpeg %03d.jpg
ฉันจะบรรลุสิ่งที่ฉันต้องการได้อย่างไร
-sameq
ไม่ทำในสิ่งที่คุณคิดว่าทำได้และถูกลบออกจากเวอร์ชั่นปัจจุบัน (ffmpeg ตัวจริงนั่นคือฉันไม่แน่ใจว่ามันอยู่ใน ffmpeg ปลอมของ Ubuntu หรือไม่) ใช้ qscale แทน