我从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/

10-11 22:36
查看更多