【问题标题】:Opencv video read and save again is corruptedOpencv视频再次读取并保存已损坏
【发布时间】:2019-02-23 23:39:39
【问题描述】:

我尝试阅读视频,翻转帧然后保存,但输出视频窗口显示它已损坏并且无法播放。

import cv2 as cv

cap = cv.VideoCapture('wtf.avi')
fourcc = cv.VideoWriter_fourcc(*'DIVX')
out= cv.VideoWriter('output.avi', fourcc, 20.0, (640,480))

while(cap.isOpened()):
    ret, frame = cap.read()
    if ret == True:
        frame = cv.flip(frame, 0)
        # write the flipped frame
        out.write(frame)
        cv.imshow('frame', frame)
        if cv.waitKey(35) & 0xFF == ord('q'):
            break
    else:
        break

# Release everything if job is finished
cap.release()
out.release()
cv.destroyAllWindows()

【问题讨论】:

    标签: python-3.x video opencv3.3


    【解决方案1】:

    根据我的经验,如果您的操作系统中没有安装编解码器或其他版本的编解码器,您尝试使用哪个版本保存视频可能会导致视频崩溃。

    即使这段代码是用 C++ 编写的,它也可以帮助你:

    // Load input video or camera stream
    cv::VideoCapture cap(0);
    if (!cap.isOpened())
    {
        std::cout << "!!! Input video could not be opened" << std::endl;
        return 1;
    }
    
    float fps = cap.get(CV_CAP_PROP_FPS);
    int cols = cap.get(CV_CAP_PROP_FRAME_WIDTH);
    int rows = cap.get(CV_CAP_PROP_FRAME_HEIGHT);
    
    
    // Setup output video
    cv::VideoWriter video("output.avi", cap.get(CV_CAP_PROP_FOURCC), fps, cv::Size(cols,rows),true)
    

    【讨论】:

      猜你喜欢
      • 2021-01-02
      • 1970-01-01
      • 2018-11-26
      • 2020-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-14
      • 2020-09-24
      相关资源
      最近更新 更多