.Net下使用 Geb.Video.FFMPEG 操作视频文件
2014-03-14 12:56
447 查看
作者:xiaotie
转自:/article/4621776.html
.Net 下默认没有读写视频的类,要进行视频操作很麻烦,之前用过网上的代码,用的很不爽。AForge.Net 对
ffmpeg 进行了封装,不过它引用的dll有点多,且没提供seek方法,无法跳到指定帧,也有点不爽,俺在 AForge.Net 对FFMPEG 封装的基础上,进行了修改,得到 Geb.Video.FFMPEG 库,现分享出来。
主要功能如下:
l 读取视频文件,获取视频参数;
l 读取帧;
l 查找帧;
l 写入视频文件。
有了这些功能,可以写一个简单的视频播放器了,当然,视频转码之类的也不在话下。在此基础上,视频分析,视频合成,视频编辑等等,都可以进行。
License: LGPL v3 license (AFoege.Net 的 license,毕竟是从它修改的). 源码:https://github.com/xiaotie/GebVideoFFMPEG
演示:
代码下载:Geb.Video.FFMPEG.Demo
读取视频文件,获取视频参数
读取下一帧:
查找帧:
写入视频文件
不用时别忘记 Close()。
转自:/article/4621776.html
.Net 下默认没有读写视频的类,要进行视频操作很麻烦,之前用过网上的代码,用的很不爽。AForge.Net 对
ffmpeg 进行了封装,不过它引用的dll有点多,且没提供seek方法,无法跳到指定帧,也有点不爽,俺在 AForge.Net 对FFMPEG 封装的基础上,进行了修改,得到 Geb.Video.FFMPEG 库,现分享出来。
主要功能如下:
l 读取视频文件,获取视频参数;
l 读取帧;
l 查找帧;
l 写入视频文件。
有了这些功能,可以写一个简单的视频播放器了,当然,视频转码之类的也不在话下。在此基础上,视频分析,视频合成,视频编辑等等,都可以进行。
License: LGPL v3 license (AFoege.Net 的 license,毕竟是从它修改的). 源码:https://github.com/xiaotie/GebVideoFFMPEG
演示:
代码下载:Geb.Video.FFMPEG.Demo
读取视频文件,获取视频参数
_reader = new VideoFileReader(); _reader.Open(path); String info = String.Format("Video info:\r\n\r\n Width-{0}\r\n Height-{1}\r\n FrameCount-{2}\r\n FrameRate-{3}\r\n Codec-{4}",_reader.Width,_reader.Height,_reader.FrameCount, _reader.FrameRate, _reader.CodecName); tbInfo.Text = info;
读取下一帧:
ImageRgb24 img = _reader.ReadVideoFrame();
查找帧:
// 指定帧的编号 Int64 idx = _reader.FrameCount * 2 / 3; // 跳到指定帧附近的关键帧处,true 为跳到关键帧,false 为跳到任意帧 _reader.Seek(idx, true);
写入视频文件
VideoFileWriter _writer = new VideoFileWriter(); _writer.Open("output.avi", _reader.Width, _reader.Height, _reader.FrameRate, VideoCodec.MPEG4); // demo 代码,之处理 100 帧 for (int i = 0; i < 100; i++) { ImageRgb24 img = _reader.ReadVideoFrame(); if (img == null) break; _writer.WriteVideoFrame(img); img.Dispose(); } _writer.Close();
不用时别忘记 Close()。
相关文章推荐
- .Net下使用 Geb.Video.FFMPEG 操作视频文件
- .Net下使用 Geb.Video.FFMPEG 操作视频文件
- 使用FFMPEG从MP4封装中提取视频流到H264文件
- Ffmpeg快速命令使用 Ffmpeg选项详解 Ffmepg格式详解 常见视频文件格式详解
- ashx文件中使用Session & Net对时间的操作
- c#.net程序中使用ffmpeg.exe来处理视频并生成上传视频的截
- 使用ffmpeg合并视频文件的三种方法
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-复杂业务的实现(商品入库)-附案例操作视频
- Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作
- 安装和使用ffmpeg转换视频为flv文件
- 使用ffmpeg循环推流(循环读取视频文件)方法以及局限
- 使用FFMPEG从MP4封装中提取视频流到.264文件
- Ffmpeg快速命令使用 Ffmpeg选项详解 Ffmepg格式详解 常见视频文件格式详解
- 使用VideoView全屏播放视频文件
- 使用ffmpeg合并视频文件的三种方法
- 使用 FFmpeg 开发播放器基础--使用 ffmpeg 解码视频文件
- 使用ffmpeg命令对视频文件进行截图
- ASP.NET 调用Excel 操作Excel文件 不使用oledb
- 使用ffmpeg处理 视频文件中帧间时间戳异常、关键帧间隔异常
- 实战FFmpeg--iOS平台使用FFmpeg将视频文件转换为YUV文件