ffmpeg 的视频格式转换 c# win10

发布于:2025-06-03 ⋅ 阅读:(18) ⋅ 点赞:(0)

1,下载ffmpeg ,并设置环境变量。

ffmpeghttps://www.gyan.dev/ffmpeg/builds/

2.新建.net 9.0  winform

using System;
using System.Diagnostics;
using System.Text;
using System.Windows.Forms;

namespace WinFormsApp11
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        void StartPreview()
        {
            Process previewProcess = new Process();
            previewProcess.StartInfo.Arguments = " -i " + inputName + " -c:v " + bianma+ " " + outputName;
			// ffmpeg -i demo.avi -c:v libx264 output.mp4 
            previewProcess.StartInfo.FileName = "ffmpeg.exe";
            previewProcess.StartInfo.UseShellExecute = false;
            previewProcess.StartInfo.RedirectStandardInput = true;
            previewProcess.StartInfo.RedirectStandardOutput = true;
            previewProcess.StartInfo.RedirectStandardError = true;
            previewProcess.StartInfo.CreateNoWindow = true;
            previewProcess.Start();
            string output = previewProcess.StandardError.ReadToEnd();//很重要,不然不会自己退出
            previewProcess.WaitForExit();
           
        }
        string inputName = "";
        string outputName = "";
        string bianma = "libx264";
        private void button1_Click(object sender, EventArgs e)
        {
            button1.Visible = false;
            inputName = textBox1.Text;
            textBox2.Text = Environment.CurrentDirectory + "\\" + System.DateTime.Now.ToString("yyyyMMdd_HHmmss") +"_"+bianma+ "_output.mkv";
            outputName = textBox2.Text;
            Task.Run(() =>
            {
                StartPreview();
                MessageBox.Show("转换完成");
                button1.BeginInvoke(new MethodInvoker(delegate ()
                {
                    button1.Visible = true;
                }));
            });
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            comboBox1.SelectedIndex = 0;
            inputName = System.DateTime.Now.ToString("yyyyMMdd_HHmmss") + "_input.avi";
            outputName = System.DateTime.Now.ToString("yyyyMMdd_HHmmss") + "_output.mkv";
            textBox1.Text = inputName;
            textBox2.Text = outputName;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            // 设置对话框标题
            openFileDialog.Title = "选择一个视频文件";

            openFileDialog.Filter = "视频文件 (*.avi,*.mp4,*.mkv)|*.avi;*.mp4;*.mkv|所有文件 (*.*)|*.*";

            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {

                // 获取用户选择的文件路径
                inputName = openFileDialog.FileName;
                textBox1.Text = openFileDialog.FileName;

            }
        }
        
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (comboBox1.Text == "libx264") { bianma = "libx264"; }
            if (comboBox1.Text == "libx265") { bianma = "libx265"; }

        }
    }

}

   string output = previewProcess.StandardError.ReadToEnd();//很重要,不然不会自己退出

整个工程下载:

【免费】ffmpeg的视频格式转换c#win10资源-CSDN文库https://download.csdn.net/download/vokxchh/90947301


网站公告

今日签到

点亮在社区的每一天
去签到