完整工程代码下载:

https://download.csdn.net/download/luohualiushui1/10949777

之前用过opencv转换普通视频为带人脸检测效果的视频

https://blog.csdn.net/luohualiushui1/article/details/86661501

也用过ImageAI(基于tensorflow)转换普通视频为带目标检测效果的视频

https://blog.csdn.net/luohualiushui1/article/details/86735609

现在用AForge将普通视频转换为带运动检测效果的视频

原理就是把普通视频里面的发生变动的部分加上标注重新生成一个视频

这次选用windows环境下vs2015开发

第一步就是下载好AForge安装好,使用相关库,C:\Program Files (x86)\AForge.NET\Framework\Release这个目录下的

dll需要使用到,另外C:\Program Files (x86)\AForge.NET\Framework\Externals\ffmpeg\bin目录下的dll也需要使用到,因为

使用到的AForge.Video.FFMPEG.dll有所依赖。

第二步新建c#项目,但.net平台得选择.net2.0,因为AForge.Video.FFMPEG.dll依赖的avcodec-53.dll等等是基于.net2.0的选择4.0或其他最终运行会提示冲突

第三步现在开始编码

winform开发先布局好

选择视频文件

            if (openFileDialog.ShowDialog() == DialogResult.OK){... ...}

然后调用AForge的视频相关类做播放处理,并定义好输出转换视频的路径等参数,输出视频的分辨率和帧率参照原视频

FileVideoSource fileSource = new FileVideoSource(openFileDialog.FileName);VideoFileReader reader = new VideoFileReader();reader.Open(openFileDialog.FileName);writer.Open("E:\\video\\m0.avi", reader.Width, reader.Height, reader.FrameRate, VideoCodec.MPEG4);this.videoSourcePlayer1.VideoSource = fileSource;
this.videoSourcePlayer1.Start();this.videoSourcePlayer2.VideoSource = fileSource;
this.videoSourcePlayer2.Start();

AForge处理运动检测的初始化定义

MotionDetector detector = new MotionDetector(new TwoFramesDifferenceDetector(),new MotionAreaHighlighting());private int motionDetectionType = 1;
private int motionProcessingType = 1;
private const int statLength = 15;
private int statIndex = 0;
private int statReady = 0;
private int[] statCount = new int[statLength];
private int flash = 0;
private float motionAlarmLevel = 0.015f;private List<float> motionHistory = new List<float>();
private int detectedObjectsCount = -1;

在播放每一帧的事件方法里面做运动检测的处理,并输出到转换视频

 private void videoSourcePlayer1_NewFrame(object sender, ref Bitmap image){lock (this){if (detector != null){float motionLevel = detector.ProcessFrame(image);if (motionLevel > motionAlarmLevel){flash = 10;}if (detector.MotionProcessingAlgorithm is BlobCountingObjectsProcessing){BlobCountingObjectsProcessing countingDetector = (BlobCountingObjectsProcessing)detector.MotionProcessingAlgorithm;detectedObjectsCount = countingDetector.ObjectsCount;}else{detectedObjectsCount = -1;}motionHistory.Add(motionLevel);if (motionHistory.Count > 300){motionHistory.RemoveAt(0);}writer.WriteVideoFrame(image);}}}

ok到这一步基本写好测试看看

保存的转换的视频文件播放如下:

从视频效果看基本没有遗漏,效果还算比较好,转换速度也比较快。

