ใช้ FFmpeg เพื่อแบ่งวิดีโอออกเป็นหลาย ๆ ฉาก


0

ฉันกำลังพยายามใช้ FFmpeg สำหรับการแยกวิดีโอออกเป็นหลาย ๆ วิดีโอย่อยแบบฉากเดียวโดยใช้scenecutคุณสมบัติและเกณฑ์ ฉันพบคำสั่งต่อไปนี้ใน SE:

ffmpeg -i myVideo.mp4 -y -c:v libx264 -profile:v high -prese6t:v fast -deinterlace -x264opts min-keyint=15:keyint=1000:scenecut=20 -b:v 2000k -c:a aac -b:a 128k -f segment -segment_format mp4 -segment_format_options movflags=empty_moov+frag_keyframe+default_base_moof+skip_trailer+faststart /home/1/output%%05d.mp4

แต่คำสั่งต่อไปนี้ใช้ไม่ได้สำหรับฉันและแสดงข้อผิดพลาด:

Unrecognized option 'prese6t:v'.
Error splitting the argument list: Option not found

มีการเปลี่ยนแปลงตั้งแต่ FFmpeg สุดท้ายหรือไม่ ฉันใช้เวอร์ชั่นล่าสุด

คำตอบ:


2

@ K7AAY อยู่ในเส้นทางที่ถูกต้อง presetป้ายชื่อตัวเลือก รูปแบบชื่อไฟล์ที่ส่งออกควรเป็นoutput%05d

แต่นอกเหนือจากข้อผิดพลาดทางไวยากรณ์ยังมีปัญหาพื้นฐานสองสามข้อเช่นกัน ตัวเลือกการแยกส่วน MP4 มีไว้สำหรับเมื่อมีการแบ่งกลุ่มภายในไฟล์คอนเทนเนอร์เดียว เซกเมนต์ muxer ส่งเสียงหลายไฟล์เพื่อให้การแตกแฟรกเมนต์ muxer MP4 สามารถข้ามได้ นอกจากนี้ควรระบุเซกเมนต์เวลาและด้วยค่าที่ต่ำมากมิฉะนั้น GOPs ที่มีขนาดน้อยกว่าค่าเริ่มต้น (2s) จะรวมกันในบางเซ็กเมนต์

คำสั่งควรเป็น

ffmpeg -y -i myVideo.mp4 -vf yadif \
       -c:v libx264 -profile:v high -preset:v fast \
       -x264opts min-keyint=15:keyint=1000:scenecut=20 -b:v 2000k \
       -c:a aac -b:a 128k \
       -f segment -segment_format mp4 -segment_time 0.01 -segment_format_options movflags=faststart \
       /home/1/output%05d.mp4

ฉันยังคงได้รับข้อผิดพลาด:[segment @ 00000210c1e1f040] Could not parse format options list 'faststart' Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument Error initializing output stream 0:0 --
Tina J

btw ฉันจะย่อขนาดคำสั่งได้หรือไม่? บางทีเราสามารถคัดลอกตัวแปลงสัญญาณได้-c copyหรือไม่ สิ่งที่สำคัญที่สุดสำหรับฉันคือการเล่นรอบ ๆ ความไวของเกณฑ์ฉาก
Tina J

1
แก้ไข cmd ..
Gyan

ขอบคุณ มันได้ผล. คำถามหนึ่งคือตอนนี้มันใช้เวลานาน เป้าหมายสุดท้ายของฉันคือเพียงบันทึกภาพจากแต่ละฉากพูดกรอบกลางของภาพนั้นแทนที่จะเข้ารหัสและบันทึกวิดีโอฉาก มีวิธีที่เร็วกว่าเพื่อให้บรรลุเป้าหมายนั้นหรือไม่? นี่คือคำถามใหม่ของฉัน: superuser.com/questions/1337709
Tina J

1

หลังจากแทนที่prese6t:v
ด้วยpreset:v
เพราะไม่มีตัวเลือก "prese6t" สำหรับ ffmpeg

แทนที่output%%05d.mp4
ด้วยoutput5d.mp4

ffmpeg กำลังปฏิเสธoutput%%05d.mp4ว่าเป็นชื่อไฟล์ที่ไม่ถูกต้อง


ไม่ปัญหาคือข้อผิดพลาด โปรดดูคำถามที่อัปเดตของฉัน
Tina J

ไม่นั่นไม่ได้ผล:[mp4 @ 000001adb348a740] Invalid segment filename template 'output%%05d.mp4' Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument Error initializing output stream 0:0 --
ทีน่า J

1
นี่ไม่ใช่คำตอบ นี่คือความคิดเห็นที่แนะนำความช่วยเหลือ ไม่มีอะไรผิดปกติอย่างที่สุดที่จะทำอะไรแบบนั้นในฐานะที่เป็นความคิดเห็น แต่ไม่ใช่ในฐานะ "คำตอบ"
JakeGould

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