ฉันมีการบันทึกวิดีโอสองฉากในฉากเดียวกัน แต่ด้วยเฟรมเมอเรเตอร์ที่แตกต่างกันฉันต้องการรวมเข้าด้วยกันโดยใช้สคริปต์ AviSynth วิดีโอหนึ่งจะถูกบันทึกที่ 30fps และอีกหนึ่งที่ 120fps สิ่งที่ฉันต้องการจะทำคือการทำให้พวกเขาซิงโครไนซ์ชั่วคราวซึ่งหมายความว่าสำหรับแต่ละเฟรมของวิดีโอ 30fps ผลลัพธ์ที่ได้ควรแสดง 4 เฟรมจากวิดีโอ 120fps ฉันต้องการวิดีโอเอาต์พุตสุดท้ายเล่นที่ 30fps เพื่อให้ระยะเวลาเท่ากับ 4 เท่าของการบันทึกดั้งเดิม
จากเอกสารของ AviSynth ดูเหมือนว่าChangeFPS
เป็นฟังก์ชั่นที่ฉันต้องการเพราะมันลบและทำซ้ำเฟรมในขณะที่ 'AssumeFPS' เพียงแค่เปลี่ยนความเร็วในการเล่น อย่างไรก็ตามตัวกรองดูเหมือนจะไม่ทำตามที่ระบุไว้
ถ้าฉันลอง:
clip30 = AviSource("0326.avi").ChangeFPS(120)
clip120 = AviSource("0326-120fps.avi")
ไม่ส่งผลต่อความเร็วในการเล่นหรือจำนวนเฟรมของคลิป 30fps เลย แต่จะลบทุก ๆ สี่เฟรมออกจากคลิป 120fps ซึ่งไม่ได้เป็นอย่างที่ฉันต้องการ น่าเสียดายที่การผนวก. ChangeFPS (7.5) เข้ากับ clip120 แทนจะไม่มีผลในทางกลับกันที่เหมือนกันในกรณีนี้มันจะทำสิ่งที่คาดหวัง หรือถ้าฉันลอง:
clip30 = AviSource("0326.avi").AssumeFPS(7.5)
clip120 = AviSource("0326-120fps.avi")
ไม่มีผลกระทบเลยทั้งสองคลิปถูกเล่นที่ 30fps ซึ่งหมายความว่ามีการแสดงคลิป 120fps เพียงหนึ่งในสี่เมื่อเวลาที่คลิป 30fps สิ้นสุดลง
ดังนั้นฉันจะรวมสองคลิปนี้ในลักษณะที่ต้องการได้อย่างไร ฉันไม่สามารถหาตัวกรองภายในหรือภายนอกอื่น ๆ ที่จะช่วยฉันได้ สำหรับฉันดูเหมือนว่าถ้าChangeFPS
ทำในสิ่งที่คู่มือบอกว่าจะเป็นสิ่งที่ถูกต้องสำหรับงาน
clip30 = AviSource("0326.avi").ChangeFPS(120)
ทำงานได้ดีสำหรับฉันเช่น มันส่งสัญญาณวิดีโอที่ 120 FPS ซึ่งทำงานในเวลาเดียวกับคลิป 30fps ดั้งเดิม