質問編集履歴

3

プログラムを一部修正しました。

2019/11/11 07:33

投稿

raspypy
raspypy

スコア247

test CHANGED
File without changes
test CHANGED
@@ -54,25 +54,9 @@
54
54
 
55
55
  height = 480
56
56
 
57
-
58
-
59
- now = datetime.now()
60
-
61
- filename = '/home/pi/dev/data/' + now.strftime('%Y%m%d_%H%M%S') + '.mp4'
62
-
63
- print (filename)
64
-
65
- fmt = cv2.VideoWriter_fourcc('m', 'p', '4', 'v') # ファイル形式(ここではmp4)
66
-
67
57
  writer1 = cv2.VideoWriter(filename, fmt ,25, (width, height))
68
58
 
69
59
  writer2 = cv2.VideoWriter('/home/pi/dev/data/test.mp4', fmt ,25, (width, height))
70
-
71
-
72
-
73
- start_time = datetime.now()
74
-
75
- set_time = 5
76
60
 
77
61
 
78
62
 
@@ -86,22 +70,6 @@
86
70
 
87
71
  sleep(1.0)
88
72
 
89
- while True:
90
-
91
- ret, frame = cap.read()
92
-
93
- writer1.write(frame)
94
-
95
- end_time = datetime.now()
96
-
97
- diff = end_time - start_time
98
-
99
- print (diff)
100
-
101
- delta_t = diff.seconds
102
-
103
- if delta_t >= set_time:
104
-
105
73
  break
106
74
 
107
75
  else:
@@ -112,22 +80,8 @@
112
80
 
113
81
  writer2.write(frame)
114
82
 
115
- end_time = datetime.now()
116
-
117
- diff = end_time - start_time
118
-
119
- print (diff)
120
-
121
- delta_t = diff.seconds
122
-
123
- if delta_t >= set_time:
124
-
125
83
  break
126
84
 
127
85
  cap.release()
128
86
 
129
- writer1.release()
130
-
131
- writer2.release()
132
-
133
87
  ```

2

プログラムコードを更新しました。

2019/11/11 07:33

投稿

raspypy
raspypy

スコア247

test CHANGED
File without changes
test CHANGED
@@ -30,7 +30,13 @@
30
30
 
31
31
 
32
32
 
33
+ 実際は、
34
+
35
+ ・test.mp4という動画が指定時間分保存(これは期待通り)
36
+
33
- 実際は、日付時刻.mp4の動画が保存され、しかもその動画サイズは200バイト程度と小さいファイルで、再生もできませんでした。
37
+ 日付時刻.mp4の動画が保存され、しかもその動画サイズは200バイト程度と小さいファイルで、再生もできませんでした。
38
+
39
+  ⇒なぜ、このファイルが保存されるのかが分かりません。
34
40
 
35
41
 
36
42
 
@@ -44,9 +50,15 @@
44
50
 
45
51
  ```python
46
52
 
53
+ width = 640
54
+
55
+ height = 480
56
+
57
+
58
+
47
59
  now = datetime.now()
48
60
 
49
- filename = '/path/' + now.strftime('%Y%m%d_%H%M%S') + '.mp4'
61
+ filename = '/home/pi/dev/data/' + now.strftime('%Y%m%d_%H%M%S') + '.mp4'
50
62
 
51
63
  print (filename)
52
64
 
@@ -54,7 +66,7 @@
54
66
 
55
67
  writer1 = cv2.VideoWriter(filename, fmt ,25, (width, height))
56
68
 
57
- writer2 = cv2.VideoWriter('test.mp4', fmt ,25, (width, height))
69
+ writer2 = cv2.VideoWriter('/home/pi/dev/data/test.mp4', fmt ,25, (width, height))
58
70
 
59
71
 
60
72
 
@@ -64,44 +76,58 @@
64
76
 
65
77
 
66
78
 
67
- while True:
79
+ if "ある条件":
68
80
 
69
- ret, frame = cap.read()
81
+ GPIO.output(13, GPIO.HIGH)
70
82
 
71
- end_time = datetime.now()
83
+ sleep(1.0)
72
84
 
73
- diff = end_time - start_time
85
+ GPIO.output(13, GPIO.LOW)
74
86
 
75
- print (diff)
87
+ sleep(1.0)
76
88
 
77
- delta_t = diff.seconds
89
+ while True:
78
90
 
91
+ ret, frame = cap.read()
92
+
93
+ writer1.write(frame)
94
+
95
+ end_time = datetime.now()
96
+
97
+ diff = end_time - start_time
98
+
99
+ print (diff)
100
+
101
+ delta_t = diff.seconds
102
+
79
- if delta_t >= set_time:
103
+ if delta_t >= set_time:
104
+
105
+ break
106
+
107
+ else:
108
+
109
+ while True:
110
+
111
+ ret, frame = cap.read()
80
112
 
81
113
  writer2.write(frame)
82
114
 
