最近看了一下[1]_2011_OpenCV 2 Computer Vision Application Programming Cookbook.pdf,写了一个利用Opencv库实现的简单视频播放器。源码如下所示,英文注释大家应该可以看懂的。O(∩_∩)O~

// C++ header and namespace
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;// Opencv header and namespace
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/video/video.hpp>
using namespace cv;bool JumpToFrame(false);int main(int argc, char* argv[])
{   //!< Check out Input videoif (argc != 2){cerr << "Usage: VideoPlayer.exe VideoFilename." << endl;exit(1);}//!< Check out Open VideoVideoCapture capture(argv[1]);if (!capture.isOpened()){return 1;}#pragma region InfoOfVideolong    NumberOfFrame = static_cast<long>(capture.get(CV_CAP_PROP_FRAME_COUNT));double  HeightOfFrame = capture.get(CV_CAP_PROP_FRAME_HEIGHT);double  WidthOfFrame  = capture.get(CV_CAP_PROP_FRAME_WIDTH);double  FpsOfVideo    = capture.get(CV_CAP_PROP_FPS);   cout << "The name of the input video is " << argv[1] << "." << endl;cout << "NumberOfFrame : " << NumberOfFrame << endl;cout << "HeightOfFrame : " << HeightOfFrame << endl;cout << "WidthOfFrame  : " << WidthOfFrame << endl;cout << "FpsOfVieo     : " << FpsOfVideo << endl;#pragma endregion// !< JumpToFrame functionwhile (JumpToFrame){double Position = 0.0;cout << "Please input the number of frame which you want jump to!" << endl;cin >> Position;capture.set(CV_CAP_PROP_POS_FRAMES, Position);}// !< Delay between each frame in ms corresponds to video frame rate(fps)Mat frame;bool stop(false);int delay = 1000 / FpsOfVideo;namedWindow("Extracted Frame");while (!stop){//read next frame if anyif (!capture.read(frame)){break;}imshow("Extracted Frame", frame);//introduce a delay or press key to stopif (waitKey(delay) >= 0){stop = true;}}// !< Close the video file.// Not required since called by destructorcapture.release();return 0;
}

Opencv 简单视频播放器相关推荐

  1. 使用opencv开发视频播放器一

    最近由于项目需求,要在界面中内嵌一个简单的视频播放器,能够打开视频,逐帧播放,进度条拖动等功能. 因此,首先尝试使用opencv编写.原因:1.便于后续处理:2.opencv提高的接口较完善.很快就动 ...

  2. android 实现视频播放功能,android开发之简单视频播放器(VideoView)

    简单视频播放器的使用 一.简单使用videoView和MediaController实现播放控制 1.添加需要的权限 2.设置布局 android:id="@+id/main_video&q ...

  3. 轻松玩转Python:打开文件夹,搜索视频文件,实现简单视频播放器

    目录 1.功能描述: 2.具体实现: 3.代码实现: 4.执行效果: 1.功能描述: 这段代码实现了一个简单的视频播放器,可以打开指定的文件夹并搜索其中的视频文件,将搜索结果展示在列表框中,用户可以选 ...

  4. C++ OpenCV制作视频播放器

    目录 一:视频播放效果展示 二:完整源码分享 一:视频播放效果展示 1.1 点击开始播放按钮,能够播放视频 1.2 点击暂停播放 视频停在某一帧画面 同时按钮文本改变为继续播放       以便用户继 ...

  5. Android Studio——简单视频播放器

    1.界面分析 三个界面:主界面,视频列表界面,视频播放界面,如下图所示: 2.实现思路 (1)主界面设计 很简单,就一个背景和一个控件,然后为控件设置点击事件,然后跳转到视频列表界面 activity ...

  6. PyQt5 简单视频播放器

    文章目录 1.主要组件 2.功能代码 3.功能展示 4.如果播放不了 1.主要组件 QVideoWidget:这个类主要用作播放视频的控件 QMediaPlayer :实现媒体播放的类 2.功能代码 ...

  7. <Python>PyQt5+ffmpeg,简单视频播放器的编写(解码器:K-lite)

    更新日志: 202211251640:第一版,基本功能:视频导入,播放.暂停.播放时间显示.音量控制 视频播放器 概述:本文是利用PyQt5加上ffmpeg来编写一个具备基本功能的视频播放器(播放.暂 ...

  8. 原生h5+css3 实现简单视频播放器组件

    视频播放器组件案例 实现效果 实现功能 全屏切换 进度条点击跳播 音量点击设置大小 涉及知识点 video对象属性 .duration 获取视频总长度(秒) .currentTime 当前播放时间(秒 ...

  9. SDL,ffmpeg实现简单视频播放器

    看了雷神的一些文章和解释,自己重新实现了一下相关代码的东西,做为加深. 一起在音视频领域加油咯! // 基于FFmpeg用SDL实现一个视频播放器(.h264) ///* AVFormatContex ...

最新文章

  1. C#(asp.net)对字符串的操作公共类(StringUtil.cs)
  2. Oracle中的date与timestamp
  3. linux软中断分析,linux操作系统下的软中断问题分析_linux教程
  4. sealed、new、virtual、abstract与override 趣解
  5. 避免在 ASP.NET Core 3.0 中为启动类注入服务
  6. c++ h cpp文件如何关联_C++核心准则SF.5: .cpp文件必须包含定义它接口的.h文件
  7. 微型计算机可避免强磁场干扰,微型计算机测控系统抗干扰技术
  8. 【杂文】Vue 杂文
  9. HTML示例08---CSS3概述
  10. linux系统下卸载rpm方式安装的mysql5.7.*
  11. macOS 12兼容机型列表 想知道你的Mac是否支持macOS Monterey吗?
  12. 896.Montonic Array - LeetCode
  13. Activity与Service通信(不同进程之间)
  14. SVN汉化包安装后,没有出现对应的语言选项问题解决(附SVN1.12.1汉化包下载地址)
  15. kali中binwalk/foremost/zip2john工具的配合使用
  16. r5驱动 索尼exmor_SONY的驱动安装顺序(还不知道的赶快进来看看!!)
  17. 一些常用的正则表达式(个人收集)
  18. 在不同融资阶段,公司该如何估值
  19. 红米8.0系统手机(亲测有效)激活xposed框架的经验
  20. w ndows7与XP哪个好,Win7系统与Win XP系统哪个更好?Windows7与WindowsXP区别介绍-系统城·电脑系统下载之家...

热门文章

  1. 最新版的交易猫钓鱼链接源码 带教程
  2. 哔哩哔哩导航背景写法
  3. labelview连续打印设置方法
  4. 神州数码c语言笔试题,2016年计算机笔试考试题及答案
  5. 三星宣布量产64层V-NAND闪存芯片: 传输速度达1Gbps
  6. 机器人工程毕业设计☞开源学习(扫地)
  7. 【转】GridView的DataKeyNames的一些用法
  8. kafka Java客户端之 consumer API 多线程消费消息
  9. cmake 安装(高版本切换到低版本)
  10. 同城小程序应该怎么做?