#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
using namespace std;
//转换:
void tra() {
vector<string> inputVid = { "test3.mp4" };
vector<string> outputVid = { "test3.avi" };
VideoCapture cap;
cap.open(inputVid[0]);
if (!cap.isOpened()) {
cout << "Open Fail!" << endl;
return;
}
Mat frame;
Size size = Size(cap.get(CV_CAP_PROP_FRAME_WIDTH), cap.get(CV_CAP_PROP_FRAME_HEIGHT));//视频尺寸
VideoWriter writer;
writer.open(outputVid[0], CV_FOURCC('H', '2', '6', '4'), cap.get(CV_CAP_PROP_FPS), size, true);
while (true) {
cap >> frame;
if (frame.empty()) break;
cout << size << endl;
writer << frame;
}
cap.release();
}
void cut() {
vector<string> inputVid = { "test3.avi" };
vector<string> outputVid = { "test3_res.avi" };
VideoCapture cap;
cap.open(inputVid[0]);
if (!cap.isOpened()) {
cout << "Open Fail!" << endl;
return;
}
Mat frame;
int count = 0;
Size size = Size(cap.get(CV_CAP_PROP_FRAME_WIDTH), cap.get(CV_CAP_PROP_FRAME_HEIGHT));//视频尺寸
VideoWriter writer;
writer.open(outputVid[0], CV_FOURCC('H', '2', '6', '4'), cap.get(CV_CAP_PROP_FPS), size, true);
int end = 16;
while (true) {
cap >> frame;
if (frame.empty()||count>end) break;
count++;
if (count >= 1 && count <= end) {
cout << count << endl;
writer << frame;
}
}
cap.release();
}
int main() {
cut();
}
如果提示 "无法加载h264.dll" 等信息,则下载这个解压放到项目下就ok了。