/// <summary>
/// 导出封面图
/// </summary>
/// <param name="ffmpegFileName">FFmpeg.exe路径</param>
/// <param name="videoFileName">视频文件路径</param>
/// <returns>封面图</returns>
public static BitmapSource GetVideoFace(string ffmpegFileName, string videoFileName)
{
string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(videoFileName);
string baseDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "video_tmp");
if (!Directory.Exists(baseDirectory)) Directory.CreateDirectory(baseDirectory);
string thumbFileName = Path.Combine(baseDirectory, fileNameWithoutExtension + ".jpg");
ProcessStartInfo processStartInfo = new ProcessStartInfo(ffmpegFileName);
processStartInfo.UseShellExecute = false;
processStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
processStartInfo.CreateNoWindow = true;
processStartInfo.ErrorDialog = false;
processStartInfo.RedirectStandardError = true;
processStartInfo.Arguments = string.Format("-i \"{0}\" -y -f image2 -frames 30 \"{1}\"", new object[]
{
videoFileName,
thumbFileName
});// 第30帧
try
{
Process.Start(processStartInfo).WaitForExit(500);
if (File.Exists(thumbFileName))
{
var source = ImageHelper.GetBitmapSouceFromPath(thumbFileName);
File.Delete(thumbFileName);
return source;
}
}
catch
{
}
return null;
}
c# FFMPEG 视频生成封面图
最新推荐文章于 2024-03-16 16:57:45 发布