資源簡介
C# Winfrom使用ffmpeg轉換視頻格式的demo,5.29更新加入CPU核心利用率,視頻壓縮率,去除目標格式選擇,需要的可自行在源碼中添加
代碼片段和文件信息
/*
?*?author:Joey?Zhao
?*?date:2010-12-1
?*?describe:帶百分比的進度條使用方法:
?*?1?實例化一個ProcessOperator對象;
?*?2,賦值BackgroundWork(類型為一個參數,無返回值的委托,其中參數是一個具有一個int類型參數無返回值的委托,用來預報進度)屬性為要在后臺執(zhí)行的方法,詳見TestForm中的示例
?*?3,調用Start方法開始執(zhí)行
?*?4?在事件BackgroundWorkerCompleted中執(zhí)行后臺任務完成后的操作
?*/
using?System;
using?System.Collections.Generic;
using?System.Linq;
using?System.Text;
using?System.ComponentModel;
namespace?Process_test
{
????public?class?PercentProcessOperator
????{
????????private?BackgroundWorker?_backgroundWorker;//后臺線程
????????private?ProcessForm?_processForm;//進度條窗體
????????private?BackgroundWorkerEventArgs?_eventArgs;//異常參數
????????private?string?_inforMessage;
????????public?PercentProcessOperator()
????????{
????????????_processForm?=?new?ProcessForm();
????????????_eventArgs?=?new?BackgroundWorkerEventArgs();
????????????_processForm.Processstyle?=?System.Windows.Forms.ProgressBarstyle.Continuous;
????????????_backgroundWorker?=?new?BackgroundWorker();
????????????_backgroundWorker.WorkerReportsProgress?=?true;
????????????_backgroundWorker.DoWork?+=?new?DoWorkEventHandler(_backgroundWorker_DoWork);
????????????_backgroundWorker.RunWorkerCompleted?+=?new?RunWorkerCompletedEventHandler(_backgroundWorker_RunWorkerCompleted);
????????????_backgroundWorker.ProgressChanged?+=?new?ProgressChangedEventHandler(_backgroundWorker_ProgressChanged);
????????}
????????//顯示進度
????????private?void?_backgroundWorker_ProgressChanged(object?sender?ProgressChangedEventArgs?e)
????????{
????????????_processForm.MessageInfo?=?_inforMessage?+?“已完成:“?+?e.ProgressPercentage.ToString()?+?“%“;
????????????_processForm.ProcessValue?=?e.ProgressPercentage;
????????}
????????//操作進行完畢后關閉進度條窗體
????????private?void?_backgroundWorker_RunWorkerCompleted(object?sender?RunWorkerCompletedEventArgs?e)
????????{
????????????if?(_processForm.Visible?==?true)
????????????{
????????????????_processForm.Close();
????????????}
????????????if?(this.BackgroundWorkerCompleted?!=?null)
????????????{
????????????????this.BackgroundWorkerCompleted(null?_eventArgs);
????????????}
????????}
????????//后臺執(zhí)行的操作
????????private?void?_backgroundWorker_DoWork(object?sender?DoWorkEventArgs?e)
????????{
????????????if?(BackgroundWork?!=?null)
????????????{
????????????????try
????????????????{
????????????????????BackgroundWork(this.ReportPercent);
????????????????}
????????????????catch?(Exception?ex)
????????????????{
????????????????????_eventArgs.BackGroundException?=?ex;
????????????????}
????????????}
????????}
????????#region?公共方法、屬性、事件
????????///?
????????///?設置進度條顯示的提示信息
????????///?
????????public?string?MessageInfo
????????{
????????????set?{?_inforMessage?=?value;?}
????????}
????????///?
????????///?后臺執(zhí)行的操作參數為一個參數為int型的委托;
????????///?在客戶端要執(zhí)行的后臺方法中可以使用Action<int>預報完成進度如:
????????///?
????????///?
????????///?PercentProcessOperator?o?=?new?Percen
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-03-15?17:02??Process_test\
?????目錄???????????0??2018-03-07?14:07??Process_test\bin\
?????目錄???????????0??2018-03-07?15:24??Process_test\bin\Debug\
?????文件???????19968??2018-03-09?14:01??Process_test\bin\Debug\Process_test.dll
?????文件???????24064??2018-03-09?14:01??Process_test\bin\Debug\Process_test.pdb
?????目錄???????????0??2018-03-07?14:05??Process_test\bin\Release\
?????文件????????9662??2018-03-08?18:47??Process_test\bitbug_favicon.ico
?????目錄???????????0??2018-03-07?14:07??Process_test\obj\
?????目錄???????????0??2018-03-09?14:01??Process_test\obj\Debug\
?????文件????????1230??2018-03-08?09:10??Process_test\obj\Debug\DesignTimeResolveAssemblyReferences.cache
?????文件????????6805??2018-03-15?14:37??Process_test\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
?????文件??????????42??2018-03-07?14:07??Process_test\obj\Debug\Process.csproj.CoreCompileInputs.cache
?????文件????????1328??2018-03-07?14:09??Process_test\obj\Debug\Process.csproj.FileListAbsolute.txt
?????文件?????????780??2018-03-07?14:04??Process_test\obj\Debug\Process.csproj.GenerateResource.Cache
?????文件????????1643??2018-03-07?14:04??Process_test\obj\Debug\Process.csprojResolveAssemblyReference.cache
?????文件??????????42??2018-03-07?14:14??Process_test\obj\Debug\ProcessW.csproj.CoreCompileInputs.cache
?????文件??????????42??2018-03-07?14:15??Process_test\obj\Debug\Process_.csproj.CoreCompileInputs.cache
?????文件?????????521??2018-03-07?14:15??Process_test\obj\Debug\Process_.csproj.FileListAbsolute.txt
?????文件?????????780??2018-03-07?14:15??Process_test\obj\Debug\Process_.csproj.GenerateResource.Cache
?????文件??????????42??2018-03-09?13:59??Process_test\obj\Debug\Process_test.csproj.CoreCompileInputs.cache
?????文件????????1859??2018-03-09?14:01??Process_test\obj\Debug\Process_test.csproj.FileListAbsolute.txt
?????文件?????????780??2018-03-09?14:01??Process_test\obj\Debug\Process_test.csproj.GenerateResource.Cache
?????文件????????1643??2018-03-09?14:00??Process_test\obj\Debug\Process_test.csprojResolveAssemblyReference.cache
?????文件???????19968??2018-03-09?14:01??Process_test\obj\Debug\Process_test.dll
?????文件???????24064??2018-03-09?14:01??Process_test\obj\Debug\Process_test.pdb
?????文件?????????180??2018-03-09?14:01??Process_test\obj\Debug\Process_test.ProcessForm.resources
?????目錄???????????0??2011-04-14?23:11??Process_test\obj\Debug\TempPE\
?????文件????????4619??2018-03-09?13:58??Process_test\PercentProcessOperator.cs
?????文件?????????967??2018-03-15?17:02??Process_test\ProcessForm.cs
?????文件????????3954??2018-03-15?17:02??Process_test\ProcessForm.Designer.cs
?????文件????????5814??2018-03-15?17:02??Process_test\ProcessForm.resx
............此處省略71個文件信息