【发布时间】:2021-07-17 12:26:30
【问题描述】:
当我使用以下 Python 代码录制网络摄像头时,它会将其保存到 webcam.mp4 中。
在我的本地计算机上,我可以观看视频,但是当我在浏览器中显示它时,它不起作用。看来,编解码器是错误的,但我不知道为什么,也不知道如何让它正确。
Python 代码
global rec_bool
rec_bool = False
def timer(seconds):
global rec_bool
rec_bool = True
time.sleep(seconds)
rec_bool = False
seconds = 3
timer_thread = threading.Thread(target=timer, args=(seconds,)).start()
vid_capture = cv2.VideoCapture(0)
vid_cod = cv2.VideoWriter_fourcc(*'mp4v')
output = cv2.VideoWriter("webcam.mp4", vid_cod, 20.0, (640,480))
while(rec_bool == True):
ret,frame = vid_capture.read()
output.write(frame)
vid_capture.release()
output.release()
cv2.destroyAllWindows()
HTML 代码
<iframe class="video" id="webcam_video" src="/static/videos/webcam.mp4" frameborder="0" allowfullscreen></iframe>
它只是显示一个加载符号。另一方面,当我使用 curl 下载它时,它工作得非常好。我已经尝试过使用其他 mp4 文件,它们可以正常工作。
【问题讨论】:
-
curl和这里有什么关系? -
检查客户端是否可以接收。它可以工作,所以我看不出有问题,只有 cv2 的输出文件是奇怪的。
-
什么客户?您是否对自己保留任何重要信息?
-
对于客户端,我的意思是最终用户在他们的机器上使用网站:)
-
你可能需要
fourcc(*'mp4v')中的不同值