ฉันพยายามแยกเฟรมที่สำคัญจากคลิปวิดีโอ ฉันลองใช้คำสั่งต่อไปนี้ แต่มันแยกเฟรมทั้งหมด
ffmpeg -vf select="eq(pict_type\,PICT_TYPE_I)" -i 2.flv -vsync 2 -s 73x41 -r 30 -f image2 thumbnails-%%02d.jpeg
ฉันพยายามแยกเฟรมที่สำคัญจากคลิปวิดีโอ ฉันลองใช้คำสั่งต่อไปนี้ แต่มันแยกเฟรมทั้งหมด
ffmpeg -vf select="eq(pict_type\,PICT_TYPE_I)" -i 2.flv -vsync 2 -s 73x41 -r 30 -f image2 thumbnails-%%02d.jpeg
คำตอบ:
คุณสามารถทำให้การใช้งานนี้ง่ายขึ้นโดย-skip_frame
ไม่จำเป็นต้องใช้select
ตัวกรองวิดีโอ:
ffmpeg -skip_frame nokey -i 2.flv -vsync 0 -r 30 -f image2 thumbnails-%02d.jpeg
-threads 1
เปรียบเทียบกับค่าเริ่มต้น-threads auto
แล้วมันทำให้cropdetect
กราฟตัวกรอง ( ffmpeg -threads 1 -skip_frame nokey -i input.mkv -filter:v select='not(mod(n\,20))',cropdetect -an -f null /dev/null
) 2x เร็วที่สุดในระบบของฉัน (60s ถึง 30s)!
ตัวอย่างการใช้ตัวกรองselect
และscale
:
ffmpeg -i 2.flv -vf "select=eq(pict_type\,I),scale=73x41" \
-vsync vfr -qscale:v 2 thumbnails-%02d.jpeg
เคล็ดลับ:
ตัวกรองไม่ควรอยู่หน้า-i
ตัวเลือกเนื่องจากเป็นตัวเลือกเอาต์พุต ผมไม่ทราบว่าที่ว่าคุณมีคำสั่งจาก แต่PICT_TYPE_I
ไม่ได้อยู่ - I
มันควรจะเป็น
ในscale
ตัวกรองที่คุณสามารถเปลี่ยน73
หรือ41
จะมีตัวกรองอัตโนมัติคำนวณความกว้างหรือความสูงที่จะรักษาอัตราส่วน: เช่นหรือscale=73:-1
scale=-1:41
สิ่งนี้จะช่วยป้องกันการยืดหรือยืดที่อาจเกิดจากการปรับ "บังคับ"
คุณภาพผลผลิตสามารถควบคุมได้ด้วย-qscale:v
(หรือนามแฝง-q:v
) ช่วงที่มีประสิทธิภาพคือสเกลเชิงเส้น 2 ถึง 31 และค่าที่ต่ำกว่าคือคุณภาพที่สูงขึ้น
ที่คุณffmpeg
อนุญาตให้ตัวกรองก่อนที่อินพุตจะบอกฉันว่ามันอาจจะล้าสมัย ดาวน์โหลดบิลด์แบบสแตติกล่าสุดสำหรับระบบปฏิบัติการของคุณหรือสร้างด้วยตัวเองตามคำแนะนำในการรวบรวมหากข้อมูลด้านบนไม่ทำงาน
ffmpeg -i 2.flv -vf "select=eq(pict_type\,I)" -vsync vfr frame-%02d.png
หากข้อผิดพลาดนี้:
ตัวเลือก vf (ตั้งค่าตัวกรองวิดีโอ) ไม่สามารถใช้กับอินพุต URL 1508.mp4 - คุณกำลังพยายามใช้ตัวเลือกอินพุตกับไฟล์เอาต์พุตหรือในทางกลับกัน ย้ายตัวเลือกนี้ก่อนไฟล์ที่เป็นของ เกิดข้อผิดพลาดในการแยกวิเคราะห์ตัวเลือกสำหรับไฟล์อินพุต 1508.mp4 เกิดข้อผิดพลาดในการเปิดไฟล์อินพุต: อาร์กิวเมนต์ไม่ถูกต้อง
คุณสามารถทำได้:
ffmpeg -i 263.mp4 -vf select=eq(pict_type\,PICT_TYPE_I) -vsync 2 -s 480x320 -r 24 -f image2 thumbnails-%05d.jpeg
== --------------------------------------------
พารามิเตอร์“ -i” ล่วงหน้า