[Python] Come esportare video come .mp4 usando openCV?


Answers

Potrebbe essere un po 'tardi per rispondere a questa domanda, ma se vuoi scrivere un file .MP4 con OpenCV prova questo:

import cv2
#your previous code here

fourcc = cv2.VideoWriter_fourcc(*'a\0\0\0')
out = cv2.VideoWriter('out.mp4', fourcc, fps, res)

#the character '\0' is the Null-Terminator or simply 0x00 in the ASCII-Table
#tag: *'a\0\0\0' corresponds to 0x00000061

#your following code here
Question

Sto cercando di esportare video come .mp4 con openCV. Ho provato diversi codec ma per ora non ho avuto successo.

Questa è una funzione che costruisce un video dai frame:

def create_movie(self, out_directory, fps, total_frames):
    img1 = cv2.imread("temp/scr0.png")
    height, width, layers =  img1.shape
    codec = cv2.cv.CV_FOURCC('X','V','I','D')
    video = cv2.VideoWriter(out_directory, codec, fps, (width, height))

    for i in range(total_frames):
        img_name = "temp/scr" + str(i) + ".png"
        img = cv2.imread(img_name)
        video.write(img)

    video.release()
    cv2.destroyAllWindows()

Di solito ricevo il prossimo messaggio di errore, usando diversi codec:

Tag XVID/0x44495658 incompatible with output codec id '13'

È possibile fare questo e come?