83
- break
115
+ end_time = datetime.now()
84
116
 
85
- if "ある条件":
117
+ diff = end_time - start_time
86
118
 
87
- writer1.write(frame)
119
+ print (diff)
88
120
 
89
- GPIO.output(13, GPIO.HIGH)
121
+ delta_t = diff.seconds
90
122
 
91
- sleep(1.0)
123
+ if delta_t >= set_time:
92
124
 
93
- GPIO.output(13, GPIO.LOW)
94
-
95
- sleep(1.0)
96
-
97
- break
125
+ break
98
-
99
-
100
126
 
101
127
  cap.release()
102
128
 
103
- writer1.release() # ファイルを閉じる
129
+ writer1.release()
104
130
 
105
- writer2.release() # ファイルを閉じる
131
+ writer2.release()
106
132
 
107
133
  ```

1

質問内容を具体的に記載しました。

2019/11/11 07:11

投稿

raspypy
raspypy

スコア247

test CHANGED
File without changes
test CHANGED
@@ -2,19 +2,39 @@
2
2
 
3
3
 
4
4
 
5
- 動画ファイルを保存するときに、ムスタンプつけたい。
5
+ 動画ファイルを保存するときに、条件に応じてファル名変更したい。
6
6
 
7
- 今、プログラムの中で、
8
7
 
9
- ファイルパス /home/pi/
10
8
 
11
- ファイル名 test.mp4
9
+ ##プログラム
12
10
 
13
- と指定して動画を保存しているですが
11
+ プログラムは
14
12
 
15
- test.mp4のファイル名日付。2019-11-11-12-12.mp4というように日付ファイル名と保存したいのでが、
13
+ ①時間指定し指定した間が経過したら、動画撮影終了、動画を保存す
16
14
 
15
+ ②ある条件を満たした場合に、動画撮影を終了し、動画を保存する。
16
+
17
+
18
+
19
+ ①の時は、**writer2**を使用して、test.mp4 というファイル名で動画を保存
20
+
21
+ ②の時は、**writer1**を使用して、日付時刻.mp4というファイル名で動画を保存
22
+
23
+
24
+
17
- 方法が分かりません。
25
+ ##困っていること
26
+
27
+ 今、ある条件を満たさない状態で、このプログラムを実行すると、
28
+
29
+ 期待する結果は、『test.mp4という動画が指定時間分保存される』という結果ですが、
30
+
31
+
32
+
33
+ 実際は、日付時刻.mp4の動画が保存され、しかもその動画サイズは200バイト程度と小さいファイルで、再生もできませんでした。
34
+
35
+
36
+
37
+ プログラムに不備があると思うのですが、間違いなど指摘いただけると助かります。
18
38
 
19
39
 
20
40
 
@@ -24,19 +44,17 @@
24
44
 
25
45
  ```python
26
46
 
27
- def movie():
47
+ now = datetime.now()
28
48
 
29
- cap = cv2.VideoCapture(0)
49
+ filename = '/path/' + now.strftime('%Y%m%d_%H%M%S') + '.mp4'
30
50
 
31
- width = 640
51
+ print (filename)
32
52
 
33
- height = 480
53
+ fmt = cv2.VideoWriter_fourcc('m', 'p', '4', 'v') # ファイル形式(ここではmp4)
34
54
 
55
+ writer1 = cv2.VideoWriter(filename, fmt ,25, (width, height))
35
56
 
36
-
37
- fmt = cv2.VideoWriter_fourcc('m', 'p', '4', 'v')
38
-
39
- writer = cv2.VideoWriter('/home/pi/test.mp4', fmt ,25, (width, height))
57
+ writer2 = cv2.VideoWriter('test.mp4', fmt ,25, (width, height))
40
58
 
41
59
 
42
60
 
@@ -44,11 +62,11 @@
44
62
 
45
63
  set_time = 5
46
64
 
65
+
66
+
47
67
  while True:
48
68
 
49
69
  ret, frame = cap.read()
50
-
51
- writer.write(frame)
52
70
 
53
71
  end_time = datetime.now()
54
72
 
@@ -58,12 +76,32 @@
58
76
 
59
77
  delta_t = diff.seconds
60
78
 
61
- if delta_t >= set_time:
79
+ if delta_t >= set_time:
80
+
81
+ writer2.write(frame)
62
82
 
63
83
  break
64
84
 
85
+ if "ある条件":
86
+
87
+ writer1.write(frame)
88
+
89
+ GPIO.output(13, GPIO.HIGH)
90
+
91
+ sleep(1.0)
92
+
93
+ GPIO.output(13, GPIO.LOW)
94
+
95
+ sleep(1.0)
96
+
97
+ break
98
+
99
+
100
+
65
101
  cap.release()
66
102
 
67
- writer.release()
103
+ writer1.release() # ファイルを閉じる
104
+
105
+ writer2.release() # ファイルを閉じる
68
106
 
69
107
  ```