用AForge将普通视频转换为带运动检测效果的视频相关推荐

  1. 用ImageAI将普通视频转换为带目标检测的视频

    之前我发表过一篇博客,是使用opencv将普通视频转为带人脸检测效果的视频 https://blog.csdn.net/luohualiushui1/article/details/86661501 ...

  2. java 将avi视频转换为mp4格式并获取视频文件信息

    引入jar包 <!-- https://mvnrepository.com/artifact/ws.schild/jave-all-deps --><dependency>&l ...

  3. 阿诺德给物体加描边_视频人物描边效果 怎么给视频人物进行描边?视频内物体描边效果制作|视频描边特效...

    今日霜降,霜降是秋季的最后一个节气,是反映气温变化的节气,是秋季到冬季的过渡,意味着即将进入冬天.虽然说可能在广东,这意味着即将进入秋天,哈哈,这天气还不能够称之为冬天呢~毕竟走在大家大街上短袖短裤还 ...

  4. ffmpeg将视频转换为带透明通道的gif

    使用 ffmpeg 也能生成带透明的 gif 文件.比如将 AE 导出的 rgba 通道的 avi 转换为 gif. ffmpeg -i infile.avi -lavfi split[v],pale ...

  5. 如何在分割视频的基础上,分离视频中的音频

    一般我们在使用媒体梦工厂采集或者剪辑视频时,怎么在分割视频的基础上,分离视频中的音频呢?下面一起来试试. 预览视频效果 先预览一下用媒体梦工厂在批量分割视频的基础上,分割视频中的音频效果 一组视频一个 ...

  6. 2019最新方法!完美将腾讯视频转换为mp4格式!解决黑屏等问题!

    今天,我们为大家分享一下怎样将腾讯视频qlv格式转换为普通的mp4格式? 我重新梳理了一下,多次测试,找到了转换过程中遇到的各类问题的解决方法!Perfect~全网最新最完美的转换方法!只此一家! 废 ...

  7. python 短视频_短视频篇 | Python 带你进行短视频二次创作

    image 阅读文本大概需要 10 分钟. 1.目 标 场 景 无论是抖音还是快手等视频平台,一旦一个视频火了后,很多 UP 主都会争先抢后去模仿拍摄或剪辑,然后上传到平台,最后都能带来不错的流量. ...

  8. 海思多媒体(MPP)开发(9)——视频遮挡和运动检测

    前言: 海思多媒体处理平台(MPP)分为:视频输入(VI),视频处理(VPSS),视频编码(VENC),视频解码(VDEC),视频输出(VO).视频侦测分析(VDA),音频输入(AI),音频输出(AO ...

  9. Unity3d 利用 AvproVideo 播放带透明通道mov视频在部分电脑无法播放的解决方案

    AvproVideo播放带通道的mov视频,虽说在制作人的电脑上一般可以完美播放 但是事实是,大部分非制作人的普通主机是无法播放的,装各种解码器也不好使 解决方案: 需要利用QuickTime 将 A ...

最新文章

  1. PLSQL的 dynamic sql小例子
  2. NET问答: C# 中是否有 format json 的类库?
  3. bzoj3238 [Ahoi2013]差异
  4. 整理的一些常用的CSS HACK
  5. 实验2-2-3 计算存款利息 (10 分)
  6. C# list删除 另外list里面的元素_Java集合大全Map,Set,List
  7. OpenCV人脸识别
  8. JAVA王思聪吃热狗程序_王思聪吃热狗小游戏, 程序员开发路上
  9. java动态表头_easyPOI动态表头
  10. 【系统收藏——中天证券创鑫软件 官方版 [同时支持三板、港股行情、沪深300指数。]】
  11. Oracle使用SQL*Plus生成html文件
  12. ISA, x86,x86_64, AMD64, 指令集等名词解析
  13. C 语言项目中.h文件和.c文件的关系
  14. 果蔬超市管理系统的设计与实现
  15. 条码打印机的市场现状
  16. ssl2340 格子游戏
  17. bzoj 3028: 食物(母函数+广义二项式定理)
  18. 高中数学知识点总结汇总归纳:集合及其运算
  19. .NET Word 文件格式转换
  20. VC6 安装错误 javasign.dll 不能在系统中注册

热门文章

  1. 图像分割中OTSU算法
  2. ios设备使用socks代理
  3. 网页设计(五)——marquee标签
  4. 每日总结-2019年12月10日(如切如磋,如琢如磨)
  5. oracle中插曲时间,Oracle 11g升级过程中的小插曲(Ora-24248: Xml Db Extensible Security Not Installed)...
  6. unity3D 显示游戏运行时间
  7. 阿里云视频点播上传,官网后台始终显示视频上传中的问题
  8. oracle 创建范围分区表,Oracle创建表分区----范围分区
  9. echarts柱状图的X轴Y轴加单位的写法
  10. 考证大约报名考试时间:软考/教师资格证/会计/二建