本文转载自微信公众号《UP技控》,作者conan5566。转载本文请联系UP技控公众号。概述之前做过一个项目,涉及到上传视频,所以我们知道一般在界面显示的时候,都需要对视频进行预览效果,也就是显示视频的某一帧。经过查找,发现http://ffmpeg.org/可以实现这个功能。FFmpeg是一款免费软件,可以对多种格式的音视频进行录制、转换和流式处理,包括libavcodec——多项目音视频的编解码库,以及libavformat——音视频格式转换库。主要参数-i——设置输入文件名。-f-设置输出格式。-y-如果输出文件已经存在则覆盖它。-fs-当超过指定的文件大小时结束转换。-t-以秒为单位指定输出文件的持续时间。-ss——从指定时间开始转换,以秒为单位。-t从-ss时间开始转换(例如-ss00:00:01.00-t00:00:10.00从00:00:01.00开始到00:00:11.00)。-title-设置标题。-timestamp-设置时间戳。-vsync——增加或减少Frame来同步音视频。-c-指定输出文件的编码。-metadata-更改输出文件的元数据。-help——查看帮助信息。ffmpeg的官网地址是:https://www.ffmpeg.org/ffmpeg的Github项目地址是:https://github.com/FFmpeg/FFmpeg下面看看ffmpeg是如何实现视频截图操作的。实现方法1、下载ffmpeghttp://ffmpeg.org/,解压后在bin目录下找到ffmpeg.exe2、命令方法-i视频地址-ss第一帧-fimage2图片存放地址用cmd试试,先switch进入ffmpeg.exe所在目录,输入命令,回车3.c#代码实现using(System.Diagnostics.Processprocess=newSystem.Diagnostics.Process()){process.StartInfo.FileName=@"D:\ffmpeg.exe";process.StartInfo.Arguments=@"-iD:\111.mp4-ss10-fimage2D:\test\1.jpg";process.Start();}或如下usingSystem.Diagnostics;.....ProcessStartInfostartInfo=newProcessStartInfo("ffmpeg物理路径");startInfo.WindowStyle=ProcessWindowStyle.Hidden;startInfo.Arguments="-i视频文件路径-y-fimage2-ss3-t0.001-s480*360截图物理路径";//480*360为图片分辨率startInfo.UseShellExecute=false;try{Process.Start(startInfo);returntrue;}catch{}
