Написание видео с помощью cv2.VideoWriter - PullRequest
0 голосов
/ 02 апреля 2020

Во-первых, я знаю, что этот вопрос задавался ранее, но ничего, что я нашел, не помогло.

Я просто хочу сделать видео из серии матриц, и я подумал, что написал его все правильно, но это не работает. Вот фрагмент кода, который я использую, чтобы попытаться отладить его:

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

У меня есть пробовал разные четыре cc кода, и ничего не работает. Видео создается, и оно показывает, что у него есть данные (это не 0kb в проводнике), но когда я go открываю его с помощью VL C, программа сбрасывает. Строка заголовка очень быстро мигает назад и вперед от «temp.mp4 - VL C media player» до «VL C media player». (Другие видеоплееры, например приложение windows Фото, тоже не работают)

Похоже, что видео, которое я пишу, каким-то образом повреждено, но я действительно не уверен, насколько это возможно. Мне кажется, что этот фрагмент кода о самом простом из возможных вариантов использования cv2.VideoWriter, и я не вижу, какую часть я мог бы отладить на этом этапе.

1 Ответ

1 голос
/ 03 апреля 2020

Благодаря Дэну Масеку я понял, что записываю изображения в градациях серого в цветное видео.

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

работал на меня

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...