当前位置: 首页 > web >正文

ffmpeg 的视频格式转换 c# win10

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

http://www.xdnf.cn/news/10595.html

相关文章:

  • 【C语言】C语言经典小游戏:贪吃蛇(下)
  • DAY41 CNN
  • 15.MQTT协议和云平台(ESP8266)
  • Codeforces Round 1028 (Div. 2)(A-D)
  • SystemVerilog—new函数的使用和误区
  • 聚类分析 | MATLAB实现基于SOM自组织特征映射聚类可视化
  • Spring AI 之检索增强生成(Retrieval Augmented Generation)
  • 一步一步配置 Ubuntu Server 的 NodeJS 服务器详细实录——3. 服务器软件更新,以及常用软件安装
  • 面向连接的运输:TCP
  • 百度蜘蛛池的作用是什么?技术@baidutopseo
  • 【算法设计与分析】实验——二维0-1背包问题(算法分析题:算法思路),独立任务最优调度问题(算法实现题:实验过程,描述,小结)
  • 黑马Java面试笔记之 微服务篇(SpringCloud)
  • centos8修改IP地址和Hostname
  • 双指针题解——反转字符串中的单词【LeetCode】
  • 从 LeetCode 到日志匹配:一行 Swift 实现规则识别
  • 前端自动化测试利器:Playwright 全面介绍
  • NVMe IP现状扫盲
  • STM32 智能小车项目 L298N 电机驱动模块
  • Mininconda3安装使用
  • Java设计模式之观察者模式详解
  • 【Godot引擎】如何使用内置的全局搜索功能提升开发效率
  • FPGA仿真中阻塞赋值(=)和非阻塞赋值(<=)区别
  • 使用pandas实现合并具有共同列的两个EXCEL表
  • React 18新特性介绍
  • leetcode hot100刷题日记——35.子集
  • DrissionPage 数据提取技巧全解析:从入门到实战
  • vulnyx loweb writeup
  • 12.2Swing中JButton简单分析
  • 05-power BI高级筛选器filter与Values人工造表
  • 【烧脑算法】不定长滑动窗口:从动态调整到精准匹配以灵活特性实现高效破题