Khởi động Camera Raspi khá tầm thường:
raspivid -t 10000 -o test.h264
Vấn đề:
Không có cách nào để ngăn chặn điều này. Điều này có vẻ thực sự ngu ngốc đối với tôi, theo hiểu biết tốt nhất của tôi, không có máy ảnh nào được bán lẻ, đòi hỏi người dùng chỉ định bao nhiêu giây để chạy, và sau đó chạy trong nhiều giây trước khi dừng.
Lý lịch:
Điều này trình bày một vấn đề rất lớn trong giám sát. Tôi đang tạo một chương trình nơi giám sát tại nhà được bật khi người dùng rời đi và sau đó tắt lại khi họ quay lại. Nếu chuyển động được phát hiện ngay trước khi người dùng quay lại, máy ảnh sẽ bắt đầu ghi trong khoảng thời gian định trước (ví dụ: 10 phút), nhưng vì raspivid
lệnh bị chặn, tôi gặp tình huống người dùng ở trong nhà, nhưng chương trình đang ở trong surveillance
bang Để giải quyết vấn đề này, tôi khởi chạy một luồng để khởi chạy raspivid
lệnh, vì vậy bây giờ các trạng thái được cập nhật chính xác dựa trên thời điểm người dùng đến và đi. Tuy nhiên, bây giờ các tiểu bang khác không hoạt động. Ví dụ: tôi không thể chuyển sang TV
trạng thái vì tôi không thể ghi cảnh HD và xem nó cùng một lúc. Tương tự, tôi không thể chuyển sangParty
trạng thái (quay video liên tục của các bên) khi máy ảnh đã ghi.
Giải pháp tiềm năng:
Sử dụng mã tôi tìm thấy trên web (nhưng không thể tìm thấy liên kết đến nữa), tôi đã tìm thấy một bản hack theo đó tôi giết chết chuỗi đã khởi chạy raspivid
lệnh. Thật không may, điều này được coi là báng bổ bởi SO (xem ở đây và đây ), điều mà tôi đồng ý không chỉ vì nó có thể làm hỏng các .h264
tệp và dẫn đến rò rỉ bộ nhớ, mà còn bởi vì đó là cơn ác mộng đối với tôi để mã hóa (tôi phải có khóa và semaphores ở khắp mọi nơi khi tôi đang khởi chạy các chủ đề khác để phát hiện chuyển động là tốt).
Câu hỏi:
Có cách nào để dừng máy ảnh raspi ghi âm không? Nếu không, tai sao không?
popen = subprocess.Popen ( cmd )
vàpopen.send_signal ( signal.SIGINT )