• 大小: 14.55MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-07-22
  • 语言: C#
  • 标签: C#  winfrom  ffmpeg  转码  

资源简介

C# Winfrom使用ffmpeg转换视频格式的demo,5.29更新加入CPU核心利用率,视频压缩率,去除目标格式选择,需要的可自行在源码中添加

资源截图

代码片段和文件信息

/*
 * author:Joey Zhao
 * date:2010-12-1
 * describe:带百分比的进度条使用方法:
 * 1 实例化一个ProcessOperator对象;
 * 2,赋值BackgroundWork(类型为一个参数,无返回值的委托,其中参数是一个具有一个int类型参数无返回值的委托,用来预报进度)属性为要在后台执行的方法,详见TestForm中的示例
 * 3,调用Start方法开始执行
 * 4 在事件BackgroundWorkerCompleted中执行后台任务完成后的操作
 */
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);
            }
        }

        //后台执行的操作
        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; }
        }

        /// 
        /// 后台执行的操作参数为一个参数为int型的委托;
        /// 在客户端要执行的后台方法中可以使用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个文件信息

评论

共有 条评论