如何将pygame相机保存为视频输出

aga*_*ust 6 python video pygame

我正在尝试本教程将网络摄像头视频流式传输到 PyGame 没有错误.. https://www.youtube.com/watch?v=H6ijuSmv5N0

还有这样的剧本..

import pygame, sys
import pygame.camera
from pygame.locals import *

pygame.init()
pygame.camera.init()

screen = pygame.display.set_mode((640, 480))

cam = pygame.camera.Camera("/dev/video0", (640, 480))
cam.start()

while 1:
    image = cam.get_image()
    screen.blit(image, (0,0))
    pygame.display.update()

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            #save as video output
            sys.exit()
Run Code Online (Sandbox Code Playgroud)

但是..在这里,当我想将该流保存为视频输出时遇到问题..如 mp4、3gp、avi 等。

在此线程中,pygame.image.save(img, "image.jpg")将输出保存为图像。 /sf/answers/1435185601/

jsb*_*eno 2

Pygame的多媒体输出能力受到严重限制:它只能保存未压缩的BMP图像,并且无法保存视频格式。

您必须使用另一个库来提供图像帧,渲染视频 - 或将帧逐帧保存在文件夹中,按新月顺序对文件名进行编号,然后使用实用程序将结果转换为视频。

该项目似乎有一个类来调用 libffmpeg 来编码视频,在 Python 调用中逐帧传递: https: //github.com/kanryu/pipeffmpeg - 您只需要一种将 pygame Surface 对象转换为预期的方法ffmpeg 的“frameraw”属性。

https://github.com/kanryu/pipeffmpeg/blob/master/pipeffmpeg.py