Cv2.VideoWriter не будет записывать файл с использованием fourcc h.264 (с logitech c920, python 2.7, windows 8)Python

Программы на Python
Anonymous
Cv2.VideoWriter не будет записывать файл с использованием fourcc h.264 (с logitech c920, python 2.7, windows 8)

Сообщение Anonymous »

Я новичок в Python (2.7) и opencv (3.0) (и потоковой передаче/записи видео в целом), так что простите.

Я использую logitech c920 в качестве моей веб-камеры, и она может передавать потоковое видео, сжатое в формате h264, поэтому я пытаюсь написать простое приложение, которое устанавливает 4 свойства экземпляра VideoCapture (от Fourcc до h264; ширина до 1920; высота до 1080; и fps до 30), а затем записывает видео в каталог на один уровень выше с именем test.mp4 и показывает запись на моем экране. Вот код:

Код: Выделить всё

import sys
import cv2 as cv

cap = cv.VideoCapture(0)
fourcc = cv.VideoWriter_fourcc('H','2','6','4')

cap.set(6, fourcc)
cap.set(3,1920)
cap.set(4,1080)
cap.set(5, 30)

vid = cv.VideoWriter('../test.mp4', fourcc, 20.0, (640,480))
print vid.isOpened() #returns false :(
while (cap.isOpened()):

ret, frame = cap.read()

if (ret == True):

#gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)

vid.write(frame)

cv.imshow('window', frame)

if (cv.waitKey(1) & 0xFF == ord('q')):
break

cap.release()
vid.release()
cv.destroyWindow('window')
cv.imshow('window',frame) работает нормально, и все свойства установлены; однако vid.isOpened() возвращает false, поэтому очевидно, что я сделал что-то не так в приведенном выше примере. Если я передаю -1 для fourcc, мне разрешено выбирать из списка кодеков, и i420 доступен и говорит (для камер Logitech), а vid.isOpened() возвращает true, если я меняю расширение файла с mp4 на avi (я думаю, это означает, что i420 нельзя сохранить как .avi ?), однако test.avi всегда огромен и выглядит необработанным, 100 МБ для тестового видео на несколько секунд и не открывается.

Любая помощь в этом будет полезна, большое спасибо

Подробнее здесь: https://stackoverflow.com/questions/331 ... -c920-pyth

Вернуться в «Python»