นี่เป็นข้อบกพร่องใน VLC (ซึ่งยังคงมีอยู่ในรุ่น 3.0.6) หลังจากการทดลองบางอย่างที่ฉันตระหนักว่าVLC เกิดปัญหาสำหรับวิดีโอที่มี FPS น้อยกว่า 10 วิดีโอทั้งหมดที่มี 10 FPS ขึ้นไปไม่น่าจะมีปัญหา ดังนั้นในปัจจุบันจึงไม่มีวิธีที่สะอาดในการรับวิดีโอที่มี 1 FPS ซึ่งสามารถเล่นได้ใน VLC ( อย่ายอมแพ้ให้อ่านต่อไป )
วิธีแก้ปัญหาหนึ่งคือ - แสดงไว้ในคำตอบข้างต้น - เพื่อปลอมเอฟเฟกต์ของ 1 FPS โดยการทำซ้ำภาพ (เมื่อเรามี FPS จริงเท่ากับ 10 หรือมากกว่านั้นซึ่งใช้ได้สำหรับ VLC)
ตัวอย่าง:หากคุณมีโฟลเดอร์ที่มี 12 ภาพและคุณต้องการสร้างวิดีโอที่มี 1 FPS (ซึ่งสามารถเล่นได้ใน VLC) คุณต้องทำซ้ำแต่ละภาพหลายครั้ง (สมมติว่า 10 ครั้ง) แล้วบอก FFMPEG เพื่อสร้างวิดีโอ 10 FPS ด้วยวิธีนี้เราจะได้วิดีโอที่มีเฟรมรวม 120 ภาพแต่ละภาพจะเล่นเป็นเวลา 1 วินาที (เนื่องจากมีการทำซ้ำ 10 ครั้ง) ซึ่งเป็นของปลอมเพียง 1 เฟรมต่อวินาที
ฉันชอบที่จะใช้fps
พารามิเตอร์มากกว่า-r
(ซึ่งแสดงในคำตอบอื่น) ซึ่งในบางกรณีอาจมีปัญหา (ตามเอกสารประกอบอย่างเป็นทางการ )
ffmpeg -framerate 1 -i "img (%d).jpg" -c:v libvpx-vp9 -vf "fps=10,format=yuv420p" out.mkv
เนื่องจากอินพุต-framerate
ต่ำกว่าเอาต์พุตfps
FFMPEG จะทำซ้ำเฟรมเพื่อให้ได้อัตราเฟรมเอาต์พุตที่คุณต้องการ (ซึ่งเท่ากับ 10 ตามคำสั่งด้านบน)
นอกจากนี้ยังเป็นสิ่งสำคัญที่จะแจ้งให้ทราบว่าคำสั่งของ-framerate
และ-vf fps
เป็นสิ่งที่สำคัญเช่นการกำหนดค่านี้จะถูกนำไปใช้กับวิดีโอดังกล่าวต่อไป (in-หรือเอาท์พุท) เป็นไปตามเอกสารอย่างเป็นทางการ :
ตัวเลือกจะนำไปใช้กับไฟล์ที่ระบุต่อไป ดังนั้นคำสั่งซื้อจึงมีความสำคัญ ...
ffmpeg
.mp4
ลองเพิ่ม-vcodec libx264 -vpre hq
ในบรรทัดคำสั่งเพื่อบอกให้ตัวแปลงสัญญาณและพารามิเตอร์การเข้ารหัส