Saya ingin merekam video bagian dari rumah saya dengan webcam sementara saya pergi selama beberapa hari untuk mencoba dan memastikan setiap burger difoto dan foto diunggah ke server saya bahkan sebelum mereka menyadarinya.
Saya telah menyiapkan webcam untuk streaming rekaman menggunakan mjpg_streamer. Itu berfungsi dan streaming OK.
Dimungkinkan untuk mengambil tangkapan diam dari aliran kapan pun Anda ingin disebut 'FileName.jpg':
wget http://127.0.0.1:8080/?action=snapshot -O FileName.jpg
Saya memiliki server FTP Amazon dengan Layanan Web Amazon dan akses FTP menggunakan sFTP. Saya terhubung menggunakan plugin FireFTP Firefox saat ini, sehingga berfungsi. Idenya adalah membiarkan komputer berjalan dengan koneksi hidup.
Saya ingin membuat skrip pengambilan gambar dari streaming, katakan setiap 1 menit dan minta gambar diunggah ke server saya melalui koneksi FTP langsung, dan hapus file asli dari PC saya sehingga yang berikutnya akan menghemat O atau menambahkan nomor di akhir setiap file dan kemudian FTP ke atas. mis. FileName1.jpeg, Filename2.jpeg.
Saya telah mencari Google selama berjam-jam dan meskipun ada banyak posting tentang pembuatan skrip upload FTP, saya tidak dapat menemukan aliran upload yang konstan ... yaitu "Tonton folder ini, unggah konten setiap 1 menit dan kemudian satu menit kemudian unggah konten baru apa pun yang ada di dalamnya ".
Saya kira saya memerlukan skrip bash yang akan:
- simpan penghitung agar setiap file yang baru dibuat mendapat nama yang berbeda
- Kirim nama file itu ke "wget http://127.0.0.1:8080/?action=snapshot -O FileName XX .jpg" setiap 30 detik atau 1 menit
- Unggah FileName XX .jpg ke server FTP
Tetapi saya tidak tahu bagaimana melakukannya! Adakah yang bisa mengarahkan saya? Atau ada yang tahu cara untuk melakukan dengan FileZilla atau sesuatu (yang tidak dapat menonton folder AFAIK: https://forum.filezilla-project.org/viewtopic.php?t=41609 ?
sumber
Jawaban:
Kiat pertama saya adalah memberi nama file menggunakan tanggal dan waktu pengambilan. Dengan begitu Anda tidak perlu menyimpan penghitung di mana pun, yang akan sulit dalam skrip yang tidak berjalan terus-menerus karena variabelnya akan disetel ulang pada setiap permintaan. Anda bisa menyimpan variabel dalam file, tetapi lebih mudah jika Anda memastikan nama tidak akan bertabrakan. Sesuatu seperti
wget http://127.0.0.1:8080/?action=snapshot -O "Snapshot-$(date).jpg"
jika Anda menggunakan Bash. (Maaf jika sintaksnya tidak berfungsi, saya bukan ahli Bash dan saya mengetik ini di ponsel saya.)Seperti yang Anda sebutkan, ada beberapa tutorial tentang skrip upload FTP yang tersedia. Setidaknya salah satu dari mereka harus menyertakan contoh yang mengunggah file dengan pola, seperti "Snapshot - *. Jpg", di mana wildcard akan cocok dengan stempel waktu. Atau, Anda bisa mengarahkan program FTP (seperti lftp atau ncftp, yang memiliki biner untuk skrip) untuk mengunggah semuanya dalam folder tertentu. Kemudian bersihkan folder tersebut jika program berhasil. Dengan begitu Anda dapat menjalankan skrip sesering yang Anda inginkan menggunakan cron atau systemd timer, dan membuatnya cukup fleksibel untuk selalu mencoba mengunggah file apa pun yang tidak berhasil dengan waktu berikutnya dijalankan.
Ada juga perangkat lunak yang dirancang untuk melakukan tugas ini, dan banyak lagi, sendiri. Salah satu program seperti itu, yang saya gunakan sendiri, hanya disebut "gerak" dan tersedia untuk sebagian besar distribusi. Ini memiliki pemicu gerakan bawaan (merekam dan / atau mengambil foto) atau mode terus menerus. Ini bisa menjadi CPU-intensif pada sistem seperti Raspberry-Pi, tetapi tentu saja berfungsi.
Jika Anda ingin sedikit meningkatkannya, mungkin jalankan beberapa kamera jarak jauh / lokal, dan deteksi gerak diturunkan ke mesin pusat yang lebih kuat, lihat Zoneminder. Butuh waktu lebih lama untuk mengatur, dan dalam pengalaman saya pilih-pilih tentang Anda secara manual mengatur resolusi yang benar pada umpan kamera Anda, tetapi itu dapat dituliskan pada tingkat tertentu.
sumber
Saya akan menggunakan AWS S3 daripada server FTP di EC2, dan alat AWS CLI untuk mengunggah file. Ini adalah solusi yang jauh lebih ringan yang tidak memerlukan administrasi sistem. S3 menyediakan penyimpanan yang jauh lebih tahan lama daripada volume untuk EC2.
Unduh alat: https://aws.amazon.com/cli/
Dokumen yang relevan: http://docs.aws.amazon.com/cli/latest/reference/s3/
Anda dapat membuat pengguna yang hanya dapat mengunggah ke keranjang S3 menggunakan IAM (sehingga penjahat tidak dapat menghapus file!)
Saya akan menyelesaikan tugas ini dengan membuat skrip bash (atau perl, node.js, ruby, powershell ?, ...) yang memanggil wget dan output ke nama file dengan datetime. Hubungi
aws s3 cp ...
loop for untuk mengunggah semua file di folder. Dalam loop, setelah setiapaws s3 cp
panggilan yang berhasil untuk setiap file, pindahkan ke folder arsip untuk disimpan secara lokal juga. Jika Anda tidak ingin arsip lokal digunakanaws s3 mv
untuk secara otomatis membersihkan hal-hal yang telah diunggah.sumber
Tuan-tuan - terima kasih banyak untuk semua yang telah membantu. Sebagian, semua saran Anda telah membantu saya mencapai hasil akhir. Jadi saya telah memberi Anda semua kredit untuk balasan tetapi telah memposting jawaban saya sendiri di bawah ini dengan harapan itu berguna bagi orang lain. Saya menyadari bahwa pada umumnya hal tersebut tidak dilakukan, tetapi dalam hal ini ada banyak area untuk membentuk solusi, jadi saya telah mengikat semuanya menjadi satu di bawah ini.
Instal layanan yang diperlukan untuk menggunakan AWS S3
Mendaftar untuk Layanan AWS S3 dengan akun Amazon Anda sendiri: https://aws.amazon.com/s3/
Tetapkan kunci akses baru untuk akun pengguna Anda melalui 'Tombol Akses -> Buat Kunci Akses Baru' dan unduh file CSV saat diminta. Jika Anda tidak melakukan ini, Anda tidak akan dapat menggunakan fungsi S3 baris perintah: https://console.aws.amazon.com/iam/home?#security_credential
Buka file ROOTKEY.CSV dan salin lalu tempel nilai AccessKeyID yang terkandung dan nilai SecretKey ketika diminta ketika Anda meluncurkan 'aws configure', yang Anda luncurkan dari baris perintah sebelum menggunakan AWS dengan Linux.
Uji Anda dapat menghubungkan dan mengunggah file dengan file sample.txt:
> aws s3 mv ~/SourceFolder/sample.txt s3://NameOfYourAWSS3Bucket
/ AFolderYouHaveCreatedUnduh dan instal mjpg_streamer dengan mengikuti instruksi pembuatan di sini: https://github.com/jacksonliam/mjpg-streamer#building--installation Setelah selesai, navigasikan ke foldernya
Mulai streamer mjpg:
Periksa apakah sedang berjalan dengan mengunjungi tautan berikut di browser web Anda:
Ambil satu tanggal dan waktu file yang dicap (dan simpan ke direktori lokal dari mana file itu dieksekusi) dengan:
Ini akan membuat file di folder 'www' di folder mjpeg_streamer Anda, yang disebut 'output-16-09-01-22-35-30.jpg' jika dieksekusi pada 22:35 pada 1 September 2016.
Buat skrip bash baru (seperti MyScript.sh) dan berikan izin yang dapat dieksekusi padanya dan salin konten di bagian bawah ke dalamnya. Saat dijalankan, ini akan membuat JPEG stempel waktu setiap 5 detik hingga tanggal saat ini menjadi tanggal akhir yang ditentukan. Dalam hal ini, itu dimulai pada tanggal A dan berakhir pada Tanggal B. Ganti tanggal Anda sendiri.
Salin ini ke dalam skrip, menggantikan jalur yang relevan:
Saran untuk perbaikan diterima.
Anda juga dapat memeriksa progres penyimpanan Anda di AWS S3 dengan
Saya meninggalkannya selama dua jam menembak setiap 10 detik dan itu menghasilkan 74MB unggahan. Jadi saya mengusahakannya menjadi 6.5Gb selama seminggu - kurang dari tingkat harga untuk layanan di mana biaya masuk, yang saya pikir adalah 8Gb.
Terima kasih lagi.
sumber