ฉันมีกล้อง IP หลายตัวที่ฉันต้องการจับภาพวิดีโอจากอย่างต่อเนื่อง ฉันกำลังสร้างสคริปต์ที่จะล้อมรอบ ffmpeg เพื่อจับภาพจากแหล่ง RTSP ต่างๆ แต่ฉันกำลังดิ้นรนกับวิธีการจับภาพและจัดเก็บข้อมูล .. โดยเฉพาะฉันจะจับคลิปที่ไร้รอยต่อได้อย่างไร?
เพื่อชี้แจงหากฉันเพียงแค่เรียกใช้คำสั่งเช่นนี้:
ffmpeg -i rtsp://ip_cam file.mp4
สิ่งนี้จะทำงานตลอดไปจนกว่าจะเต็มฮาร์ดไดรฟ์ของฉัน (หรือจนกว่าฉันจะถึงขีด จำกัด สูงสุดของ ffmpeg หรือระบบไฟล์) ดังนั้นความคิดของฉันคือการทำสิ่งนี้:
ffmpeg -i rtsp://ip_cam -fs 104857600 file-1.mp4
สิ่งนี้จะ จำกัด ไฟล์ไว้ที่ 100MB ต่อไฟล์ สคริปต์แรปเปอร์ของฉันสามารถเริ่มต้นอินสแตนซ์ใหม่ทันทีที่สิ่งนี้เสร็จสิ้น:
ffmpeg -i rtsp://ip_cam -fs 104857600 file-2.mp4
เป็นต้น ปัญหาด้วยวิธีนี้ก็คือว่ามันจะใช้เวลา 1-2 วินาทีเพื่อ ffmpeg ที่จะเริ่มต้นซึ่งหมายความว่าในช่วงเวลานั้นกล้องในคำถามไม่ได้บันทึกอะไร
อีกสิ่งหนึ่งที่ควรพิจารณาคือสำหรับแต่ละไฟล์ฉันจำเป็นต้องทราบเวลาเริ่มและหยุดเช่นfile-1.mp4
อาจอ้างอิงถึง "2015-09-12 09:03:42" ถึง "2015-09-12 11:24: 21" ด้วยวิธีนี้หากผู้ใช้ต้องการดึงคลิปเฉพาะฉันรู้ว่าจะหาได้จากที่ไหน และถ้าฉันเริ่ม ffmpeg สำหรับแต่ละคลิปแล้วมันก็จบที่ส่วนท้ายของแต่ละคลิปฉันสามารถจับภาพและจัดเก็บข้อมูลนั้นได้ แต่ถ้าวิธีการที่แนะนำคือบอก ffmpeg ให้รันไปเรื่อย ๆ ในขณะที่บันทึกผลลัพธ์ในส่วนที่แยกต่างหาก (หาก ffmpeg สามารถทำเช่นนั้นได้) นั่นอาจไม่ทำงานเนื่องจากฉันจะไม่สามารถรวบรวมข้อมูลนี้ได้
ความเข้าใจใด ๆ ที่จะได้รับการชื่นชม
-strftime
ทำงานได้อาจเข้ากันไม่ได้กับเวอร์ชันของฉันมันบอกว่ามันไม่รู้จัก แต่ฉันสามารถพูดได้ในภายหลัง ส่วนที่เหลือของคำสั่งใช้งานได้ แต่ไม่แบ่งไฟล์ตามที่ฉันคิดว่าควรจะเป็น ฉันมีไฟล์ 43 นาทีและฉันกำลังใช้-segment_time 10
ซึ่งฉันคิดว่าจะให้ไฟล์ 10 วินาทีกับฉัน แต่ฉันจะได้ไฟล์ที่เหมือนกับไฟล์อินพุต ความคิดเห็นใดที่ฉันทำผิด