質問編集履歴
1
質問を簡潔にしました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,77 +2,19 @@
|
|
2
2
|
|
3
3
|
動画撮影を条件判定の度に区切りたい。
|
4
4
|
|
5
|
-
〇:判定(条件を満たしていない)
|
6
|
-
●: 判定(条件を満たした)
|
7
|
-
〇||||||1min||||||〇||||||1min||||||●||||||1min||||||〇||||||1min|||||| 〇
|
8
|
-
|
9
|
-
|
10
5
|
##困っていること
|
11
6
|
条件判定するデータの更新は、1分
|
12
|
-
⇒ユニットファイルで、
|
7
|
+
⇒ユニットファイルで、時間を設定
|
13
8
|
|
14
9
|
動画の撮影時間は、
|
15
|
-
|
10
|
+
プログラム内で設定
|
16
|
-
|
17
|
-
**動画の撮影を条件判定したタイミングで終了させたい**
|
18
|
-
〇>>>>test.mp4>>>>〇>>>>>>b.mp4>>>>>●>>>>>>a.mp4>>>>>〇>>>>>test.mp4>>>>〇
|
19
|
-
のですが、
|
20
|
-
**実際は、**
|
21
|
-
〇>>>>test.mp4 〇>>>>>>b.mp4 ●>>>>>>a.mp4 〇>>>>>test.mp4 〇
|
22
|
-
このように、条件判定
|
11
|
+
このように、条件判定で指定した時間まで撮影したところで終了してしまうので、
|
23
12
|
判定直前の動画が撮影されません。
|
24
13
|
|
25
|
-
|
14
|
+
プログラム内の時間で調整する以外に、なにか良い方法がありませんでしょうか。
|
26
15
|
|
27
16
|
|
28
17
|
|
29
18
|
##条件の判定
|
30
19
|
1分毎にCSVファイルにデータを更新(追加)しています。
|
31
|
-
追加された最新データについて、条件を満たすか判定しています。
|
20
|
+
追加された最新データについて、条件を満たすか判定しています。
|
32
|
-
**.shプログラムを1min毎に実施するようにユニットファイルを作成して、動作させています。**
|
33
|
-
|
34
|
-
##現在のプログラムの構成
|
35
|
-
```sh
|
36
|
-
#!/bin/sh
|
37
|
-
#データ記録(from BME280 to csv)
|
38
|
-
/home/pi/dev/./CSV.py
|
39
|
-
#csvファイルアップロード
|
40
|
-
/home/pi/gdrive update hogehoge /home/pi/test.csv
|
41
|
-
#条件判定・動画撮影
|
42
|
-
/home/pi/dev/./Movie.py
|
43
|
-
#動画ファイルアップロード
|
44
|
-
/home/pi/gdrive sync upload /home/pi/Movie hogehoge
|
45
|
-
```
|
46
|
-
|
47
|
-
##動画撮影プログラム
|
48
|
-
```python
|
49
|
-
start_time = datetime.now()
|
50
|
-
set_time = 60
|
51
|
-
|
52
|
-
if judge=22.5:
|
53
|
-
#test.mp4のファイル名変更
|
54
|
-
os.rename ('/home/pi/test.mp4', b)
|
55
|
-
writer1 = cv2.VideoWriter(a, fmt ,25, (width, height))
|
56
|
-
while True:
|
57
|
-
ret, frame = cap.read()
|
58
|
-
writer1.write(frame)
|
59
|
-
end_time = datetime.now()
|
60
|
-
diff = end_time - start_time
|
61
|
-
print (diff)
|
62
|
-
delta_t = diff.seconds
|
63
|
-
if delta_t >= set_time:
|
64
|
-
break
|
65
|
-
writer1.release()
|
66
|
-
else:
|
67
|
-
writer2 = cv2.VideoWriter('/home/pi/test.mp4', fmt ,25, (width, height))
|
68
|
-
while True:
|
69
|
-
ret, frame = cap.read()
|
70
|
-
writer2.write(frame)
|
71
|
-
end_time = datetime.now()
|
72
|
-
diff = end_time - start_time
|
73
|
-
delta_t = diff.seconds
|
74
|
-
if delta_t >= set_time:
|
75
|
-
break
|
76
|
-
writer2.release()
|
77
|
-
cap.release()
|
78
|
-
```
|