用cv2.VideoWriter编写视频

时间:2020-04-02 19:47:46

标签: python opencv video

首先,我知道之前曾有人问过这个问题,但我发现没有任何作用。

我只想从一系列矩阵中制作一个视频,我以为我已经正确地编写了所有视频,但是它不起作用。这是我用来尝试调试的代码片段:

import cv2
import numpy as np

print(cv2.__version__)
print(np.__version__)
gout = cv2.VideoWriter('temp.mp4', cv2.VideoWriter_fourcc(*'mp4v'), 100.0, (100, 100))
for i in range(100):
    mat = np.uint8(np.random.rand(100,100)*256)
    gout.write(mat)
gout.release()

cv2的版本为4.1.2,numpy的版本为1.17.4

我尝试了不同的fourcc代码,但没有任何效果。视频被创建,并显示它具有数据(在文件资源管理器中不是0kb),但是当我用VLC打开它时,程序会发出声音。标题栏从“ temp.mp4-VLC媒体播放器”到“ VLC媒体播放器”来回快速闪烁。 (其他视频播放器,例如Windows Photos应用也不起作用)

似乎我正在编写的视频已损坏,但是我真的不确定这怎么可能。在我看来,该代码段是关于cv2.VideoWriter的最简单的用例,而我现在看不到可以调试的部分。

1 个答案:

答案 0 :(得分:1)

多亏了Dan Masek,我意识到我正在将灰度图像写入彩色视频中。

gout = cv2.VideoWriter('temp.mp4', cv2.VideoWriter_fourcc(*'mp4v'), 100.0, (100, 100), False)

为我工作