C# Winfrom使用ffmpeg转换视频格式

    xiaoxiao2022-07-13  163

    //视频转码 private void VideoConverter() { filelen = 0; ListView lv = listView1; for (int i = 0; i < lv.Items.Count; i++) { if (lv.Items[i].SubItems[3].Text != "已完成") { Process p = new Process(); p.StartInfo.FileName = path + "ffmpeg"; //p.StartInfo.FileName = path + "ffmpeg.exe"; p.StartInfo.UseShellExecute = false; string srcFileName = ""; string destFileName = ""; string newFileName = ""; string mbgs = "." + comboBox2.SelectedItem.ToString(); srcFileName = lv.Items[i].SubItems[1].Text; newFileName = lv.Items[i].SubItems[0].Text.Split('.')[0]; destFileName = "\"" + label3.Text + "\\" + newFileName + DateTime.Now.ToString("yyyyMMddhhmmss"); p.StartInfo.Arguments = "-i " + srcFileName + " -y -vcodec h264 -b 500000 " + destFileName + mbgs + "\""; //执行参数 p.StartInfo.UseShellExecute = false; 不使用系统外壳程序启动进程 p.StartInfo.CreateNoWindow = true; //不显示dos程序窗口 p.StartInfo.RedirectStandardInput = true; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardError = true;//把外部程序错误输出写到StandardError流中 p.ErrorDataReceived += new DataReceivedEventHandler(p_ErrorDataReceived); p.OutputDataReceived += new DataReceivedEventHandler(p_OutputDataReceived); p.StartInfo.UseShellExecute = false; p.Start(); p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; p.BeginErrorReadLine();//开始异步读取 p.WaitForExit();//阻塞等待进程结束 p.Close();//关闭进程 p.Dispose();//释放资源 setState(i);//更新文件状态 filelen += 1;//已转换文件数量 } } }

    下面是压缩前后的文件大小及画质对比 压缩前 压缩后 C# Winfrom使用ffmpeg转换视频格式(新)

    最新回复(0)