ffmpeg - สร้างวิดีโอจากกรอบภาพด้วยการเริ่มต้นและศาล


18

ฉันสร้างวิดีโอจากกรอบรูปและใช้งานได้ดี ปัญหาคือฉันไม่ต้องการใช้รูปภาพทั้งหมดในโฟลเดอร์ของฉัน ฉันมี 200 เฟรมในโฟลเดอร์ของฉัน แต่ฉันต้องการวิดีโอตั้งแต่ 1 ถึง 100

ฉันจะสามารถนับจำนวนเฟรมหรือสิ้นสุดเฟรมได้อย่างไร?

ffmpeg -start_number n -i test_% d.jpg -vcodec mpeg4 test.avi

ฉันหาวิธีไม่เจอ

ขอบคุณ!


ฉันไม่รู้อะไรมากเกี่ยวกับโปรแกรมนี้ แต่ถ้ามันใช้ทุกรูปในโฟลเดอร์เฉพาะทำไมไม่สร้างโฟลเดอร์ใหม่และใส่เฉพาะ 100 เฟรมที่คุณต้องการ?
philipthegreat

2
เป็นไปได้ว่าจะแก้ปัญหา "สับ" ของฉันถ้าไม่สามารถทำมันได้ด้วย ffmpeg :)
DarkPixel

คำตอบ:


29

คุณทำได้โดยระบุจำนวนเฟรมที่คุณต้องการ:

-vframes 100  

อย่างมีประสิทธิภาพดังนั้นในกรณีของคุณ:

ffmpeg -start_number 1 -i test_%d.jpg -vframes 100 -vcodec mpeg4 test.avi

คุณอาจต้องระบุพารามิเตอร์อื่น ๆ เช่นpix_fmtฯลฯ ขึ้นอยู่กับปัจจัยอื่น ๆ

นอกจากนี้มักจะใช้สิ่งที่คล้ายtest_%05d.jpgกับลำดับเลขที่มีเลขศูนย์ก่อนหน้าและ 5 หลัก หากคุณไม่มีในรูปแบบนั้นคุณอาจต้องใช้รูปแบบกลม ดูนี่สิ


3

นี่คือรหัสที่ใช้งานได้ดีสำหรับฉัน

ffmpeg -i yourfile.mp4 -r 1 -ss 15 -t 16 -f image2 snapshot.jpg
                                ^     ^ 
                                ^     ^
                              start  end
                               time   time

เวลาเป็นวินาทีเท่านั้น ถ้ามันอยู่ข้างหน้ารอก 2 นาทีแสดงว่ามันเป็น 120 ไฟล์รูปภาพหนึ่งไฟล์นั้นมีค่าหนึ่งวินาทีเสมอดังนั้นจึงคำนวณภาพที่คุณปรารถนาด้วยวิธีการนั้น

yourfile.mp4 = คลิปภาพยนตร์ของคุณ

snapshot.jpg = ไฟล์ภาพใหม่ของคุณ

สำคัญ: ปล่อยภาพที่ 2 โดยลำพัง มันเป็นวิธีเดียวที่จะได้รับสิ่งที่ฉันต้องการ


4
ฉันซาบซึ้งกับคำสั่งนี้เพราะมันใช้ได้กับรุ่นเก่าffmpegที่ฉันต้องใช้ในตอนนี้; สิ่งเดียว-tคือไม่ใช่ "เวลาสิ้นสุด" man ffmpegกล่าวคือ "ระยะเวลา" ดังนั้นเวลาสิ้นสุดจะเป็นเวลาเริ่มต้น + ระยะเวลา ไชโย!
sdaau
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.