ToB企服应用市场:ToB评测及商务社交产业平台

标题: 使用Emgu.CV将tif生存视频,并用AxWindowsMediaPlayer打开 [打印本页]

作者: 石小疯    时间: 昨天 21:48
标题: 使用Emgu.CV将tif生存视频,并用AxWindowsMediaPlayer打开
1. 使用Emgu.CV将tif生存视频,非常简单
打开:
  1. VideoWriter   writer = new VideoWriter(name, VideoWriter.Fourcc('M', 'J', 'P', 'G'), displayRate, new Size(width, height), false);
复制代码
写入
  1. writer.Write(mat);
复制代码
关闭
  1. writer.Dispose();
复制代码
完备代码如下:
  1. using Emgu.CV;
  2. using System;
  3. using System.Drawing;
  4.     public class CVideoFiles
  5.     {
  6.         private VideoWriter writer;
  7.         private bool isOpen = false;
  8.         // 打开视频文件
  9.         public void OpenVideo(string name, int displayRate, int width, int height)
  10.         {
  11.             // 如果视频已经打开,抛出异常
  12.             if (isOpen)
  13.             {
  14.                 throw new InvalidOperationException("视频文件已经打开,请关闭当前文件后再打开新的文件。");
  15.             }
  16.             // 打开视频文件并设置编码器,帧率,分辨率
  17.             writer = new VideoWriter(name, VideoWriter.Fourcc('M', 'J', 'P', 'G'), displayRate, new Size(width, height), false);
  18.             // 如果视频文件没有成功打开,抛出异常
  19.             if (!writer.IsOpened)
  20.             {
  21.                 throw new InvalidOperationException("打开视频文件失败,请检查文件路径或编码器设置。");
  22.             }
  23.             isOpen = true;
  24.         }
  25.         // 写入一帧视频
  26.         public void WriteVideo(Mat mat)
  27.         {
  28.             if (!isOpen)
  29.             {
  30.                 throw new InvalidOperationException("视频尚未打开,无法写入视频帧。");
  31.             }
  32.             // 检查视频帧数据是否有效
  33.             if (mat == null || mat.IsEmpty)
  34.             {
  35.                 throw new ArgumentException("无效的帧数据,无法写入视频。");
  36.             }
  37.             // 写入视频帧
  38.             writer.Write(mat);
  39.         }
  40.         // 关闭视频文件
  41.         public void CloseVideo()
  42.         {
  43.             if (isOpen)
  44.             {
  45.                 // 释放 VideoWriter 对象
  46.                 writer.Dispose();
  47.                 isOpen = false;
  48.             }
  49.             else
  50.             {
  51.                 throw new InvalidOperationException("视频文件未打开,无法关闭。");
  52.             }
  53.         }
  54.     }
复制代码
2. 生存的avi视频,用AxWindowsMediaPlayer打开
   给AxWindowsMediaPlayer控制的URL 赋值,就会自动播放,如:
  1.    axWindowsMediaPlayer1.URL = "c:\\1.avi";
复制代码
如果AxWindowsMediaPlayer打不开,提示报错,分析MediaPlayer缺少解码器,  从   Download K-Lite Codec Pack (codecguide.com) 下载K-Lite_Codec_Pack_1865_Standard .exe,安装就可以了。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4