Emgu.CV 播放视频-本地文件/RTSP流
using Emgu.CV;
using System;
using System.Drawing;
using System.Threading;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        Emgu.CV.Capture cap;
        public Form1()
        {
            InitializeComponent();
            //cap = new Emgu.CV.Capture("F:\\test.avi");
            cap = new Emgu.CV.Capture("rtsp://192.168.1.6.............");
            cap.ImageGrabbed += capture_ImageGrabbed;
            cap.Start();
        }
        private delegate void SetPicVideo(Bitmap val);//跨线程修改图片框
        private object lockObj = new object();
        private Thread SetPicVideoThread;
        Bitmap bmpVideo = null;
        private void capture_ImageGrabbed(object sender, EventArgs e)
        {
            try
            {
                Mat frame = new Mat();
                //lock (lockObj)
                {
                    if (cap != null)
                    {
                        if (!cap.Retrieve(frame))
                        {
                            frame.Dispose();
                            return;
                        }
                        if (frame.IsEmpty)
                            return;
                        bmpVideo =  frame.Bitmap;
                        SetPicVideoThread = new Thread(new ThreadStart(setPicVideo));
                        SetPicVideoThread.IsBackground = true;
                        SetPicVideoThread.Start();
                    }
                }
                //frame.Dispose();
            }
            catch (Exception ex)
            {
            }
        }
        void SetPic(Bitmap val)
        {
            if (val != null)
            {
                this.pictureBox1.Image = val;
            }
        }
        private void setPicVideo()
        {
            if (pictureBox1.InvokeRequired)
            {
                SetPicVideo d = new SetPicVideo(SetPic);
                object[] arg = new object[] { bmpVideo };//要传入的参数值
                this.Invoke(d, arg);
            }
            else
            {
                SetPic(bmpVideo);
            }
        }
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            cap.Stop();
        }
    }
}
Emgu.CV 播放视频-本地文件/RTSP流的更多相关文章
- Emgu.CV 播放视频
		using Emgu.CV; using System; using System.Drawing; using System.Threading; using System.Windows.Form ... 
- Emgu CV播放视频
		public partial class Form1 : Form { Capture _capture; public Form1() { Initializ ... 
- Open CV 播放视频(2)
		演示:读取一个视频,然后播放,ESC退出. #include "stdafx.h" #include <opencv2/core/core.hpp> # ... 
- Windows平台Unity3d播放多路RTMP或RTSP流
		好多开发者在做AR.VR或者教育类产品时,苦于如何在windows平台构建一个稳定且低延迟的RTSP或者RTMP播放器,如果基于Unity3d完全重新开发一个播放器,代价大.而且周期长,不适合快速出产 ... 
- ffmpeg处理rtmp/文件/rtsp的推流和拉流
		ffmpeg处理rtmp/文件/rtsp的推流和拉流 本demo演示了利用ffmpeg从服务器拉流或本地文件读取流,更改流url或文件类型名称发送回服务器或存到本地的作用. 由于本程序只写了3个小 ... 
- 用vlc  SDK创建一个播放视频文件和RTSP流视频的Demo
		#include <stdio.h> #include <tchar.h> #include <time.h> #include <windows.h> ... 
- javaCV开发详解之4:转流器实现(也可作为本地收流器、推流器,新增添加图片及文字水印,视频图像帧保存),实现rtsp/rtmp/本地文件转发到rtmp流媒体服务器(基于javaCV-FFMPEG)
		javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG.j ... 
- web网页中使用vlc插件播放相机rtsp流视频
		可参考: 使用vlc播放器做rtsp服务器 使用vlc播放器播放rtsp视频 使用vlc进行二次开发做自己的播放器 vlc功能还是很强大的,有很多的现成的二次开发接口,不需配置太多即可轻松做客户端播放 ... 
- [工具]利用EasyRTSPClient工具检查摄像机RTSP流不能播放原因以及排查音视频数据无法播放问题
		出现问题 我们在做流媒体开发的过程中,进程会出现摄像机RTSP流莫名其妙无法播放的问题,而我们常用的vlc经常是直接弹出一个无法播放的提示框就完事了,没有说明出错的原因,或者在vlc的消息里面能看到日 ... 
随机推荐
- web.xml中三种通配符及匹配规则
			一.url-pattern的三种写法 1.精确匹配.以”/”开头,加上servlet名称: /ad ; 2.路径匹配.以”/”开头,加上通配符”*” : /* ; 3.扩展名匹配.以通 ... 
- atlassian、jira账户无法注册来这里
			进入https://www.atlassian.com/try 注册成功 登陆 再次到邮箱点击链接 登陆成功(已经处于登陆状态:此时你已经拥有一个atlassian账户了) 
- 浅析Android设备中grep命令处理流程
			2017-04-18 概述 在TV开发板中,可以在串口中直接使用grep命令.这是因为在/system/bin/下有一个'grep'链接.这个链接指向'/system/bin/toolbo ... 
- Java json转model
			前面有一篇关于 json的转换类的工具:http://blog.csdn.net/hanjun0612/article/details/77891569 但是有一个情况. 由于java需要属性小写开 ... 
- 以计算斐波那契数列为例说说动态规划算法(Dynamic Programming Algorithm Overlapping subproblems Optimal substructure Memoization Tabulation)
			动态规划(Dynamic Programming)是求解决策过程(decision process)最优化的数学方法.它的名字和动态没有关系,是Richard Bellman为了唬人而取的. 动态规划 ... 
- Quartus prime16.0 组合逻辑always块中敏感向量表不全
			前言 组合逻辑always块中向量敏感表不全导致的警告. 流程 1.对于如下代码块: always @(nstate /*or master_din or master_dout_reg*/) beg ... 
- 洛谷AT2046 Namori(思维,基环树,树形DP)
			洛谷题目传送门 神仙思维题还是要写点东西才好. 树 每次操作把相邻且同色的点反色,直接这样思考会发现状态有很强的后效性,没办法考虑转移. 因为树是二分图,所以我们转化模型:在树的奇数层的所有点上都有一 ... 
- 洛谷CF264D Colorful Stones(子序列匹配,思维)
			洛谷题目传送门 神仙思维题. 对于两个字符串的匹配问题,似乎之前蒟蒻写的HAOI2010最长公共子序列题解中提到的建网格图模型是一种套路? 给一个稍微强一点的样例(把字母换成了ABC) AABCB B ... 
- Hdoj 2108.Shape of HDU 题解
			Problem Description 话说上回讲到海东集团推选老总的事情,最终的结果是XHD以微弱优势当选,从此以后,"徐队"的称呼逐渐被"徐总"所取代,海东 ... 
- 定位现网环境中最耗费CPU的Java线程
			参考:JVM性能调优监控工具jps.jstack.jmap.jhat.jstat.hprof使用详解 下面通过一个实例找出某个Java进程中最耗费CPU的Java线程并定位堆栈信息,用到的命令有ps. ... 
