在Linux上将PIL图像转换成视频

时间:2018-09-19 20:59:34

标签: python linux python-3.x video debian

我正在Debian Linux上使用python 3,我正在使用python映像库(枕头叉)产生一系列图像,我想以广泛支持的格式将图像输出为视频(不在乎)我可以在VLC中查看并导入到视频编辑软件中,只要有足够的东西就可以。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

一种解决方法是使用opencv,可以通过numpy将数据从PIL桥接到opencv。我使用的代码概述是。

import numpy as np
from PIL import Image, ImageDraw
import cv2

videodims = (100,100)
fourcc = cv2.VideoWriter_fourcc(*'avc1')    
video = cv2.VideoWriter("test.mp4",fourcc, 60,videodims)
img = Image.new('RGB', videodims, color = 'darkred')
#draw stuff that goes on every frame here
for i in range(0,60*60):
    imtemp = img.copy()
    # draw frame specific stuff here.
    video.write(cv2.cvtColor(np.array(imtemp), cv2.COLOR_RGB2BGR))
video.release()

注意:

  • 我从https://blog.extramaster.net/2015/07/python-pil-to-mp4.html那里获得了基本技术
  • Extramaster声称将-1作为编解码器参数传递会弹出一个编解码器选择列表,这对我不起作用。
  • 由于较早的发行版缺少python3-opencv软件包,因此我不得不使用Debian buster(在编写本文时进行测试)。
  • 如果框架的尺寸与视频opencv的尺寸不匹配,则会自动添加框架。