【发布时间】:2021-08-23 12:57:50
【问题描述】:
我正在尝试找到一种将单个 png 图像转换为具有指定长度的 mp4 文件的方法。在尝试制作更长(多个小时)的视频时,我发现的解决方案缓慢且不可靠。
这是我目前在 Python 3 中的解决方案:
import os
import cv2
video_name = 'video.avi'
frame = cv2.imread('image.png')
height, width, layers = frame.shape
time = 300
video = cv2.VideoWriter(video_name, 0, 1 / 10, (width,height))
for i in range(int(time / 10)):
video.write(cv2.imread(os.path.join('.', 'image.png')))
video.write(cv2.imread('image.png'))
cv2.destroyAllWindows()
video.release()
基本上相同的图像被多次附加来组成视频,我发现合并非常费力,因此将 fps 设置为 0.1 秒。
这感觉像是错误的方法,所以任何解决方案都值得赞赏
【问题讨论】:
-
也许您不应该读取视频中每一帧的图像文件。
-
哦,fps 没有设置为 0.1 秒 (10 fps),而是 10 秒 (0.1 fps),因为 1/10 fps = 0.1 fps = 每帧 10 秒。