皆さん、ありがとうございました。 私のウェブカメラで撮影したフレームからビデオを保存する機能があります。cv2はスレッドでは動作しますが、プロセスでは動作しません。
import cv2
import multiprocessing
import threading
def rec():
# Define the codec and create VideoWriter object
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480))
while(cap.isOpened()):
ret, frame = cap.read()
if ret==True:
out.write(frame)
else:
break
# Release everything if job is finished
cap.release()
out.release()
cv2.destroyAllWindows()
私はスレッドでそれを使うので、このコードで、それがうまく機能した場合:
s1 = threading.Thread(target=rec)
s1.start()
しかし、私はビデオを開いたときに、次のコードを使用して、別のプロセスを開始する場合それはいくつかのノイズを持つ黒いフレームだけを含んでいます。
s1 = multiprocessing.Process(target=rec)
s1.start()
私はすべてを検索しましたが、解決策は見つかりませんでした。
また、私はcap
が定義されているPythonの3.6
あなたは本当に複数のプロセスを使用して同じファイルに書き込もうとしているのですか、間違って質問していますか? – PeterT
あなたはそれを間違って読んでいます:)私はメインのものが他のことをしている間に録音を扱うメインのサブプロセスが必要です – Weizen
マルチプロセスの代わりにサブプロセスを使うべきですか? – Weizen