1. 使用Emgu.CV将tif生存视频,非常简单
打开:
- VideoWriter writer = new VideoWriter(name, VideoWriter.Fourcc('M', 'J', 'P', 'G'), displayRate, new Size(width, height), false);
复制代码 写入
关闭
完备代码如下:
- using Emgu.CV;
- using System;
- using System.Drawing;
- public class CVideoFiles
- {
- private VideoWriter writer;
- private bool isOpen = false;
- // 打开视频文件
- public void OpenVideo(string name, int displayRate, int width, int height)
- {
- // 如果视频已经打开,抛出异常
- if (isOpen)
- {
- throw new InvalidOperationException("视频文件已经打开,请关闭当前文件后再打开新的文件。");
- }
- // 打开视频文件并设置编码器,帧率,分辨率
- writer = new VideoWriter(name, VideoWriter.Fourcc('M', 'J', 'P', 'G'), displayRate, new Size(width, height), false);
- // 如果视频文件没有成功打开,抛出异常
- if (!writer.IsOpened)
- {
- throw new InvalidOperationException("打开视频文件失败,请检查文件路径或编码器设置。");
- }
- isOpen = true;
- }
- // 写入一帧视频
- public void WriteVideo(Mat mat)
- {
- if (!isOpen)
- {
- throw new InvalidOperationException("视频尚未打开,无法写入视频帧。");
- }
- // 检查视频帧数据是否有效
- if (mat == null || mat.IsEmpty)
- {
- throw new ArgumentException("无效的帧数据,无法写入视频。");
- }
- // 写入视频帧
- writer.Write(mat);
- }
- // 关闭视频文件
- public void CloseVideo()
- {
- if (isOpen)
- {
- // 释放 VideoWriter 对象
- writer.Dispose();
- isOpen = false;
- }
- else
- {
- throw new InvalidOperationException("视频文件未打开,无法关闭。");
- }
- }
- }
复制代码 2. 生存的avi视频,用AxWindowsMediaPlayer打开
给AxWindowsMediaPlayer控制的URL 赋值,就会自动播放,如:
- axWindowsMediaPlayer1.URL = "c:\\1.avi";
复制代码 如果AxWindowsMediaPlayer打不开,提示报错,分析MediaPlayer缺少解码器, 从 Download K-Lite Codec Pack (codecguide.com) 下载K-Lite_Codec_Pack_1865_Standard .exe,安装就可以了。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |