VS2015 + openCV3.3 播放视频(一看就懂!!!)

最近在做 opencv 处理视频,在博客上找到许多有用的资料,此篇博客做个总结(介绍两种播放视频的方式):
编译环境:VS2015 + opencv3.3

  1. 转自:博客
    稍微完善了一下(进度条可动态变化、空格暂停、esc 退出)
    结果预览:
    在这里插入图片描述
#include <iostream>
#include <opencv2\opencv.hpp>
#include "opencv\highgui.h"

using namespace std;
using namespace cv;

CvCapture* g_capture = NULL;
int g_trackbar_pos = 0; // global trackbar position recorder

void onTrackbarSlide(int pos)
{
	cvSetCaptureProperty(
		g_capture,
		CV_CAP_PROP_POS_FRAMES,
		pos
	);
	g_trackbar_pos = pos;
}

int main()
{
	cvNamedWindow("VideoSlider", CV_WINDOW_AUTOSIZE);
	g_capture = cvCreateFileCapture("D:\\FFOutput\\V000.mp4");
	int frames = (int)cvGetCaptureProperty(
		g_capture,
		CV_CAP_PROP_FRAME_COUNT);
	IplImage* frame;
	while (1)
	{
		frame = cvQueryFrame(g_capture);
		if (!frame) break;
		cvCreateTrackbar(
				"Position",
				"VideoSlider",
				&g_trackbar_pos,
				frames,
				onTrackbarSlide);
		cvShowImage("VideoSlider", frame);
		setTrackbarPos("Position", "VideoSlider", g_trackbar_pos); // set trackbar position
		char c = waitKey(33);
		g_trackbar_pos++; // let trackbar moving
		if (c == 27) break;//"Esc"退出
		if (c == 32) waitKey(0);//空格实现暂停
	}
	cvReleaseCapture(&g_capture);
	cvDestroyWindow("VideoSlider");
	return 0;
}
  1. 简单一点的,转自 博客
    稍微完善了一下(空格暂停、esc 退出)
#include <iostream>
#include <opencv2\opencv.hpp>
#include "opencv\highgui.h"

using namespace std;
using namespace cv;

void main()
{
	VideoCapture capture;
	capture.open("D:\\FFOutput\\V000.mp4");


	if (!capture.isOpened())
	{
		cout<<"can not open ...\n";
		return;
	}
	cvNamedWindow("play vedio");
	long totalFrameNumber = capture.get(CV_CAP_PROP_FRAME_COUNT);//获取视频的总帧数
	long i = 1;
	while (true)
	{
		Mat frame;
		capture >> frame;
		if (i > totalFrameNumber) break;i++;
		imshow("play vedio", frame);
		char c = waitKey(33);
		if (c == 27) break; //按“Esc”退出
		if (c == 32) waitKey(0);//空格实现暂停
	}
	capture.release();
	cvDestroyWindow("play vedio");
}

  1. 遇到的几个问题及其解决方案:
    3.1 !capture.isOpened() 为false 导致播放不了视频
    解决方案:把 opencv_ffmpeg330_64.dll 文件贴到工程同.cpp文件目录下
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流浪猪头拯救地球

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值