gpt4 book ai didi

c - 保存mp4视频opencv

转载 作者:行者123 更新时间:2023-12-02 17:20:54 27 4
gpt4 key购买 nike

我有mp4视频,画完后需要保存。
我正在尝试使用

VideoWriter video("outcpp.avi", CV_FOURCC('M', 'J', 'P', 'G'), 10, Size(1280, 720));

但是保存后这个文件坏了。
完整代码(我使用的是 opencv 2.4.13):
#include <opencv2/opencv.hpp>
#include <iostream>
#include <fstream>
using namespace std;
using namespace cv;
Mat src;
void mouse_callback(int event, int x, int y, int, void*)
{
if (event == EVENT_LBUTTONDOWN)
{
rectangle(src, Point(x, y), Point(x+10, y+10), Scalar(0, 255, 0));
imshow("src", src);
}
}

int main(void)
{
CvCapture* cap = cvCreateFileCapture("1.mp4");
VideoWriter video("outcpp.avi", CV_FOURCC('M', 'J', 'P', 'G'), 10, Size(1280, 720));
while (1)
{
src = cvQueryFrame(cap);
namedWindow("src", WINDOW_AUTOSIZE);
imshow("src", src);
setMouseCallback("src", mouse_callback);
video.write(src);
waitKey(0);
}

return 0;
}

最佳答案

接缝一切正常VideoCapture .为什么使用 C 接口(interface)进行读取,使用 C++ 进行写入?

我只动video.write在等待键捕获用户在视频中的点击之后。

int main(void)
{
vector<Rect> trafficLights;

VideoCapture cap("/Users/alex/Documents/my_projects/hahaton_cams/kfu2.mp4");
VideoWriter video("outcpp.avi", CV_FOURCC('M', 'J', 'P', 'G'), 10, Size(1280, 720));
while (cap.read(src)) {
namedWindow("src", WINDOW_AUTOSIZE);
imshow("src", src);
setMouseCallback("src", mouse_callback);

if (waitKey(0) == 'q')
break;
video.write(src); // to capture user clicks
}

return 0;
}

开放CV 4.2

关于c - 保存mp4视频opencv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62211852/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com