📄 form_batchencode.cs
字号:
using WMEncoderLib;
using WMPREVIEWLib;
using System.IO;
using System.Drawing;
using System;
using System.Data;
using System.Windows.Forms;
using System.Collections;
using System.ComponentModel;
namespace ConvertVideoFileFormats
{
public class Form_BatchEncode : System.Windows.Forms.Form
{
const string strAppName = "Windows Media Batch Encoder Sample";
const string strAppCopyright = "";
const string strNoEncode = "Skip";
WMEncoder glbEncoder = new WMEncoder();
IWMEncSourceGroupCollection SrcGrpColl = null;
long glblongPostviewStream;
private struct strucEncodeInfo
{
public string Source;
public string Destination;
public string Profile;
public string DRMProfile;
public string Title;
public string Description;
public string Author;
public string Copyright;
public bool Crop;
public long CropLeft;
public long CropTop;
public long CropRight;
public long CropBottom;
public WMENC_VIDEO_OPTIMIZATION Preproc;
public bool TwoPass;
}
int glbintSourceDuration;
string glbstrSessionFileName = "";
string glbstrErrLocation;
string glbstrStatusPercentComplete = "";
bool glbTwoPassEncoding = false;
int glbPassNumber;
bool glbboolSessionDirty = false;
bool glbboolAppStart = true;
bool glbLogErrors;
bool glbboolStartNext = true;
bool glbboolBatchComplete;
bool glbboolSrcGrpColl = false;
bool glbboolEncodingContinue = true;
bool glbboolStopButtonPressed = false;
string glbboolCurrentFileStatus = "Encoded";
const WMENC_VIDEO_OPTIMIZATION optSTANDARD = WMENC_VIDEO_OPTIMIZATION.WMENC_VIDEO_STANDARD;
const WMENC_VIDEO_OPTIMIZATION optDEINTERLACE = WMENC_VIDEO_OPTIMIZATION.WMENC_VIDEO_DEINTERLACE;
const WMENC_VIDEO_OPTIMIZATION optTELECINE_AUTO = WMENC_VIDEO_OPTIMIZATION.WMENC_VIDEO_INVERSETELECINE | WMENC_VIDEO_OPTIMIZATION.WMENC_VIDEO_INVERSETELECINE;
const WMENC_VIDEO_OPTIMIZATION optTELECINE_AA_TOP = WMENC_VIDEO_OPTIMIZATION.WMENC_VIDEO_INVERSETELECINE | WMENC_VIDEO_OPTIMIZATION.WMENC_VIDEO_TELECINE_AA_TOP;
const WMENC_VIDEO_OPTIMIZATION optTELECINE_BB_TOP = WMENC_VIDEO_OPTIMIZATION.WMENC_VIDEO_INVERSETELECINE | WMENC_VIDEO_OPTIMIZATION.WMENC_VIDEO_TELECINE_BB_TOP;
const WMENC_VIDEO_OPTIMIZATION optTELECINE_BC_TOP = WMENC_VIDEO_OPTIMIZATION.WMENC_VIDEO_INVERSETELECINE | WMENC_VIDEO_OPTIMIZATION.WMENC_VIDEO_TELECINE_BC_TOP;
const WMENC_VIDEO_OPTIMIZATION optTELECINE_CD_TOP = WMENC_VIDEO_OPTIMIZATION.WMENC_VIDEO_INVERSETELECINE | WMENC_VIDEO_OPTIMIZATION.WMENC_VIDEO_TELECINE_CD_TOP;
const WMENC_VIDEO_OPTIMIZATION optTELECINE_DD_TOP = WMENC_VIDEO_OPTIMIZATION.WMENC_VIDEO_INVERSETELECINE | WMENC_VIDEO_OPTIMIZATION.WMENC_VIDEO_TELECINE_DD_TOP;
const WMENC_VIDEO_OPTIMIZATION optTELECINE_AA_BOTTOM = WMENC_VIDEO_OPTIMIZATION.WMENC_VIDEO_INVERSETELECINE | WMENC_VIDEO_OPTIMIZATION.WMENC_VIDEO_TELECINE_AA_BOTTOM;
const WMENC_VIDEO_OPTIMIZATION optTELECINE_BB_BOTTOM = WMENC_VIDEO_OPTIMIZATION.WMENC_VIDEO_INVERSETELECINE | WMENC_VIDEO_OPTIMIZATION.WMENC_VIDEO_TELECINE_BB_BOTTOM;
const WMENC_VIDEO_OPTIMIZATION optTELECINE_BC_BOTTOM = WMENC_VIDEO_OPTIMIZATION.WMENC_VIDEO_INVERSETELECINE | WMENC_VIDEO_OPTIMIZATION.WMENC_VIDEO_TELECINE_BC_BOTTOM;
const WMENC_VIDEO_OPTIMIZATION optTELECINE_CD_BOTTOM = WMENC_VIDEO_OPTIMIZATION.WMENC_VIDEO_INVERSETELECINE | WMENC_VIDEO_OPTIMIZATION.WMENC_VIDEO_TELECINE_CD_BOTTOM;
const WMENC_VIDEO_OPTIMIZATION optTELECINE_DD_BOTTOM = WMENC_VIDEO_OPTIMIZATION.WMENC_VIDEO_INVERSETELECINE | WMENC_VIDEO_OPTIMIZATION.WMENC_VIDEO_TELECINE_DD_BOTTOM;
const WMENC_VIDEO_OPTIMIZATION optINTERLACED_AUTO = WMENC_VIDEO_OPTIMIZATION.WMENC_VIDEO_PROCESS_INTERLACED | WMENC_VIDEO_OPTIMIZATION.WMENC_VIDEO_INTERLACED_AUTO;
const WMENC_VIDEO_OPTIMIZATION optINTERLACED_TOP_FIRST = WMENC_VIDEO_OPTIMIZATION.WMENC_VIDEO_PROCESS_INTERLACED | WMENC_VIDEO_OPTIMIZATION.WMENC_VIDEO_INTERLACED_TOP_FIRST;
const WMENC_VIDEO_OPTIMIZATION optINTERLACED_BOTTOM_FIRST = WMENC_VIDEO_OPTIMIZATION.WMENC_VIDEO_PROCESS_INTERLACED | WMENC_VIDEO_OPTIMIZATION.WMENC_VIDEO_INTERLACED_BOTTOM_FIRST;
private const short BIF_RETURNONLYFSDIRS = 1;
private const short BIF_DONTGOBELOWDOMAIN = 2;
private const short MAX_PATH = 260;
[System.Runtime.InteropServices.DllImport("shell32")]
private static extern int SHBrowseForFolder(ref Form_BatchEncode.BrowseInfo lpbi);
[System.Runtime.InteropServices.DllImport("shell32")]
private static extern int SHGetPathFromIDList(int pidList,System.Text.StringBuilder lpBuffer);
[System.Runtime.InteropServices.DllImport("kernel32", EntryPoint="lstrcatA")]
private static extern int lstrcat(string lpString1, string lpString2);
private struct BrowseInfo
{
public int hWndOwner;
public int pIDLRoot;
public int pszDisplayName;
public int lpszTitle;
public int ulFlags;
public int lpfnCallback;
public int lParam;
public int iImage;
}
public Form_BatchEncode():base()
{
InitializeComponent();
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
if (!((components == null)))
{
components.Dispose();
}
}
base.Dispose(disposing);
}
private System.ComponentModel.IContainer components;
internal System.Windows.Forms.MainMenu MainMenu1;
internal System.Windows.Forms.MenuItem MenuItem_Open;
internal System.Windows.Forms.MenuItem MenuItem_File;
internal System.Windows.Forms.MenuItem MenuItem_SaveAs;
internal System.Windows.Forms.MenuItem MenuItem_Save;
internal System.Windows.Forms.MenuItem MenuItem_Exit;
internal System.Windows.Forms.MenuItem MenuItem_Help;
internal System.Windows.Forms.MenuItem MenuItem_About;
internal System.Windows.Forms.Label Label_Profile;
internal System.Windows.Forms.ComboBox ComboBox_PreProc;
internal System.Windows.Forms.Label Label_PreProc;
internal System.Windows.Forms.TextBox TextBox_Destination;
internal System.Windows.Forms.ComboBox ComboBox_DRMProfile;
internal System.Windows.Forms.Button Button_FileOpenDestination;
internal System.Windows.Forms.Label Label_DRMProfile;
internal System.Windows.Forms.Label Label_Title;
internal System.Windows.Forms.TextBox TextBox_Title;
internal System.Windows.Forms.Label Label_Description;
internal System.Windows.Forms.Label Label_Copyright;
internal System.Windows.Forms.TextBox TextBox_Description;
internal System.Windows.Forms.TextBox TextBox_Copyright;
internal System.Windows.Forms.Label Label_Author;
internal System.Windows.Forms.TextBox TextBox_Author;
internal System.Windows.Forms.Button Button_Add;
internal System.Windows.Forms.Button Button_Remove;
internal System.Windows.Forms.Button Button_RemoveAll;
internal System.Windows.Forms.Button Button_Start;
internal System.Windows.Forms.DataGrid DataGrid_Batch;
internal System.Windows.Forms.Button Button_Stop;
internal System.Data.DataSet DataSet_Batch;
internal System.Data.DataTable DataTable_Batch;
internal System.Data.DataColumn DataColumn_Status;
internal System.Data.DataColumn DataColumn_Source;
internal System.Data.DataColumn DataColumn_Destination;
internal System.Data.DataColumn DataColumn_Profile;
internal System.Data.DataColumn DataColumn_PreProc;
internal System.Data.DataColumn DataColumn_DRMProfile;
internal System.Data.DataColumn DataColumn_Title;
internal System.Data.DataColumn DataColumn_Description;
internal System.Data.DataColumn DataColumn_Author;
internal System.Data.DataColumn DataColumn_Copyright;
internal System.Data.DataColumn DataColumn_TwoPass;
internal System.Data.DataSet DataSet_Error;
internal System.Data.DataTable DataTable_Error;
internal System.Data.DataColumn DataColumn_ErrorID;
internal System.Data.DataColumn DataColumn_ErrorString;
internal System.Data.DataColumn DataColumn_ErrorLocation;
internal System.Windows.Forms.GroupBox GroupBox_Crop;
internal System.Data.DataTable DataTable_Default;
internal System.Data.DataColumn DataColumn_DestinationDefault;
internal System.Data.DataColumn DataColumn_ProfileDefault;
internal System.Data.DataColumn DataColumn_PreprocessingDefault;
internal System.Data.DataColumn DataColumn_TitleDefault;
internal System.Data.DataColumn DataColumn_DescriptionDefault;
internal System.Data.DataColumn DataColumn_AuthorDefault;
internal System.Data.DataColumn DataColumn_CopyrightDefault;
internal System.Data.DataColumn DataColumn_TwoPassDefault;
internal System.Data.DataColumn DataColumn_PreviewDefault;
internal System.Data.DataColumn DataColumn_CropBottomDefault;
internal System.Data.DataColumn DataColumn_CropRightDefault;
internal System.Data.DataColumn DataColumn_CropLeftDefault;
internal System.Data.DataColumn DataColumn_CropTopDefault;
internal System.Data.DataColumn DataColumn_CropEnableDefault;
internal System.Windows.Forms.StatusBar StatusBar_Status;
internal System.Windows.Forms.Button Button_RemoveSource;
internal System.Windows.Forms.Button Button_SourceRemoveAll;
internal System.Windows.Forms.MenuItem MenuItem_CurrentAsDefault;
internal System.Windows.Forms.MenuItem MenuItem_Tools;
internal System.Windows.Forms.Label Label_OutputFolder;
internal System.Data.DataColumn DataColumn_ContentID;
internal System.Windows.Forms.Button Button_FileOpenSource;
internal System.Windows.Forms.ListBox ListBox_Source;
internal System.Windows.Forms.GroupBox GroupBox_Sources;
internal System.Windows.Forms.Label Label_OutputString;
internal System.Windows.Forms.TextBox TextBox_OutputString;
internal System.Data.DataSet DataSet_Default;
internal System.Data.DataColumn DataColumn_OutputStringDefault;
internal System.Windows.Forms.Timer Timer_PercentComplete;
internal System.Windows.Forms.StatusBarPanel StatusBarPanel_PercentComplete;
internal System.Windows.Forms.CheckBox CheckBox_TwoPass;
internal System.Windows.Forms.MenuItem MenuItem_LogErrors;
internal System.Windows.Forms.DataGridTableStyle DataGridTableStyle1;
internal System.Windows.Forms.DataGridTextBoxColumn DataGridTextBoxColumn_Status;
internal System.Windows.Forms.DataGridTextBoxColumn DataGridTextBoxColumn_ContentID;
internal System.Windows.Forms.DataGridTextBoxColumn DataGridTextBoxColumn_Source;
internal System.Windows.Forms.DataGridTextBoxColumn DataGridTextBoxColumn_Destination;
internal System.Windows.Forms.DataGridTextBoxColumn DataGridTextBoxColumn_Profile;
internal System.Windows.Forms.DataGridTextBoxColumn DataGridTextBoxColumn_PreProc;
internal System.Windows.Forms.DataGridTextBoxColumn DataGridTextBoxColumn_DRMProfile;
internal System.Windows.Forms.DataGridTextBoxColumn DataGridTextBoxColumn_Title;
internal System.Windows.Forms.DataGridTextBoxColumn DataGridTextBoxColumn_Description;
internal System.Windows.Forms.DataGridTextBoxColumn DataGridTextBoxColumn_Author;
internal System.Windows.Forms.DataGridTextBoxColumn DataGridTextBoxColumn_Copyright;
internal System.Windows.Forms.DataGridBoolColumn DataGridBoolColumn_Crop;
internal System.Windows.Forms.DataGridTextBoxColumn DataGridTextBoxColumn_CropLeft;
internal System.Windows.Forms.DataGridTextBoxColumn DataGridTextBoxColumn_CropTop;
internal System.Windows.Forms.DataGridTextBoxColumn DataGridTextBoxColumn_CropRight;
internal System.Windows.Forms.DataGridTextBoxColumn DataGridTextBoxColumn_CropBottom;
internal System.Windows.Forms.DataGridBoolColumn DataGridBoolColumn_TwoPass;
internal System.Data.DataColumn DataColumn_CropBottom;
internal System.Data.DataColumn DataColumn_CropRight;
internal System.Data.DataColumn DataColumn_CropTop;
internal System.Data.DataColumn DataColumn_CropLeft;
internal System.Data.DataColumn DataColumn_Crop;
internal System.Windows.Forms.StatusBarPanel StatusBarPanel_Content;
internal System.Windows.Forms.StatusBarPanel StatusBarPanel_EncoderRunState;
internal System.Windows.Forms.CheckBox CheckBox_Crop;
internal System.Windows.Forms.NumericUpDown NumericUpDown_CropTop;
internal System.Windows.Forms.NumericUpDown NumericUpDown_CropLeft;
internal System.Windows.Forms.NumericUpDown NumericUpDown_CropRight;
internal System.Windows.Forms.NumericUpDown NumericUpDown_CropBottom;
internal System.Windows.Forms.Label Label_CropLeft;
internal System.Windows.Forms.Label Label_CropTop;
internal System.Windows.Forms.Label Label_CropRight;
internal System.Windows.Forms.Label Label_CropBottom;
internal System.Windows.Forms.TextBox TextBox_Profile;
internal System.Windows.Forms.Button Button_SelectProfile;
internal System.Data.DataColumn DataColumn_DestinationSession;
internal System.Data.DataTable DataTable_SessionInfo;
internal System.Data.DataColumn DataColumn_ErrorLogSession;
internal System.Data.DataColumn DataColumn_OutputStringSession;
internal System.Data.DataColumn DataColumn_PreviewSession;
internal System.Data.DataColumn DataColumn_TwoPassSession;
internal System.Data.DataColumn DataColumn_CropBottomSession;
internal System.Data.DataColumn DataColumn_CropRightSession;
internal System.Data.DataColumn DataColumn_CropLeftSession;
internal System.Data.DataColumn DataColumn_CropTopSession;
internal System.Data.DataColumn DataColumn_CropEnableSession;
internal System.Data.DataColumn DataColumn_CopyrightSession;
internal System.Data.DataColumn DataColumn_AuthorSession;
internal System.Data.DataColumn DataColumn_DescriptionSession;
internal System.Data.DataColumn DataColumn_TitleSession;
internal System.Data.DataColumn DataColumn_PreprocessingSession;
internal System.Data.DataColumn DataColumn_ProfileSession;
internal System.Data.DataColumn DataColumn_DRMProfileDefault;
internal System.Data.DataColumn DataColumn_DRMProfileSession;
internal System.Data.DataColumn DataColumn_ErrorLogDefault;
internal System.Data.DataColumn DataColumn_SourceList;
internal System.Data.DataTable DataTable_SourceList;
internal System.Data.DataColumn DataColumn_TwoPassEnableSession;
[System.Diagnostics.DebuggerStepThrough()]
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form_BatchEncode));
this.MainMenu1 = new System.Windows.Forms.MainMenu();
this.MenuItem_File = new System.Windows.Forms.MenuItem();
this.MenuItem_Open = new System.Windows.Forms.MenuItem();
this.MenuItem_Save = new System.Windows.Forms.MenuItem();
this.MenuItem_SaveAs = new System.Windows.Forms.MenuItem();
this.MenuItem_Exit = new System.Windows.Forms.MenuItem();
this.MenuItem_Tools = new System.Windows.Forms.MenuItem();
this.MenuItem_CurrentAsDefault = new System.Windows.Forms.MenuItem();
this.MenuItem_LogErrors = new System.Windows.Forms.MenuItem();
this.MenuItem_Help = new System.Windows.Forms.MenuItem();
this.MenuItem_About = new System.Windows.Forms.MenuItem();
this.Label_Profile = new System.Windows.Forms.Label();
this.GroupBox_Crop = new System.Windows.Forms.GroupBox();
this.NumericUpDown_CropBottom = new System.Windows.Forms.NumericUpDown();
this.NumericUpDown_CropRight = new System.Windows.Forms.NumericUpDown();
this.NumericUpDown_CropLeft = new System.Windows.Forms.NumericUpDown();
this.NumericUpDown_CropTop = new System.Windows.Forms.NumericUpDown();
this.Label_CropBottom = new System.Windows.Forms.Label();
this.Label_CropRight = new System.Windows.Forms.Label();
this.Label_CropTop = new System.Windows.Forms.Label();
this.Label_CropLeft = new System.Windows.Forms.Label();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -