首页 新闻 会员 周边 捐助

Emgu 3.1 播放RTSP视频,不进入ImageGrabbed事件

0
悬赏园豆:5 [已关闭问题] 关闭于 2020-12-22 09:11
Capture cap;
private void OpenVideo(){
   cap = new Capture("rtmp://202.69.69.180:443/webcast/bshdlive-pc");
   cap.SetCaptureProperty(CvEnum.CapProp.Fps,0);
   cap.ImageGrabbed += Cap_ImageGrabbed;
   cap.Start();
}

private void Cap_ImageGrabbed(Sender sender,EventArgs e){
    Mat mat = new Mat();
    cap.Retrieve (mat,0);
    VideoPictureBox.Image = mat.Bitmap;
}

但是,它不进入这个ImageGrabbed 是为什么?我在另一个项目中也是这么写的,但是可以使用,现在我不清楚到底为啥不行。emgu需要的环境我都做了配置了

echo_lovely的主页 echo_lovely | 小虾三级 | 园豆:1534
提问于:2020-12-22 09:08
< >
分享
所有回答(2)
0

我的vs神经病了吧,我写完了博问,再起就好了

echo_lovely | 园豆:1534 (小虾三级) | 2020-12-22 09:11
0

您好,请问您知道用Emgu.CV3.1之后窗口没有视频出来是什么原因吗

Iirs_C# | 园豆:202 (菜鸟二级) | 2020-12-25 15:59

我用的就是3.1啊,代码就是上面贴的那一点点

支持(0) 反对(0) echo_lovely | 园豆:1534 (小虾三级) | 2020-12-25 16:00

@小草上飞飞: 我也是就这一点点代码视频就是接不进来,我不晓得是啥情况

支持(0) 反对(0) Iirs_C# | 园豆:202 (菜鸟二级) | 2020-12-25 16:02

你先使用 其他播放器确定你的rtsp链接是ok的

支持(0) 反对(0) echo_lovely | 园豆:1534 (小虾三级) | 2020-12-25 16:02

@Iirs_C#: 看看你的链接能播放不能

支持(0) 反对(0) echo_lovely | 园豆:1534 (小虾三级) | 2020-12-25 16:02

@小草上飞飞: 可以的,我用vlc可以放出来视频,但是用C#就是接不进来,这几行代码换了块一个小时了就是不出视频

支持(0) 反对(0) Iirs_C# | 园豆:202 (菜鸟二级) | 2020-12-25 16:04

@Iirs_C#: 你看下进这个 代理了吗

private void Cap_ImageGrabbed(Sender sender,EventArgs e){
    Mat mat = new Mat();
    cap.Retrieve (mat,0);
    VideoPictureBox.Image = mat.Bitmap;
}

这个方法里打断点,看有断点进来了没有

支持(0) 反对(0) echo_lovely | 园豆:1534 (小虾三级) | 2020-12-25 16:05

@Iirs_C#: 没有的话,看

private void OpenVideo(){
   cap = new Capture("rtmp://202.69.69.180:443/webcast/bshdlive-pc");
   cap.SetCaptureProperty(CvEnum.CapProp.Fps,0);
   cap.ImageGrabbed += Cap_ImageGrabbed;
   cap.Start();
}

这个方法执行完了没有。
没有的话,重启vs,重启电脑,重新生成

支持(0) 反对(0) echo_lovely | 园豆:1534 (小虾三级) | 2020-12-25 16:06

@小草上飞飞: 我这里进不去这个事件,

支持(0) 反对(0) Iirs_C# | 园豆:202 (菜鸟二级) | 2020-12-25 16:07

@Iirs_C#: 我当时就是这样,没进入那个事件代理

支持(0) 反对(0) echo_lovely | 园豆:1534 (小虾三级) | 2020-12-25 16:07

@小草上飞飞: 要重启电脑吗?我试试是

支持(0) 反对(0) Iirs_C# | 园豆:202 (菜鸟二级) | 2020-12-25 16:07

@Iirs_C#:

private void Cap_ImageGrabbed(Sender sender,EventArgs e){
    Mat mat = new Mat();
    cap.Retrieve (mat,0);
    VideoPictureBox.Image = mat.Bitmap;
}

换成这个试一试。

VideoPictureBox.Image = mat.ToBitmap();

我发这个博问就是它不进那个代理,但是我回头又起了一下,就没有啥问题了

支持(0) 反对(0) echo_lovely | 园豆:1534 (小虾三级) | 2020-12-25 16:09

@Iirs_C#: 我当时重启了vs,重启了电脑,重新生成了项目以及整个解决方案,emmm

支持(0) 反对(0) echo_lovely | 园豆:1534 (小虾三级) | 2020-12-25 16:10

@小草上飞飞: 我重启了vs 还是不行 ,我感觉是这里事件invok出来的是空的 currentDevice.ImageGrabbed += CurrentDevice_ImageGrabbed;为什么你们都可以我不行呢

支持(0) 反对(0) Iirs_C# | 园豆:202 (菜鸟二级) | 2020-12-25 16:11

@Iirs_C#: 我发现Emgu不是很稳定,容易崩溃,

VideoPictureBox.Image = mat.Bitmap;

会有内存非法访问

VideoPictureBox.Image = mat.ToBitmap();

会提示Capture 被占用还是咋的,你可以测试下在你的机子上有没有问题,我机子没问题,但是在我同事机器上各种问题

支持(0) 反对(0) echo_lovely | 园豆:1534 (小虾三级) | 2020-12-25 16:12

我下班了,我把我测试可用的项目打包给你,你看看在你那里能行不

支持(0) 反对(0) echo_lovely | 园豆:1534 (小虾三级) | 2020-12-25 16:16

@Iirs_C#:

链接:https://pan.baidu.com/s/1VuWnVBhXjj981sgFHpd4ng
提取码:1111
复制这段内容后打开百度网盘手机App,操作更方便哦

只有一天事件,38M

支持(0) 反对(0) echo_lovely | 园豆:1534 (小虾三级) | 2020-12-25 16:17

@小草上飞飞: 好的 谢谢呀

支持(0) 反对(0) Iirs_C# | 园豆:202 (菜鸟二级) | 2020-12-25 16:18

@小草上飞飞: 我感觉你在事件最后里面加上Dispose()方法把帧释放掉比较好,不然可能会太占内存

支持(0) 反对(0) Iirs_C# | 园豆:202 (菜鸟二级) | 2020-12-25 16:23

@Iirs_C#: 你加上试试就知道了

支持(0) 反对(0) echo_lovely | 园豆:1534 (小虾三级) | 2020-12-25 16:24

@Iirs_C#: 要是可以的话,给我一份代码,看看你怎么处理高占用的问题,好像中间多一步转换会降低占用

private void Cap_ImageGrabbed(Sender sender,EventArgs e){
    Mat mat = new Mat();
    cap.Retrieve (mat,0);
/// 在这里将mat转换为Image
//<bgr,byte>img...
    VideoPictureBox.Image = mat.Bitmap;//这里用image.tobitmap或者。bitmap
}
支持(0) 反对(0) echo_lovely | 园豆:1534 (小虾三级) | 2020-12-25 16:30

@小草上飞飞: 我是这样写的,就加了一句释放的。
private void CurrentDevice_ImageGrabbed(object sender, EventArgs e)
{
try
{
Mat frame = new Mat();
currentDevice.Retrieve(frame, 0);
imageBox2.Image = frame;
frame.Dispose();
}
catch (Exception ex)
{
}
}
你的项目我也接不到代码,好奇怪,emgu.cv需要什么环境配置吗

支持(0) 反对(0) Iirs_C# | 园豆:202 (菜鸟二级) | 2020-12-25 16:36

@小草上飞飞: 你的项目换成我的rtsp也接不到视频进来,好奇怪

支持(0) 反对(0) Iirs_C# | 园豆:202 (菜鸟二级) | 2020-12-25 16:37

@Iirs_C#: 这个我还没有遇到过。但是你说vlc是可用的,emmm

支持(0) 反对(0) echo_lovely | 园豆:1534 (小虾三级) | 2020-12-25 16:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册