ฉันต้องการจับภาพสตรีม RTSP จากกล้อง IP บางตัวและหลังจากมองไปรอบ ๆ ฉันพบเครื่องมือที่ยอดเยี่ยม 2 อย่าง: avconv และ openRTSP
openRTSP -u user password rtsp://10.48.34.125/axis-media/media.amp
avconv -i "rtsp://user:password@10.48.34.125/axis-media/media.amp" -vcodec copy -f mp4 10.48.34.125.mp4
แต่ด้วยเหตุผลวูดูเมื่อฉันต้องการใช้ URL ที่ไม่มีส่วนขยายเฉพาะเช่น:
rtsp://user:password@10.48.34.46/
avconv ส่งคืน 401 Unauthorized
ดังนั้นฉันติดอยู่กับ openRTSP ในขณะนี้ ...
สิ่งที่แตกต่างจาก avconv คือ openRTSP จะส่งไฟล์ดิบซึ่งเข้ารหัสไปที่ 25fps ซึ่งทำให้วิดีโอของฉันบางส่วนดูเหมือนว่าพวกเขาจะไปข้างหน้าอย่างรวดเร็ว ฉันพบวิธี (cpu แพง) เพื่อเข้ารหัสไฟล์อีกครั้งในอัตราเฟรมที่ใกล้เคียงกับสิ่งที่ฉันต้องการ:
avconv -r 7 -i video-H264-1 -r 24 -f mp4 10.48.34.28.mp4
(ในตัวอย่างนี้ฉันบังคับให้อัตราเฟรมของไฟล์ raw เป็น 7 และอัตราเฟรมของไฟล์เอาต์พุตเป็น 24 ฉันลองใช้ธงบิวด์อิน openRTSP แต่ไฟล์เอาต์พุตยังมีอัตราเฟรมเป็น 25: openRTSP -f 7 -u user password rtsp://10.48.34.145/mpeg4/media.3gp
)
น่าเศร้าที่วิดีโอดูแปลก ๆ ในบางจุดและนั่นเป็นเพราะบางครั้งสตรีมดั้งเดิมมีอัตราเฟรมที่ผันแปร (ตัวอย่างเช่นตอนกลางคืน)
คำถามของฉันคือมีการยกเลิกการเข้ารหัสเริ่มต้นที่ 25fps หรือไม่
และทำไม 25 ฉันหมายความว่าไม่ใช่บรรทัดฐาน 24?
ฉันใช้กล้อง 2 ประเภท: Axis และ Bosch สิ่งที่ฉันมีปัญหาคือกล้อง Bosch
-f
ค่าพารามิเตอร์ มันอาจช่วยให้รู้จักรูปแบบของกล้อง IP ของคุณ - คุณอาจตั้งค่าไว้ที่ด้านกล้อง นอกจากนี้ 25 เฟรมต่อวินาทีก็ไม่แปลกที่จะพบในภูมิภาคที่ 720p50 / 1080i50 เป็นมาตรฐานสำหรับออกอากาศทีวี