基于ffmpeg.exe 实现 图片帧转换mp4格式视频
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Diagnostics;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace demo{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void PictureFile_Click(object sender, EventArgs e) { FolderBrowserDialog dlg = new FolderBrowserDialog(); if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) { this.txtPath.Text = dlg.SelectedPath; } } private void MP4File_Click(object sender, EventArgs e) { FolderBrowserDialog dlg = new FolderBrowserDialog(); if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) { this.MP4Path.Text = dlg.SelectedPath; } } private void txtPath_Click(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { ImageGetVideo(); } #region 图片转视频 public void ImageGetVideo() { string ffmpeg = string.Format("{0}ffmpeg.exe", AppDomain.CurrentDomain.BaseDirectory); try { ProcessStartInfo startInfo = new ProcessStartInfo(ffmpeg); startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; // -i foo.avi -r 1 -s WxH -f image2 foo-%03d.jpeg //这是把视频转图片的 //及其耗CUP的指定帧截取图片帧 string.Format(" -i \"{0}\" -y -f image2 -ss {1} -s \"{2}\" \"{3}\"", vedioPath, catchTime, saveImgSize, saveImgPath) startInfo.Arguments = string.Format(" -f image2 -i " txtPath.Text @"\%d.jpg -vcodec libx264 -r 10 " MP4Path.Text @"\test.mp4"); System.Diagnostics.Process.Start(startInfo).Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); return; } } #endregion private void MP4Path_Click(object sender, EventArgs e) { } }}
评论