แตก x วินาทีจากทุกนาทีด้วย ffmpeg


1

ฉันพยายามแยก x วินาทีจากทุกนาทีและสร้างวิดีโอ

ตัวอย่างเช่นจากวิดีโอ 6 นาทีฉันต้องการใช้เวลา 1 วินาทีจากนาทีที่ 1 จากนั้นวินาทีที่ 1 จากนาทีที่ 2 เป็นต้น (หรือมากกว่านั้นอย่างชัดเจนใช้เวลา 00:00:01, 00:01:01, 00 : 02: 01 ... ) และสร้างวิดีโอใหม่

คำตอบ:


1

ใช้

ffmpeg -i in.mp4 -vf "select='lt(mod(t,60),1)',setpts=N/FRAME_RATE/TB" out.mp4

หากเสียงยังมีอยู่ให้เพิ่ม

-af "aselect='lt(mod(t,60),1)',asetpts=N/SR/TB"

อีกหนึ่งคำถาม: ฉันจะทำให้มันเป็นแบบไดนามิกได้อย่างไร ตัวอย่างเช่น: ถ้าฉันมีวิดีโอ 120 วินาทีและสร้างวิดีโอ 30 วินาที 120/30 = 4 ซึ่งหมายถึงการสร้างวิดีโอทุกวินาทีที่ 4 หรือไม่ ฉันพยายามทำอะไรแบบนี้lt(mod(t,VIDEO_LENGTH_IN_SECONDS/30),1)แต่ไม่แน่ใจว่าชื่อตัวแปรยาวเท่า
ไหร่

ตัวกรอง ffmpeg ไม่สามารถเข้าถึงระยะเวลาของวิดีโอ มันจะต้องมีการคำนวณไว้ล่วงหน้า
Gyan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.