回答編集履歴
2
test
CHANGED
@@ -14,4 +14,6 @@
|
|
14
14
|
2. 動画を常に掘り起こして保存するスレッドA
|
15
15
|
3. 動画を常に掘り起こして保存するスレッドB
|
16
16
|
|
17
|
+
Aで保存中にBは準備を進め、Aで保存が済んだ時に直ちにBにシフト、以下略です。スレッド単位で保存先を切り替えるため、原理的には1フレームも落とすことなく保存できると思います。
|
18
|
+
|
17
19
|
OpenCVの`cv2.VideoCapture`を子分スレッドにするとエラーが起きた記憶があります。必ずカメラのスレッドはメインスレッドにしてください。[スレッド間のやり取りはQueueを使えば解決](https://docs.python.org/ja/3/library/queue.html#queue-objects)できますね。A用のQueueとB用のQueueを用意して、メインスレッド側でどちらのQueueにデータを切り替えて処理するイメージです。`cv2.VideoWriter`のラグ次第では、もしかしたら、スレッドA/Bを分ける必要すらないかもしれません。
|
1
test
CHANGED
@@ -14,4 +14,4 @@
|
|
14
14
|
2. 動画を常に掘り起こして保存するスレッドA
|
15
15
|
3. 動画を常に掘り起こして保存するスレッドB
|
16
16
|
|
17
|
-
OpenCVの`cv2.VideoCapture`を子分スレッドにするとエラーが起きた記憶があります。必ずカメラのスレッドはメインスレッドにしてください。ス
|
17
|
+
OpenCVの`cv2.VideoCapture`を子分スレッドにするとエラーが起きた記憶があります。必ずカメラのスレッドはメインスレッドにしてください。[スレッド間のやり取りはQueueを使えば解決](https://docs.python.org/ja/3/library/queue.html#queue-objects)できますね。A用のQueueとB用のQueueを用意して、メインスレッド側でどちらのQueueにデータを切り替えて処理するイメージです。`cv2.VideoWriter`のラグ次第では、もしかしたら、スレッドA/Bを分ける必要すらないかもしれません。
|