我从adaftut复制了一个脚本,它允许在TFT LCD上显示相机流。 但是,使用该流我无法保存相机录制内容。
该脚本打开 io.BytesIO,然后将相机捕获的数据放入该流中,然后在 while 循环中关闭该流。而且我无法将流保存为视频。 这是代码的一部分:
while(True):
stream = io.BytesIO() # Capture into in-memory stream
camera.capture(stream, use_video_port=True, format='raw')
stream.seek(0)
stream.readinto(yuv) # stream -> YUV buffer
stream.close()
yuv2rgb.convert(yuv, rgb, sizeData[sizeMode][1][0],
sizeData[sizeMode][1][1])
img = pygame.image.frombuffer(rgb[...], 'RGB')
您能帮忙将直播保存为录音吗? 我需要保存摄像头录制内容并在 LCD TFT 上预览摄像头数据。
最佳答案
简·海克,
您很可能需要使用一些处理视频文件的库。 例如,您可以使用 OpenCV 将流保存到视频文件中。其示例可以在 answer 中找到。 。对于您的代码,它应该类似于:
import cv2
# Define the codec and create VideoWriter object
#fourcc = cv2.cv.CV_FOURCC(*'DIVX')
#out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480))
out = cv2.VideoWriter('output.avi', -1, 20.0, (640,480))
while(True):
stream = io.BytesIO() # Capture into in-memory stream
camera.capture(stream, use_video_port=True, format='raw')
stream.seek(0)
stream.readinto(yuv) # stream -> YUV buffer
stream.close()
yuv2rgb.convert(yuv, rgb, sizeData[sizeMode][1][0],
sizeData[sizeMode][1][1])
img = pygame.image.frombuffer(rgb[...], 'RGB')
out.write(img)
out.release()
关于python - 如何将流图像录制为视频文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48840605/