OpenCV Python VideoWriter某些编解码器的fps速率错误

2024-10-02 14:30:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用opencvforpython3来阅读视频,调整它们的大小,并用不同的编解码器编写它们。原始帧速率应该保持不变。在

如果我使用MJPG作为编解码器,这很好,但是对于其他编解码器,输出的帧速率设置为600 fps。(我试过XVID,DIVX,WMV1,WMV2)

有没有可能用原始帧速率的编解码器来写视频?在

import os
import numpy as np
import cv2

codec = 'XVID'
new_size = (256, 256)

for root, dirs, files in os.walk("UCF-101"):
    new_root = root.replace('UCF-101', 'UCF-101_resized_' + codec)
    if not os.path.exists(new_root):
        os.makedirs(new_root)
    for file in files:
        cap = cv2.VideoCapture(root + '/' + file)
        fps = cap.get(cv2.CAP_PROP_FPS)
        fourcc = cv2.VideoWriter_fourcc(*codec)
        out = cv2.VideoWriter(new_root + '/' + file, fourcc, fps, new_size, isColor=True)
        while(cap.isOpened()):
            ret, frame = cap.read()
            if ret == True:
                frame = cv2.resize(src=frame, dst=frame, dsize=new_size)
                out.write(frame)
            else:
                break
        cap.release()
        out.release()
        print('wrote ' + new_root + '/' + file)

Tags: importnewsizeos速率编解码器rootcv2