利用开源项目 FFMpegSharp 实现音视频提取、转码、抓图等操作
2019-03-27 18:23 音乐让我说 阅读(2999) 评论(0) 编辑 收藏 举报开源项目地址:https://github.com/vladjerca/FFMpegSharp
首先需要在 web.config 或 app.config 中配置
<appSettings> <!-- FFMpegSharp 需要的参数 --> <add key="ffmpegRoot" value="D:\参考资料\C#\FFmpeg_Binary\ffmpeg-20190325-6e42021-win32and64-shared\" /> </appSettings>
代码:
using FFMpegSharp; using FFMpegSharp.FFMPEG; using System; using System.Drawing; using System.Drawing.Imaging; using System.IO; using System.Windows.Forms; namespace UIForms { /// <summary> /// https://github.com/vladjerca/FFMpegSharp /// </summary> public partial class ffmpegTest01 : Form { public ffmpegTest01() { InitializeComponent(); } string _videoFileFullPath = @"D:\Workspace\TestVideo.mp4"; FFMpeg fpeg = new FFMpeg(); private void btnStart_Click(object sender, EventArgs e) { string inputFile = _videoFileFullPath; string outputFileFullPath = string.Format(@"D:\Workspace\TestVideo-mp4-thumb-{0}.png", DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss")); FileInfo output = new FileInfo(outputFileFullPath); var video = VideoInfo.FromPath(_videoFileFullPath); Bitmap bitImg = fpeg.Snapshot( video, output, //size : new Size(400, 400), captureTime : TimeSpan.FromMinutes(1) ); if (bitImg != null) { bitImg.Save(outputFileFullPath, ImageFormat.Png); MessageBox.Show("save ok"); } MessageBox.Show("finished"); } private void btnStop_Click(object sender, EventArgs e) { } private void btnGetVideoInfo_Click(object sender, EventArgs e) { var video = new VideoInfo(_videoFileFullPath); string output = video.ToString(); MessageBox.Show(output); } } }
运行截图:
小结:这个工具抓图时没有想象中的那么快,据说 FFmpeg 参数的配置顺序也可能导致慢,详细的请看 https://www.cnblogs.com/wanghetao/p/3420788.html
谢谢浏览!
作者:音乐让我说(音乐让我说 - 博客园)
出处:http://music.cnblogs.com/
文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
2012-03-27 代码练习在 C# 中得到一个 object (包含匿名对象)的属性和属性值