回答編集履歴

2

 

2022/10/16 08:49

投稿

退会済みユーザー
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

 

2022/10/16 08:47

投稿

退会済みユーザー
test CHANGED
@@ -14,4 +14,4 @@
14
14
  2. 動画を常に掘り起こして保存するスレッドA
15
15
  3. 動画を常に掘り起こして保存するスレッドB
16
16
 
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を分ける必要すらないかもしれません。
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を分ける必要すらないかもしれません。