Memulai Kamera Raspi agak sepele:
raspivid -t 10000 -o test.h264
Masalah:
Tidak ada cara untuk menghentikan ini. Ini tampak sangat bodoh bagi saya karena, setahu saya, tidak ada kamera yang tersedia untuk ritel yang mengharuskan pengguna untuk menentukan berapa detik untuk menjalankan, dan kemudian berjalan selama beberapa detik sebelum berhenti.
Latar Belakang:
Ini menghadirkan masalah besar dalam pengawasan. Saya membuat program di mana pengawasan rumah diaktifkan ketika pengguna pergi, dan kemudian mati lagi ketika mereka kembali. Jika gerakan terdeteksi tepat sebelum pengguna kembali, kamera mulai merekam untuk jangka waktu yang telah ditentukan (mis. 10 menit), tetapi karena raspivid
perintahnya memblokir, saya mendapatkan situasi di mana pengguna secara fisik berada di dalam rumah, tetapi program berada di surveillance
negara bagian. Untuk menyiasatinya, saya meluncurkan utas untuk meluncurkan raspivid
perintah, jadi sekarang status diperbarui dengan benar berdasarkan kapan pengguna datang dan pergi. Namun, sekarang negara bagian lain tidak berfungsi. Misalnya, saya tidak dapat beralih ke TV
keadaan karena saya tidak dapat merekam rekaman HD dan menontonnya secara bersamaan. Demikian pula, saya tidak bisa beralih keParty
status (perekaman video pihak-pihak yang konstan) karena kamera sudah merekam.
Solusi Potensial:
Dengan menggunakan kode yang saya temukan di web (tetapi tidak dapat menemukan tautannya lagi), saya menemukan sebuah retasan di mana saya membunuh utas yang meluncurkan raspivid
perintah. Sayangnya ini dianggap penistaan oleh SO (lihat di sini dan di sini ), yang saya setujui bukan hanya karena dapat merusak .h264
file dan menyebabkan kebocoran memori, tetapi juga karena itu adalah mimpi buruk bagi saya untuk kode (saya harus memiliki kunci dan semaphores di mana-mana karena saya meluncurkan utas lain untuk deteksi gerakan juga).
Pertanyaan:
Apakah ada cara untuk menghentikan rekaman kamera raspi? Jika tidak, mengapa tidak?
popen = subprocess.Popen ( cmd )
danpopen.send_signal ( signal.SIGINT )