├── .gitattributes
├── .gitignore
├── AudioToAAC
├── AudioConfig.cs
├── AudioInfo.cs
├── AudioToAAC.csproj
├── AudioToAAC.sln
├── CommandHelper.cs
├── Form1.Designer.cs
├── Form1.cs
├── Form1.resx
├── ID3
│ ├── Collection.cs
│ ├── Enumerations.cs
│ ├── FileStreamEx.cs
│ ├── Frames Classes
│ │ ├── ArrayFrames.cs
│ │ ├── BinaryFrame.cs
│ │ ├── MediaPlayerFrames.cs
│ │ ├── Other.cs
│ │ ├── StreamFrames.cs
│ │ └── TextFrame.cs
│ ├── FramesInfo.cs
│ ├── ID3Error.cs
│ ├── ID3Info.cs
│ ├── ID3v1.cs
│ ├── ID3v2.cs
│ ├── ID3v2Frames namespace.cs
│ └── Main.cs
├── Program.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
├── Tag.cs
├── app.config
├── backup.txt
├── packages.config
└── packages
│ ├── ID3.0.3.0
│ ├── .signature.p7s
│ ├── ID3.0.3.0.nupkg
│ └── lib
│ │ ├── net40
│ │ └── Id3.dll
│ │ ├── sl4-wp71
│ │ └── Id3.dll
│ │ ├── sl40
│ │ └── Id3.dll
│ │ └── winrt45
│ │ └── Id3.dll
│ ├── ID3.Files.0.3.0
│ ├── .signature.p7s
│ ├── ID3.Files.0.3.0.nupkg
│ └── lib
│ │ └── net40
│ │ └── Id3.Files.dll
│ └── ID3.WinForms.0.3.0
│ ├── .signature.p7s
│ ├── ID3.WinForms.0.3.0.nupkg
│ └── lib
│ └── net40
│ └── Id3.WinForms.dll
├── CommonLibrary
├── CommonLibrary.csproj
├── EnableDrag.cs
├── FileUtility.cs
├── MediaInfo.cs
├── OpenFolderDialog.cs
├── ProcessCmd.cs
├── Properties
│ └── AssemblyInfo.cs
├── StringExtension.cs
└── Win32.cs
├── Easyx264CoderGUI
├── 20131120094621866_easyicon_net_48.ico
├── ColorMatrix.cs
├── CommandLine
│ ├── CommandHelper.cs
│ ├── Eac3toCommand.cs
│ ├── FFmpegCommand.cs
│ ├── NvEncCommand.cs
│ ├── QSVEncCommand.cs
│ ├── X264Command.cs
│ ├── X265Command.cs
│ └── x264ArgsManager.cs
├── Config.cs
├── Easyx265CoderGUI.csproj
├── EncoderExcepetion.cs
├── EncoderTaskInfo.cs
├── EncoderTaskInfoForm.Designer.cs
├── EncoderTaskInfoForm.cs
├── EncoderTaskInfoForm.resx
├── FileConfig
│ ├── AudioConfig.cs
│ ├── DeepClone.cs
│ ├── FileConfig.cs
│ └── VedioConfig.cs
├── Form1.Designer.cs
├── Form1.cs
├── Form1.resx
├── MediaInfoExtension.cs
├── Program.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ ├── Settings.settings
│ └── app.manifest
├── Resource1.Designer.cs
├── Resource1.resx
├── Template
│ └── avs
│ │ └── 简单地图炮.txt
├── TextManager.cs
├── app.config
└── config.xml
├── Easyx265CoderGUI.sln
├── FlvBugger
├── FlvBugger.csproj
├── Properties
│ └── AssemblyInfo.cs
├── Utils
│ └── FlvParser.cs
└── flvbugger.cs
├── LosslessAviRgbConverter
├── AudioConfig.cs
├── ColorMatrix.cs
├── CommandHelper.cs
├── FileConfig.cs
├── FileUtility.cs
├── Form1.Designer.cs
├── Form1.cs
├── Form1.resx
├── LosslessAviRgbConverter.csproj
├── Program.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
├── Resource1.Designer.cs
├── Resource1.resx
└── VedioConfig.cs
├── README.md
├── TestConsole
├── App.config
├── Program.cs
├── Properties
│ └── AssemblyInfo.cs
└── TestConsole.csproj
├── ToolSet
├── CommandLine
│ ├── Eac3toCommand.cs
│ ├── MkvMergeCommand.cs
│ ├── Mp4boxCommand.cs
│ └── ffmpegCommand.cs
├── Form1.Designer.cs
├── Form1.cs
├── Form1.resx
├── Program.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
├── TextChangedEventArgs.cs
├── TextboxFile.Designer.cs
├── TextboxFile.cs
├── TextboxFile.resx
├── ToolSet.csproj
└── app.config
└── 添加到任务列表逻辑代码图.dgml
/.gitattributes:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | # Set default behavior to automatically normalize line endings.
3 | ###############################################################################
4 | * text=auto
5 |
6 | ###############################################################################
7 | # Set default behavior for command prompt diff.
8 | #
9 | # This is need for earlier builds of msysgit that does not have it on by
10 | # default for csharp files.
11 | # Note: This is only used by command line
12 | ###############################################################################
13 | #*.cs diff=csharp
14 |
15 | ###############################################################################
16 | # Set the merge driver for project and solution files
17 | #
18 | # Merging from the command prompt will add diff markers to the files if there
19 | # are conflicts (Merging from VS is not affected by the settings below, in VS
20 | # the diff markers are never inserted). Diff markers may cause the following
21 | # file extensions to fail to load in VS. An alternative would be to treat
22 | # these files as binary and thus will always conflict and require user
23 | # intervention with every merge. To do so, just uncomment the entries below
24 | ###############################################################################
25 | #*.sln merge=binary
26 | #*.csproj merge=binary
27 | #*.vbproj merge=binary
28 | #*.vcxproj merge=binary
29 | #*.vcproj merge=binary
30 | #*.dbproj merge=binary
31 | #*.fsproj merge=binary
32 | #*.lsproj merge=binary
33 | #*.wixproj merge=binary
34 | #*.modelproj merge=binary
35 | #*.sqlproj merge=binary
36 | #*.wwaproj merge=binary
37 |
38 | ###############################################################################
39 | # behavior for image files
40 | #
41 | # image files are treated as binary by default.
42 | ###############################################################################
43 | #*.jpg binary
44 | #*.png binary
45 | #*.gif binary
46 |
47 | ###############################################################################
48 | # diff behavior for common document formats
49 | #
50 | # Convert binary document formats to text before diffing them. This feature
51 | # is only available from the command line. Turn it on by uncommenting the
52 | # entries below.
53 | ###############################################################################
54 | #*.doc diff=astextplain
55 | #*.DOC diff=astextplain
56 | #*.docx diff=astextplain
57 | #*.DOCX diff=astextplain
58 | #*.dot diff=astextplain
59 | #*.DOT diff=astextplain
60 | #*.pdf diff=astextplain
61 | #*.PDF diff=astextplain
62 | #*.rtf diff=astextplain
63 | #*.RTF diff=astextplain
64 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 |
4 | # User-specific files
5 | *.suo
6 | *.user
7 | *.sln.docstates
8 | .vs
9 |
10 | # Build results
11 | [Dd]ebug/
12 | [Dd]ebugPublic/
13 | [Rr]elease/
14 | x64/
15 | build/
16 | bld/
17 | [Bb]in/
18 | [Oo]bj/
19 |
20 | # Roslyn cache directories
21 | *.ide/
22 |
23 | # MSTest test Results
24 | [Tt]est[Rr]esult*/
25 | [Bb]uild[Ll]og.*
26 |
27 | #NUNIT
28 | *.VisualState.xml
29 | TestResult.xml
30 |
31 | # Build Results of an ATL Project
32 | [Dd]ebugPS/
33 | [Rr]eleasePS/
34 | dlldata.c
35 |
36 | *_i.c
37 | *_p.c
38 | *_i.h
39 | *.ilk
40 | *.meta
41 | *.obj
42 | *.pch
43 | *.pdb
44 | *.pgc
45 | *.pgd
46 | *.rsp
47 | *.sbr
48 | *.tlb
49 | *.tli
50 | *.tlh
51 | *.tmp
52 | *.tmp_proj
53 | *.log
54 | *.vspscc
55 | *.vssscc
56 | .builds
57 | *.pidb
58 | *.svclog
59 | *.scc
60 |
61 | # Chutzpah Test files
62 | _Chutzpah*
63 |
64 | # Visual C++ cache files
65 | ipch/
66 | *.aps
67 | *.ncb
68 | *.opensdf
69 | *.sdf
70 | *.cachefile
71 |
72 | # Visual Studio profiler
73 | *.psess
74 | *.vsp
75 | *.vspx
76 |
77 | # TFS 2012 Local Workspace
78 | $tf/
79 |
80 | # Guidance Automation Toolkit
81 | *.gpState
82 |
83 | # ReSharper is a .NET coding add-in
84 | _ReSharper*/
85 | *.[Rr]e[Ss]harper
86 | *.DotSettings.user
87 |
88 | # JustCode is a .NET coding addin-in
89 | .JustCode
90 |
91 | # TeamCity is a build add-in
92 | _TeamCity*
93 |
94 | # DotCover is a Code Coverage Tool
95 | *.dotCover
96 |
97 | # NCrunch
98 | _NCrunch_*
99 | .*crunch*.local.xml
100 |
101 | # MightyMoose
102 | *.mm.*
103 | AutoTest.Net/
104 |
105 | # Web workbench (sass)
106 | .sass-cache/
107 |
108 | # Installshield output folder
109 | [Ee]xpress/
110 |
111 | # DocProject is a documentation generator add-in
112 | DocProject/buildhelp/
113 | DocProject/Help/*.HxT
114 | DocProject/Help/*.HxC
115 | DocProject/Help/*.hhc
116 | DocProject/Help/*.hhk
117 | DocProject/Help/*.hhp
118 | DocProject/Help/Html2
119 | DocProject/Help/html
120 |
121 | # Click-Once directory
122 | publish/
123 |
124 | # Publish Web Output
125 | *.[Pp]ublish.xml
126 | *.azurePubxml
127 | ## TODO: Comment the next line if you want to checkin your
128 | ## web deploy settings but do note that will include unencrypted
129 | ## passwords
130 | #*.pubxml
131 |
132 | # NuGet Packages Directory
133 | packages/*
134 | ## TODO: If the tool you use requires repositories.config
135 | ## uncomment the next line
136 | #!packages/repositories.config
137 |
138 | # Enable "build/" folder in the NuGet Packages folder since
139 | # NuGet packages use it for MSBuild targets.
140 | # This line needs to be after the ignore of the build folder
141 | # (and the packages folder if the line above has been uncommented)
142 | !packages/build/
143 |
144 | # Windows Azure Build Output
145 | csx/
146 | *.build.csdef
147 |
148 | # Windows Store app package directory
149 | AppPackages/
150 |
151 | # Others
152 | sql/
153 | *.Cache
154 | ClientBin/
155 | [Ss]tyle[Cc]op.*
156 | ~$*
157 | *~
158 | *.dbmdl
159 | *.dbproj.schemaview
160 | *.pfx
161 | *.publishsettings
162 | node_modules/
163 |
164 | # RIA/Silverlight projects
165 | Generated_Code/
166 |
167 | # Backup & report files from converting an old project file
168 | # to a newer Visual Studio version. Backup files are not needed,
169 | # because we have git ;-)
170 | _UpgradeReport_Files/
171 | Backup*/
172 | UpgradeLog*.XML
173 | UpgradeLog*.htm
174 |
175 | # SQL Server files
176 | *.mdf
177 | *.ldf
178 |
179 | # Business Intelligence projects
180 | *.rdl.data
181 | *.bim.layout
182 | *.bim_*.settings
183 |
184 | # Microsoft Fakes
185 | FakesAssemblies/
186 |
187 | # LightSwitch generated files
188 | GeneratedArtifacts/
189 | _Pvt_Extensions/
190 | ModelManifest.xml
191 | /.vs/Easyx265CoderGUI/v15/Server/sqlite3/storage.ide-wal
192 | /.vs/Easyx265CoderGUI/v15/Server/sqlite3/storage.ide-shm
193 | /.vs/Easyx265CoderGUI/v15/Server/sqlite3/storage.ide
194 | /.vs/Easyx265CoderGUI/v15/Server/sqlite3/db.lock
195 | /.vs/Easyx265CoderGUI/v15/sqlite3/storage.ide
--------------------------------------------------------------------------------
/AudioToAAC/AudioConfig.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace AudioToAAC
7 | {
8 | [Serializable]
9 | public class AudioConfig
10 | {
11 | public string Input;
12 | public string Output;
13 | public int Channel = 0;
14 | public bool UseEac3to = false;
15 | public bool Enabled = true;
16 | public float Quality = 0.65f;
17 | public int Tracker = 2;
18 | public AudioEncoder Encoder = AudioEncoder.aac;
19 | public string CommandLineArgs = "";
20 | }
21 |
22 | public enum AudioEncoder
23 | {
24 | aac,
25 | opus,
26 | flac
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/AudioToAAC/AudioInfo.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace AudioToAAC
7 | {
8 | public class AudioInfo
9 | {
10 | public AudioInfo()
11 | { }
12 | public AudioInfo(string fullname)
13 | {
14 | FullName = fullname;
15 | }
16 | public AudioInfo(string fullname, string dirpath)
17 | {
18 | FullName = fullname;
19 | DirPath = dirpath;
20 | }
21 |
22 | public string FullName { set; get; }
23 | public string DirPath { set; get; }
24 |
25 | public AudioEncoder Encoder = AudioEncoder.aac;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/AudioToAAC/AudioToAAC.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {19A73F4F-D526-460B-89C7-855D2005432B}
8 | WinExe
9 | Properties
10 | AudioToAAC
11 | 批量音频转码
12 | v4.5.1
13 | 512
14 |
15 |
16 |
17 |
18 | AnyCPU
19 | true
20 | full
21 | false
22 | F:\Easyx265Gui\
23 | DEBUG;TRACE
24 | prompt
25 | 4
26 |
27 |
28 | AnyCPU
29 | pdbonly
30 | true
31 | F:\Easyx265Gui\
32 | TRACE
33 | prompt
34 | 4
35 |
36 |
37 |
38 | ..\packages\ID3.0.3.0\lib\net40\Id3.dll
39 |
40 |
41 | ..\packages\ID3.Files.0.3.0\lib\net40\Id3.Files.dll
42 |
43 |
44 | ..\packages\ID3.WinForms.0.3.0\lib\net40\Id3.WinForms.dll
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 | Form
63 |
64 |
65 | Form1.cs
66 |
67 |
68 |
69 |
70 |
71 | Form1.cs
72 |
73 |
74 | ResXFileCodeGenerator
75 | Resources.Designer.cs
76 | Designer
77 |
78 |
79 | True
80 | Resources.resx
81 | True
82 |
83 |
84 |
85 |
86 | SettingsSingleFileGenerator
87 | Settings.Designer.cs
88 |
89 |
90 | True
91 | Settings.settings
92 | True
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 | {ed4fd018-9180-40d3-8fde-fb191c99ae17}
101 | CommonLibrary
102 |
103 |
104 |
105 |
112 |
--------------------------------------------------------------------------------
/AudioToAAC/AudioToAAC.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.29102.190
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AudioToAAC", "AudioToAAC.csproj", "{19A73F4F-D526-460B-89C7-855D2005432B}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {19A73F4F-D526-460B-89C7-855D2005432B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {19A73F4F-D526-460B-89C7-855D2005432B}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {19A73F4F-D526-460B-89C7-855D2005432B}.Release|Any CPU.ActiveCfg = Release|Any CPU
17 | {19A73F4F-D526-460B-89C7-855D2005432B}.Release|Any CPU.Build.0 = Release|Any CPU
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | GlobalSection(ExtensibilityGlobals) = postSolution
23 | SolutionGuid = {68B8D7A4-8965-4AEE-B226-3026670BBCB3}
24 | EndGlobalSection
25 | EndGlobal
26 |
--------------------------------------------------------------------------------
/AudioToAAC/CommandHelper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.IO;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Windows.Forms;
8 | using CommonLibrary;
9 |
10 | namespace AudioToAAC
11 | {
12 | public class CommandHelper
13 | {
14 | public static void RunFFmpegToOpus(AudioConfig audioConfig)
15 | {
16 | string tmp = Path.GetTempPath();
17 |
18 | string bat = getAudioOpus(audioConfig);
19 | ProcessCmd.RunBat(bat, tmp);
20 | }
21 |
22 | public static string getAudioOpus(AudioConfig audioconfig)
23 | {
24 | string ffmpegfile = "";
25 |
26 | ffmpegfile = Path.Combine(Application.StartupPath, "tools\\ffmpeg.exe");
27 |
28 |
29 | var audioargs = audioconfig.CommandLineArgs;
30 | if (audioargs.Contains("mixlfe"))
31 | {
32 | audioargs = "";
33 | }
34 | int bitrat = 0;
35 | if (audioconfig.Quality != 0)
36 | {
37 | if (audioconfig.Quality < 20)
38 | {
39 | bitrat = (int)(audioconfig.Quality * 500);
40 | }
41 | else
42 | {
43 | bitrat = (int)audioconfig.Quality;
44 | }
45 | audioargs += " -ab " + bitrat.ToString();
46 | }
47 | string neroAacEncfile = Path.Combine(Application.StartupPath, "tools\\opusenc");
48 | return $"{ffmpegfile.Maohao()} -i {audioconfig.Input.Maohao()} {audioargs} -f wav pipe:| {neroAacEncfile.Maohao()} --quiet --ignorelength --vbr --bitrate {bitrat} - {audioconfig.Output.Maohao()}";
49 | //return $"{ffmpegfile.Maohao()} -i {input.Maohao()} {audioargs} -c:a libopus -vn -vbr on { output.Maohao()}";
50 | }
51 |
52 | public static void RunFFmpegToAAC(AudioConfig audioConfig)
53 | {
54 | string bat = getAudiobat(audioConfig);
55 |
56 |
57 | ProcessCmd.RunBat(bat, Path.GetTempPath());
58 | }
59 |
60 | private static string getAudiobat(AudioConfig audioconfig)
61 | {
62 | string ffmpegfile = Path.Combine(Application.StartupPath, "tools\\ffmpeg.exe");
63 | var audioargs = audioconfig.CommandLineArgs;
64 | if (audioconfig.Channel > 0)
65 | {
66 | audioargs += "-ac " + audioconfig.Channel.ToString();
67 | }
68 | string neroAacEncfile = Path.Combine(Application.StartupPath, "tools\\neroAacEnc.exe");
69 | return string.Format("tools\\ffmpeg.exe -vn -i \"{0}\" {3} -f wav pipe:| tools\\neroAacEnc -ignorelength -q {2} -lc -if - -of \"{1}\"",
70 | audioconfig.Input, audioconfig.Output, audioconfig.Quality, audioargs);
71 | }
72 |
73 |
74 | public static void RunFFmpegToFlac(AudioConfig audioconfig)
75 | {
76 | ProcessStartInfo processinfo = new ProcessStartInfo();
77 | string bat = getAudioFlacBat(audioconfig.Input, audioconfig.Output, audioconfig);
78 | ProcessCmd.RunBat(bat, Path.GetTempPath());
79 | }
80 |
81 | private static string getAudioFlacBat(string input, string output, AudioConfig audioconfig)
82 | {
83 | string ffmpegfile = Path.Combine(Application.StartupPath, "tools\\ffmpeg.exe");
84 | return $"{ffmpegfile.Maohao()} -i {input.Maohao()} -c:a flac -compression_level 9 {output.Maohao()}";
85 | //return $"{ffmpegfile.Maohao()} -i {input.Maohao()} {audioargs} -c:a libopus -vn -vbr on { output.Maohao()}";
86 | }
87 | }
88 | }
89 |
--------------------------------------------------------------------------------
/AudioToAAC/Form1.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 | 17, 17
122 |
123 |
124 | 137, 17
125 |
126 |
127 | 258, 17
128 |
129 |
130 | 46
131 |
132 |
--------------------------------------------------------------------------------
/AudioToAAC/ID3/Collection.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Collections;
4 | using System.Text;
5 | using System.ComponentModel;
6 |
7 | namespace ID3.ID3v2Frames
8 | {
9 | public class FilterCollection
10 | {
11 | private ArrayList _Frames;
12 |
13 | internal FilterCollection()
14 | {
15 | _Frames = new ArrayList();
16 | }
17 |
18 | ///
19 | /// Add FrameID to FrameList if not exists
20 | ///
21 | /// FrameID to add to list
22 | public void Add(string FrameID)
23 | {
24 | if (!_Frames.Contains(FrameID))
25 | _Frames.Add(FrameID);
26 | }
27 |
28 | ///
29 | /// Remove Specific frame from list
30 | ///
31 | /// FrameID to remove from list
32 | public void Remove(string FrameID)
33 | {
34 | _Frames.Remove(FrameID);
35 | }
36 |
37 | ///
38 | /// Get list of frames
39 | ///
40 | public string[] Frames
41 | {
42 | get
43 | { return (string[])_Frames.ToArray(typeof(string)); }
44 | }
45 |
46 | ///
47 | /// Remove all frames from frame list
48 | ///
49 | public void Clear()
50 | {
51 | _Frames.Clear();
52 | }
53 |
54 | ///
55 | /// Indicate is specific frame in the list
56 | ///
57 | /// FrameID to search
58 | /// true if exists false if not
59 | public bool IsExists(string FrameID)
60 | {
61 | if (_Frames.Contains(FrameID))
62 | return true;
63 | else
64 | return false;
65 | }
66 | }
67 |
68 | public class FramesCollection
69 | {
70 | private ArrayList _Items; // Store All Data
71 |
72 | ///
73 | /// New Frames Collection
74 | ///
75 | internal FramesCollection()
76 | {
77 | _Items = new ArrayList();
78 | }
79 |
80 | ///
81 | /// Add new item to list
82 | ///
83 | ///
84 | public void Add(T item)
85 | {
86 | // Remove Item if Exists
87 | _Items.Remove(item);
88 |
89 | _Items.Add(item);
90 | }
91 |
92 | ///
93 | /// Remove Specific Item from list
94 | ///
95 | /// Item to remove
96 | public void Remove(T item)
97 | {
98 | _Items.Remove(item);
99 | }
100 |
101 | ///
102 | /// Remove at specific position
103 | ///
104 | ///
105 | public void RemoveAt(int index)
106 | {
107 | _Items.RemoveAt(index);
108 | }
109 |
110 | ///
111 | /// Clear all
112 | ///
113 | public void Clear()
114 | {
115 | _Items.Clear();
116 | }
117 |
118 | ///
119 | /// Array of items
120 | ///
121 | public T[] Items
122 | {
123 | get
124 | { return (T[])_Items.ToArray(typeof(T)); }
125 | }
126 |
127 | ///
128 | /// Get sum of lengths of items
129 | ///
130 | public int Length
131 | {
132 | get
133 | {
134 | int Len = 0;
135 | foreach (ILengthable IL in _Items)
136 | Len += IL.Length;
137 | return Len;
138 | }
139 | }
140 |
141 | ///
142 | /// Sort Items
143 | ///
144 | public void Sort()
145 | {
146 | _Items.Sort();
147 | }
148 |
149 | ///
150 | /// Counts items of current FramesCollection
151 | ///
152 | public int Count
153 | {
154 | get
155 | { return _Items.Count; }
156 | }
157 |
158 | public IEnumerator GetEnumerator()
159 | {
160 | return _Items.GetEnumerator();
161 | }
162 | }
163 | }
164 |
--------------------------------------------------------------------------------
/AudioToAAC/ID3/Enumerations.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace ID3
6 | {
7 | ///
8 | /// Provide TextEncoding for frames that support it.
9 | ///
10 | public enum TextEncodings
11 | {
12 | Ascii = 0,
13 | UTF_16 = 1,
14 | UTF_16BE = 2,
15 | UTF8 = 3
16 | }
17 |
18 | ///
19 | /// Provide frame flags for all frames
20 | ///
21 | [Flags]
22 | public enum FrameFlags
23 | {
24 | TagAlterPreservation = 0x8000,
25 | FileAlterPreservation = 0x4000,
26 | ReadOnly = 0x2000,
27 | Compression = 0x0080,
28 | Encryption = 0x0040,
29 | GroupingIdentity = 0x0020
30 | }
31 |
32 | public enum TimeStamps
33 | {
34 | MpegFrame = 1,
35 | Milliseconds
36 | }
37 |
38 | public enum IncrementDecrement
39 | {
40 | Dcrement = 0,
41 | Increment
42 | }
43 |
44 | [Flags]
45 | public enum ID3v2Flags
46 | {
47 | Unsynchronisation = 128,
48 | ExtendedHeader = 64,
49 | Expremential = 32
50 | }
51 |
52 | public enum FilterTypes
53 | {
54 | NoFilter = 0,
55 | LoadFiltersOnly = 1,
56 | NotLoadFilters = 2
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/AudioToAAC/ID3/Frames Classes/MediaPlayerFrames.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | /*
6 |
7 | */
8 | namespace ID3.ID3v2Frames.MediaPlayerFrames
9 | {
10 | class MediaPlayerFrames
11 | {
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/AudioToAAC/ID3/ID3Error.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Collections;
4 | using System.Text;
5 |
6 | namespace ID3
7 | {
8 | public class ID3Error
9 | {
10 | private string _Message;
11 | private string _FrameID;
12 |
13 | ///
14 | /// Create new ID3Error
15 | ///
16 | /// Error number according to Standard
17 | /// Version of ID3
18 | /// FrameID that error occured in
19 | /// Message of error
20 | /// Error level
21 | internal ID3Error(string Message, string FrameID)
22 | {
23 | this.FrameID = FrameID;
24 | _Message = Message;
25 | }
26 |
27 | ///
28 | /// Get message of error that occured
29 | ///
30 | public string Message
31 | { get { return _Message; } }
32 |
33 | ///
34 | /// Get FrameID that error occured in
35 | ///
36 | public string FrameID
37 | {
38 | get { return _FrameID; }
39 | private set
40 | {
41 | if (value == null)
42 | _FrameID = "";
43 | else
44 | _FrameID = value;
45 | }
46 | }
47 | }
48 |
49 | ///
50 | /// Static class contain error occured
51 | ///
52 | public class ErrorCollection : IEnumerator
53 | {
54 | private ArrayList _Errors;
55 | int _Index = -1;
56 |
57 | public ErrorCollection()
58 | {
59 | _Errors = new ArrayList();
60 | }
61 |
62 | internal void Add(ID3Error item)
63 | { _Errors.Add(item); }
64 |
65 | ///
66 | /// Get list of Errors
67 | ///
68 | public ID3Error[] List
69 | {
70 | get
71 | { return (ID3Error[])_Errors.ToArray(typeof(ID3Error)); }
72 | }
73 |
74 | ///
75 | /// Get number of errors that occured
76 | ///
77 | public int Count
78 | {
79 | get
80 | { return _Errors.Count; }
81 | }
82 |
83 | ///
84 | /// Clear list of errors
85 | ///
86 | public void Clear()
87 | { _Errors.Clear(); }
88 |
89 | public IEnumerator GetEnumerator()
90 | {
91 | return this;
92 | }
93 |
94 | #region IEnumerator Members
95 |
96 | public object Current
97 | {
98 | get { return _Errors[_Index]; }
99 | }
100 |
101 | public bool MoveNext()
102 | {
103 | _Index++;
104 | if (_Index < _Errors.Count)
105 | return true;
106 | else
107 | {
108 | Reset();
109 | return false;
110 | }
111 | }
112 |
113 | public void Reset()
114 | {
115 | _Index = -1;
116 | }
117 |
118 | #endregion
119 | }
120 | }
121 |
--------------------------------------------------------------------------------
/AudioToAAC/ID3/ID3Info.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using System.IO;
5 | using ID3.ID3v1Frame;
6 |
7 | namespace ID3
8 | {
9 | ///
10 | /// Provide ID3 Information for a file
11 | ///
12 | public class ID3Info
13 | {
14 | private ID3v1 _ID3v1;
15 | private ID3v2 _ID3v2;
16 |
17 | ///
18 | /// Create new ID3 Info class
19 | ///
20 | /// FileAddress for read ID3 info
21 | /// Indicate load data in constructor or not
22 | public ID3Info(string FilePath, bool LoadData)
23 | {
24 | _ID3v1 = new ID3v1(FilePath, LoadData);
25 | _ID3v2 = new ID3v2(FilePath, LoadData);
26 | }
27 |
28 | ///
29 | /// Get ID3 version 2 Tags
30 | ///
31 | public ID3v2 ID3v2Info
32 | {
33 | get
34 | { return _ID3v2; }
35 | }
36 |
37 | ///
38 | /// Gets ID3 version Tag
39 | ///
40 | public ID3v1 ID3v1Info
41 | {
42 | get
43 | { return _ID3v1; }
44 | }
45 |
46 | ///
47 | /// Load both ID3v1 and ID3v2 information from file
48 | ///
49 | public void Load()
50 | {
51 | _ID3v2.Load();
52 | _ID3v1.Load();
53 | }
54 |
55 | ///
56 | /// Save both ID3v2 and ID3v1
57 | ///
58 | public void Save()
59 | {
60 | _ID3v2.Save();
61 | _ID3v1.Save();
62 | }
63 |
64 | ///
65 | /// Save both ID3v2 and ID3v1
66 | ///
67 | /// minor version of ID3v2 to save
68 | /// Rename Formula
69 | public void Save(int ID3v2Version, string RenameFormula)
70 | {
71 | _ID3v1.Save();
72 | _ID3v2.Save(ID3v2Version, RenameFormula);
73 | _ID3v1.FilePath = _ID3v2.FilePath;
74 | }
75 |
76 | ///
77 | /// Save both ID3v2 and ID3v1
78 | ///
79 | /// minor version of ID3v2
80 | public void Save(int ID3v2Version)
81 | {
82 | _ID3v1.Save();
83 | _ID3v2.Save(ID3v2Version);
84 | }
85 |
86 | public void AttachAnotherFile(string filepath)
87 | {
88 | _ID3v1.FilePath = filepath;
89 | _ID3v2.AttachAnotherFile(filepath);
90 | }
91 |
92 | ///
93 | /// Get FilePath current ID3Info
94 | ///
95 | public string FilePath
96 | {
97 | get
98 | { return _ID3v1.FilePath; }
99 | }
100 |
101 | ///
102 | /// Get FileName of current ID3Info file
103 | ///
104 | public string FileName
105 | {
106 | get
107 | { return _ID3v1.FileName; }
108 | }
109 |
110 | public override bool Equals(object obj)
111 | {
112 | if (obj.GetType() != this.GetType())
113 | return false;
114 |
115 | if (this.FilePath == ((ID3Info)obj).FilePath)
116 | return true;
117 | else
118 | return false;
119 | }
120 |
121 | public override int GetHashCode()
122 | {
123 | return base.GetHashCode();
124 | }
125 | }
126 | }
127 |
--------------------------------------------------------------------------------
/AudioToAAC/ID3/ID3v2Frames namespace.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gxrsprite/EasyX265EncoderGui/96d106c21f8679aa534f8722c6d45ffacfced7cd/AudioToAAC/ID3/ID3v2Frames namespace.cs
--------------------------------------------------------------------------------
/AudioToAAC/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Windows.Forms;
5 |
6 | namespace AudioToAAC
7 | {
8 | static class Program
9 | {
10 | ///
11 | /// 应用程序的主入口点。
12 | ///
13 | [STAThread]
14 | static void Main()
15 | {
16 | Application.EnableVisualStyles();
17 | Application.SetCompatibleTextRenderingDefault(false);
18 | Application.Run(new Form1());
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/AudioToAAC/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // 有关程序集的常规信息通过以下
6 | // 特性集控制。更改这些特性值可修改
7 | // 与程序集关联的信息。
8 | [assembly: AssemblyTitle("AudioToAAC")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("AudioToAAC")]
13 | [assembly: AssemblyCopyright("Copyright © 2013")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // 将 ComVisible 设置为 false 使此程序集中的类型
18 | // 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型,
19 | // 则将该类型上的 ComVisible 特性设置为 true。
20 | [assembly: ComVisible(false)]
21 |
22 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
23 | [assembly: Guid("d017de9e-aec7-4d15-9fc5-cc806c3e4b0f")]
24 |
25 | // 程序集的版本信息由下面四个值组成:
26 | //
27 | // 主版本
28 | // 次版本
29 | // 生成号
30 | // 修订号
31 | //
32 | // 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
33 | // 方法是按如下所示使用“*”:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/AudioToAAC/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace AudioToAAC.Properties {
12 | using System;
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources {
26 |
27 | private static global::System.Resources.ResourceManager resourceMan;
28 |
29 | private static global::System.Globalization.CultureInfo resourceCulture;
30 |
31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
32 | internal Resources() {
33 | }
34 |
35 | ///
36 | /// Returns the cached ResourceManager instance used by this class.
37 | ///
38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
39 | internal static global::System.Resources.ResourceManager ResourceManager {
40 | get {
41 | if (object.ReferenceEquals(resourceMan, null)) {
42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AudioToAAC.Properties.Resources", typeof(Resources).Assembly);
43 | resourceMan = temp;
44 | }
45 | return resourceMan;
46 | }
47 | }
48 |
49 | ///
50 | /// Overrides the current thread's CurrentUICulture property for all
51 | /// resource lookups using this strongly typed resource class.
52 | ///
53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
54 | internal static global::System.Globalization.CultureInfo Culture {
55 | get {
56 | return resourceCulture;
57 | }
58 | set {
59 | resourceCulture = value;
60 | }
61 | }
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/AudioToAAC/Properties/Resources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | text/microsoft-resx
107 |
108 |
109 | 2.0
110 |
111 |
112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
113 |
114 |
115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
--------------------------------------------------------------------------------
/AudioToAAC/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace AudioToAAC.Properties {
12 |
13 |
14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")]
16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
17 |
18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
19 |
20 | public static Settings Default {
21 | get {
22 | return defaultInstance;
23 | }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/AudioToAAC/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/AudioToAAC/Tag.cs:
--------------------------------------------------------------------------------
1 | using Id3;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Diagnostics;
5 | using System.IO;
6 | using System.Linq;
7 | using System.Text;
8 | using System.Text.RegularExpressions;
9 | using System.Windows.Forms;
10 |
11 | namespace AudioToAAC
12 | {
13 | public class TagConsole
14 | {
15 | public static void ReadTagToID3(Id3Tag id3, string filename)
16 | {
17 | ProcessStartInfo processinfo = new ProcessStartInfo();
18 | string tagfile = Path.Combine(Application.StartupPath, "tools\\tag.exe");
19 | processinfo.FileName = tagfile;
20 | processinfo.Arguments = "\"" + filename + "\" --stdout";
21 | processinfo.UseShellExecute = false; //输出信息重定向
22 | processinfo.CreateNoWindow = true;
23 | processinfo.RedirectStandardInput = true;
24 | processinfo.RedirectStandardOutput = true;
25 | processinfo.RedirectStandardError = false;
26 | processinfo.WindowStyle = ProcessWindowStyle.Hidden;
27 | Process tag = new Process();
28 | tag.StartInfo = processinfo;
29 | tag.Start();
30 |
31 | var result = tag.StandardOutput.ReadToEnd();
32 |
33 | id3.Title.Value = GetValueByText(result, "Title");
34 | id3.Artists.Value = GetValueByText(result, "Artist");
35 | id3.Track.Value = GetValueByText(result, "Track");
36 | id3.Genre.Value = GetValueByText(result, "Genre");
37 | id3.Year.Value = GetValueByText(result, "Year");
38 | Id3.Frames.CommentFrame c = new Id3.Frames.CommentFrame();
39 | c.Comment = GetValueByText(result, "Comment");
40 | id3.Comments.Add(c);
41 |
42 | }
43 |
44 | public static string GetValueByText(string text, string key)
45 | {
46 | return Regex.Match(text, string.Format(@"{0}:\s*(?<{0}>.*?)\r", key)).Groups[key].Value;
47 | }
48 |
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/AudioToAAC/app.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/AudioToAAC/backup.txt:
--------------------------------------------------------------------------------
1 | AudioInfo info = item.Tag as AudioInfo;
2 | string bat = getbat(info.FullName, "");
3 | ProcessStartInfo processinfo = new ProcessStartInfo();
4 | processinfo.FileName = "ffmpeg";//Environment.GetEnvironmentVariable("ComSpec");
5 | processinfo.Arguments = ffmpegArg(info.FullName);
6 | processinfo.UseShellExecute = false; //输出信息重定向
7 | //processinfo.CreateNoWindow = true;
8 | processinfo.RedirectStandardInput = true;
9 | processinfo.RedirectStandardOutput = true;
10 | processinfo.RedirectStandardError = true;
11 | Process ffmpeg = new Process();
12 | ffmpeg.StartInfo = processinfo;
13 | ffmpeg.Start();
14 | processinfo.FileName = "neroAacEnc";
15 | processinfo.Arguments = neroaacArg(
16 | Path.GetFileNameWithoutExtension(info.FullName) + ".m4a");
17 | Process neroaac = new Process();
18 | neroaac.StartInfo = processinfo;
19 | neroaac.Start();
20 |
21 | {
22 | char[] buffer = new char[10000];
23 | int bytecount = ffmpeg.StandardOutput.ReadBlock(buffer, 0, 10000);
24 | neroaac.StandardInput.Write(buffer, 0, bytecount);
25 | } while ((!ffmpeg.StandardOutput.EndOfStream))
26 | ffmpeg.WaitForExit(); //等待进程结束
27 | neroaac.WaitForExit();
28 |
29 | private string ffmpegArg(string input)
30 | {
31 | return string.Format(" -i \"{0}\" -f wav ",
32 | input);
33 | }
34 |
35 | private string neroaacArg(string output)
36 | {
37 | return string.Format(" -ignorelength -q {2} -lc -if - -of \"{1}\" ",
38 | output);
39 | }
40 |
41 | ID3Info id3 = new ID3Info(info.FullName, true);
42 | if (id3.ID3v1Info.HaveTag || id3.ID3v2Info.HaveTag)
43 | {
44 | id3.AttachAnotherFile(output);
45 | id3.Save();
46 | }
47 | else
48 | {
49 | id3.AttachAnotherFile(output);
50 | TagConsole.ReadTagToID3(id3, info.FullName);
51 | id3.Save();
52 | }
--------------------------------------------------------------------------------
/AudioToAAC/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/AudioToAAC/packages/ID3.0.3.0/.signature.p7s:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gxrsprite/EasyX265EncoderGui/96d106c21f8679aa534f8722c6d45ffacfced7cd/AudioToAAC/packages/ID3.0.3.0/.signature.p7s
--------------------------------------------------------------------------------
/AudioToAAC/packages/ID3.0.3.0/ID3.0.3.0.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gxrsprite/EasyX265EncoderGui/96d106c21f8679aa534f8722c6d45ffacfced7cd/AudioToAAC/packages/ID3.0.3.0/ID3.0.3.0.nupkg
--------------------------------------------------------------------------------
/AudioToAAC/packages/ID3.0.3.0/lib/net40/Id3.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gxrsprite/EasyX265EncoderGui/96d106c21f8679aa534f8722c6d45ffacfced7cd/AudioToAAC/packages/ID3.0.3.0/lib/net40/Id3.dll
--------------------------------------------------------------------------------
/AudioToAAC/packages/ID3.0.3.0/lib/sl4-wp71/Id3.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gxrsprite/EasyX265EncoderGui/96d106c21f8679aa534f8722c6d45ffacfced7cd/AudioToAAC/packages/ID3.0.3.0/lib/sl4-wp71/Id3.dll
--------------------------------------------------------------------------------
/AudioToAAC/packages/ID3.0.3.0/lib/sl40/Id3.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gxrsprite/EasyX265EncoderGui/96d106c21f8679aa534f8722c6d45ffacfced7cd/AudioToAAC/packages/ID3.0.3.0/lib/sl40/Id3.dll
--------------------------------------------------------------------------------
/AudioToAAC/packages/ID3.0.3.0/lib/winrt45/Id3.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gxrsprite/EasyX265EncoderGui/96d106c21f8679aa534f8722c6d45ffacfced7cd/AudioToAAC/packages/ID3.0.3.0/lib/winrt45/Id3.dll
--------------------------------------------------------------------------------
/AudioToAAC/packages/ID3.Files.0.3.0/.signature.p7s:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gxrsprite/EasyX265EncoderGui/96d106c21f8679aa534f8722c6d45ffacfced7cd/AudioToAAC/packages/ID3.Files.0.3.0/.signature.p7s
--------------------------------------------------------------------------------
/AudioToAAC/packages/ID3.Files.0.3.0/ID3.Files.0.3.0.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gxrsprite/EasyX265EncoderGui/96d106c21f8679aa534f8722c6d45ffacfced7cd/AudioToAAC/packages/ID3.Files.0.3.0/ID3.Files.0.3.0.nupkg
--------------------------------------------------------------------------------
/AudioToAAC/packages/ID3.Files.0.3.0/lib/net40/Id3.Files.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gxrsprite/EasyX265EncoderGui/96d106c21f8679aa534f8722c6d45ffacfced7cd/AudioToAAC/packages/ID3.Files.0.3.0/lib/net40/Id3.Files.dll
--------------------------------------------------------------------------------
/AudioToAAC/packages/ID3.WinForms.0.3.0/.signature.p7s:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gxrsprite/EasyX265EncoderGui/96d106c21f8679aa534f8722c6d45ffacfced7cd/AudioToAAC/packages/ID3.WinForms.0.3.0/.signature.p7s
--------------------------------------------------------------------------------
/AudioToAAC/packages/ID3.WinForms.0.3.0/ID3.WinForms.0.3.0.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gxrsprite/EasyX265EncoderGui/96d106c21f8679aa534f8722c6d45ffacfced7cd/AudioToAAC/packages/ID3.WinForms.0.3.0/ID3.WinForms.0.3.0.nupkg
--------------------------------------------------------------------------------
/AudioToAAC/packages/ID3.WinForms.0.3.0/lib/net40/Id3.WinForms.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gxrsprite/EasyX265EncoderGui/96d106c21f8679aa534f8722c6d45ffacfced7cd/AudioToAAC/packages/ID3.WinForms.0.3.0/lib/net40/Id3.WinForms.dll
--------------------------------------------------------------------------------
/CommonLibrary/CommonLibrary.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {ED4FD018-9180-40D3-8FDE-FB191C99AE17}
8 | Library
9 | Properties
10 | CommonLibrary
11 | CommonLibrary
12 | v4.5.1
13 | 512
14 |
15 |
16 | true
17 | full
18 | false
19 | bin\Debug\
20 | DEBUG;TRACE
21 | prompt
22 | 4
23 |
24 |
25 | pdbonly
26 | true
27 | bin\Release\
28 | TRACE
29 | prompt
30 | 4
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
61 |
--------------------------------------------------------------------------------
/CommonLibrary/EnableDrag.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Runtime.InteropServices;
5 | using System.Text;
6 |
7 | namespace CommonLibrary
8 | {
9 | public class EnableDrag
10 | {
11 | public enum ChangeWindowMessageFilterFlags : uint
12 | {
13 | Add = 1, Remove = 2
14 | };
15 | [DllImport("user32")]
16 | public static extern bool ChangeWindowMessageFilter(uint msg, ChangeWindowMessageFilterFlags flags);
17 |
18 | public static void EnableDragMethod()
19 | {
20 | ChangeWindowMessageFilter(0x233/*_WM_DROPFILES*/, ChangeWindowMessageFilterFlags.Add/*_MSGFLT_ADD*/);
21 | ChangeWindowMessageFilter(0x0049/*_WM_COPYGLOBALDATA*/, ChangeWindowMessageFilterFlags.Add/*_MSGFLT_ADD*/);
22 |
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/CommonLibrary/FileUtility.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Text;
6 |
7 | namespace CommonLibrary
8 | {
9 | public class FileUtility
10 | {
11 | ///
12 | /// 递归枚举所有文件
13 | ///
14 | ///
15 | ///
16 | public static IEnumerable GetFiles(string dir)
17 | {
18 | if (File.GetAttributes(dir).HasFlag(FileAttributes.Directory))
19 | {
20 | foreach (String file in System.IO.Directory.GetFiles(dir))
21 | {
22 | yield return file;
23 | }
24 | foreach (string dir1 in System.IO.Directory.GetDirectories(dir))
25 | {
26 | foreach (string ff in GetFiles(dir1))
27 | {
28 | yield return ff;
29 | }
30 | }
31 | }
32 | yield return dir;
33 |
34 | }
35 |
36 |
37 | public static String MakeRelativePath(String fromPath, String toPath)
38 | {
39 | if (String.IsNullOrEmpty(fromPath)) throw new ArgumentNullException("fromPath");
40 | if (String.IsNullOrEmpty(toPath)) throw new ArgumentNullException("toPath");
41 |
42 | Uri fromUri = new Uri(fromPath);
43 | Uri toUri = new Uri(toPath);
44 |
45 | Uri relativeUri = fromUri.MakeRelativeUri(toUri);
46 | String relativePath = Uri.UnescapeDataString(relativeUri.ToString());
47 |
48 | return relativePath.Replace('/', Path.DirectorySeparatorChar);
49 | }
50 |
51 | public static string GetNoSameNameFile(string fullname)
52 | {
53 | if (File.Exists(fullname))
54 | {
55 | string newfilename = Path.GetFileNameWithoutExtension(fullname) + "_" + Path.GetRandomFileName().Substring(0, 4);
56 | string newfullname = Path.Combine(Path.GetDirectoryName(fullname), newfilename + Path.GetExtension(fullname));
57 |
58 | newfullname = GetNoSameNameFile(newfullname);
59 | return newfullname;
60 | }
61 | else
62 | {
63 | return fullname;
64 | }
65 | }
66 |
67 | public static string RandomName(string path)
68 | {
69 | return Path.Combine(path, Guid.NewGuid().ToString("N"));
70 | }
71 |
72 | public static string AppendRandomName(string path, string filename)
73 | {
74 | return GetNoSameNameFile(Path.Combine(path, filename));
75 | }
76 |
77 | public static string GetFullNameWithoutExtension(string filefullname)
78 | {
79 | return Path.Combine(Path.GetFullPath(filefullname), Path.GetFileNameWithoutExtension(filefullname));
80 | }
81 | }
82 | }
83 |
--------------------------------------------------------------------------------
/CommonLibrary/MediaInfo.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.IO;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Text.RegularExpressions;
8 | using System.Windows.Forms;
9 |
10 | namespace CommonLibrary
11 | {
12 | [Serializable]
13 | public class MediaInfo
14 | {
15 | public string MediaInfoText { set; get; }
16 | public MediaInfo(string filename)
17 | {
18 | ProcessStartInfo processinfo = new ProcessStartInfo();
19 | string mediainfofile = Path.Combine(Application.StartupPath, "tools\\mediainfo");
20 | processinfo.FileName = mediainfofile;
21 | processinfo.Arguments = "\"" + filename + "\"";
22 | processinfo.UseShellExecute = false; //输出信息重定向
23 | processinfo.CreateNoWindow = true;
24 | processinfo.RedirectStandardInput = true;
25 | processinfo.RedirectStandardOutput = true;
26 | processinfo.RedirectStandardError = false;
27 | processinfo.WindowStyle = ProcessWindowStyle.Hidden;
28 | Process mediainfo = new Process();
29 | mediainfo.StartInfo = processinfo;
30 | mediainfo.Start();
31 | MediaInfoText = mediainfo.StandardOutput.ReadToEnd();
32 | mediainfo.Dispose();
33 | }
34 |
35 |
36 | public int DelayRelativeToVideo
37 | {
38 | get
39 | {
40 | string delayStr = GetValueByText("Delay relative to video").Replace("ms", "");
41 | int delay = 0;
42 | int.TryParse(delayStr, out delay);
43 | return delay;
44 | }
45 | }
46 |
47 | public ScanType ScanType
48 | {
49 | get
50 | {
51 | string value = GetValueByText("Scan type").Replace("ms", "");
52 | if (value.Equals("Interlaced", StringComparison.OrdinalIgnoreCase))
53 | {
54 | return ScanType.Interlaced;
55 | }
56 | else
57 | {
58 | return ScanType.Progressive;
59 | }
60 | }
61 | }
62 |
63 | public ScanOrder ScanOrder
64 | {
65 | get
66 | {
67 | string value = GetValueByText("Scan order").Replace("ms", "");
68 | if (value.Contains("Bottom"))
69 | return ScanOrder.BottomFieldFirst;
70 | else
71 | return ScanOrder.TopFieldFirst;
72 | }
73 | }
74 |
75 | public string GetValueByText(string key)
76 | {
77 | return Regex.Match(MediaInfoText, string.Format(@"{0}\s*:\s(?.*?)\r", key)).Groups["Value"].Value;
78 | }
79 | }
80 |
81 | public enum ScanType
82 | {
83 | Progressive,
84 | Interlaced
85 | }
86 | public enum ScanOrder
87 | {
88 | TopFieldFirst,
89 | BottomFieldFirst
90 | }
91 |
92 | }
93 |
--------------------------------------------------------------------------------
/CommonLibrary/ProcessCmd.cs:
--------------------------------------------------------------------------------
1 | using CommonLibrary;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Diagnostics;
5 | using System.IO;
6 | using System.Linq;
7 | using System.Text;
8 |
9 | namespace CommonLibrary
10 | {
11 | public class ProcessCmd
12 | {
13 | public static void SilenceRun(string process, string args)
14 | {
15 | ProcessStartInfo processinfo = new ProcessStartInfo();
16 | processinfo.UseShellExecute = false;
17 | processinfo.CreateNoWindow = true;
18 | processinfo.RedirectStandardInput = true;
19 | processinfo.RedirectStandardOutput = true;
20 | processinfo.RedirectStandardError = true;
21 | processinfo.WindowStyle = ProcessWindowStyle.Hidden;
22 | processinfo.FileName = process;
23 | if (!File.Exists(process))
24 | {
25 | throw new ArgumentException("找不到指定程序:" + process, process);
26 | }
27 | processinfo.Arguments = args;
28 | Process p = new Process();
29 | p.StartInfo = processinfo;
30 | p.Start();
31 | p.WaitForExit();
32 | }
33 |
34 | public static void Run(string process, string args = "")
35 | {
36 | ProcessStartInfo processinfo = new ProcessStartInfo();
37 | processinfo.FileName = process;
38 | if (!File.Exists(process))
39 | {
40 | throw new ArgumentException("找不到指定程序:" + process, process);
41 | }
42 | processinfo.Arguments = args;
43 | Process p = new Process();
44 | p.StartInfo = processinfo;
45 | p.Start();
46 | p.WaitForExit();
47 | }
48 |
49 | public static void RunBat(string bat, string temp)
50 | {
51 | var batfile = FileUtility.RandomName(temp) + ".bat";
52 | File.WriteAllText(batfile, bat, Encoding.Default);
53 | ProcessCmd.Run(batfile);
54 | }
55 |
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/CommonLibrary/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // 有关程序集的常规信息通过以下
6 | // 特性集控制。更改这些特性值可修改
7 | // 与程序集关联的信息。
8 | [assembly: AssemblyTitle("CommonLibrary")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("CommonLibrary")]
13 | [assembly: AssemblyCopyright("Copyright © 2014")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // 将 ComVisible 设置为 false 使此程序集中的类型
18 | // 对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型,
19 | // 则将该类型上的 ComVisible 特性设置为 true。
20 | [assembly: ComVisible(false)]
21 |
22 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
23 | [assembly: Guid("808b01d9-2c59-416f-9768-9e1ea35951a9")]
24 |
25 | // 程序集的版本信息由下面四个值组成:
26 | //
27 | // 主版本
28 | // 次版本
29 | // 生成号
30 | // 修订号
31 | //
32 | // 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
33 | // 方法是按如下所示使用“*”:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/CommonLibrary/StringExtension.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace CommonLibrary
7 | {
8 | public static class StringExtension
9 | {
10 | public static string Wrap(this string src, string span)
11 | {
12 | if (!src.StartsWith(span))
13 | {
14 | src = span + src;
15 | }
16 | if (!src.EndsWith(span))
17 | {
18 | src = src + span;
19 | }
20 | return src;
21 | }
22 | public static string Maohao(this string src)
23 | {
24 | if (string.IsNullOrEmpty(src))
25 | {
26 | return string.Empty;
27 | }
28 | if (!src.StartsWith("\"") && !src.EndsWith("\""))
29 | {
30 | return src.Wrap("\"");
31 | }
32 | else
33 | {
34 | return src;
35 | }
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/CommonLibrary/Win32.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Runtime.InteropServices;
5 | using System.Text;
6 |
7 | namespace CommonLibrary
8 | {
9 | //public static class NativeWrappers
10 | //{
11 | // public enum ChangeWindowMessageFilterFlags : uint { Add = 1, Remove = 2 };
12 | // [DllImport("user32")]
13 | // public static extern bool ChangeWindowMessageFilter(uint msg, ChangeWindowMessageFilterFlags flags);
14 |
15 |
16 | // [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
17 | // public static extern uint RegisterWindowMessage(string lpString);
18 | //}
19 | }
20 |
--------------------------------------------------------------------------------
/Easyx264CoderGUI/20131120094621866_easyicon_net_48.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gxrsprite/EasyX265EncoderGui/96d106c21f8679aa534f8722c6d45ffacfced7cd/Easyx264CoderGUI/20131120094621866_easyicon_net_48.ico
--------------------------------------------------------------------------------
/Easyx264CoderGUI/ColorMatrix.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace Easyx264CoderGUI
7 | {
8 |
9 | public class ColorMatrix
10 | {
11 | public string x264 = "";
12 | public string avs = "";
13 | public string tvrange = "";
14 | public static ColorMatrix From(string _x264, string _avs, string _tvrange)
15 | {
16 | return new ColorMatrix(_x264, _avs, _tvrange);
17 | }
18 | public ColorMatrix(string _x264, string _avs, string _tvrange)
19 | {
20 | x264 = _x264;
21 | avs = _avs;
22 | tvrange = _tvrange;
23 | }
24 |
25 | public static ColorMatrix bt709 = ColorMatrix.From("bt709", "709", "false");
26 | public static ColorMatrix YCgCo = ColorMatrix.From("YCgCo", "YCgCo", "true");
27 | public static ColorMatrix Convert(string Matrix)
28 | {
29 | switch (Matrix)
30 | {
31 | case "YCbCr.BT709":
32 | return ColorMatrix.bt709;
33 | case "YCgCo":
34 | return ColorMatrix.YCgCo;
35 | default:
36 | return ColorMatrix.bt709;
37 | }
38 | }
39 | }
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/Easyx264CoderGUI/CommandLine/Eac3toCommand.cs:
--------------------------------------------------------------------------------
1 | using CommonLibrary;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Diagnostics;
5 | using System.IO;
6 | using System.Linq;
7 | using System.Text;
8 |
9 | namespace Easyx264CoderGUI.CommandLine
10 | {
11 | public class Eac3toCommand
12 | {
13 | public static string Eac3toExecute = "tools" + Path.DirectorySeparatorChar + "eac3to.exe";
14 | public static string OpusEnc = "tools" + Path.DirectorySeparatorChar + "opusenc";
15 |
16 | public static string ConvertMusic(FileConfig fileConfig)
17 | {
18 | AudioConfig audioConfig = fileConfig.AudioConfig;
19 | string tmp = Config.Temp;
20 | string audiofile = FileUtility.RandomName(tmp) + ".m4a";
21 | var eac3to = Path.Combine(Environment.CurrentDirectory, Eac3toExecute);
22 | string bat = $"{eac3to.Maohao()} {fileConfig.VedioFileFullName.Maohao()} {audioConfig.Tracker}: {audiofile.Maohao()} -quality={audioConfig.Quality} {audioConfig.CommandLineArgs}";
23 | ProcessCmd.RunBat(bat, Config.Temp);
24 | return audiofile;
25 | }
26 |
27 | public static string ConvertAudioTOpus(FileConfig fileConfig)
28 | {
29 | AudioConfig audioConfig = fileConfig.AudioConfig;
30 | string tmp = Config.Temp;
31 | string audiofile = FileUtility.RandomName(tmp) + ".opus";
32 | int bitrat = 0;
33 | if (audioConfig.Quality < 1)
34 | {
35 | bitrat = (int)(audioConfig.Quality * 500);
36 | }
37 | else
38 | {
39 | bitrat = (int)audioConfig.Quality;
40 | }
41 | var eac3to = Path.Combine(Environment.CurrentDirectory, Eac3toExecute);
42 | var opusenc = Path.Combine(Environment.CurrentDirectory, OpusEnc);
43 | string bat = $"{eac3to.Maohao()} {fileConfig.VedioFileFullName.Maohao()} {audioConfig.Tracker}: {audioConfig.CommandLineArgs} stdout.wav | {opusenc.Maohao()} --ignorelength --bitrate {bitrat} --vbr - {audiofile.Maohao()}";
44 | ProcessCmd.RunBat(bat, Config.Temp);
45 | return audiofile;
46 | }
47 |
48 | public static string ConvertAudioToFlac(FileConfig fileConfig)
49 | {
50 | AudioConfig audioConfig = fileConfig.AudioConfig;
51 | string tmp = Config.Temp;
52 | string audiofile = FileUtility.RandomName(tmp) + ".flac";
53 | var eac3to = Path.Combine(Environment.CurrentDirectory, Eac3toExecute);
54 | var opusenc = Path.Combine(Environment.CurrentDirectory, OpusEnc);
55 | string bat = $"{eac3to.Maohao()} {fileConfig.VedioFileFullName.Maohao()} {audioConfig.Tracker}: {audiofile.Maohao()} ";
56 | ProcessCmd.RunBat(bat, Config.Temp);
57 | return audiofile;
58 | }
59 |
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/Easyx264CoderGUI/CommandLine/FFmpegCommand.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.IO;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Windows.Forms;
8 | using CommonLibrary;
9 |
10 | namespace Easyx264CoderGUI
11 | {
12 | public class FFmpegCommand
13 | {
14 | public static string FFmpegExecute = "tools" + Path.DirectorySeparatorChar + "ffmpeg.exe";
15 | public static string ffmpegPipex265Args = " -i {0} -f yuv4mpegpipe {1} -|";//-deinterlace
16 |
17 | public static string GetFfmpegArgs(FileConfig fileconfig)
18 | {
19 | VedioConfig vedioConfig = fileconfig.VedioConfig;
20 | string args = "";
21 | if (vedioConfig.deinterlace)
22 | {
23 | args += "-deinterlace ";
24 | }
25 | if (vedioConfig.csp == "i444")
26 | {
27 | args += "-pix_fmt yuv444p ";
28 | }
29 | else if (vedioConfig.csp == "i420")
30 | {
31 | args += "-pix_fmt yuv420p ";
32 | }
33 | else if (vedioConfig.csp == "i422")
34 | {
35 | args += "-pix_fmt yuv422p ";
36 | }
37 | else if (vedioConfig.csp == "rgb")
38 | {
39 | args += "-pix_fmt argb ";
40 | }
41 | if (vedioConfig.Resize)
42 | {
43 | args += string.Format("-s {0}x{1}", vedioConfig.Width, vedioConfig.Height);
44 | }
45 | var result = string.Format(ffmpegPipex265Args, fileconfig.VedioFileFullName.Maohao(), args);
46 |
47 | return result;
48 | }
49 |
50 | public static string RunFFmpegToFlac(FileConfig fileConfig)
51 | {
52 | AudioConfig audioConfig = fileConfig.AudioConfig;
53 | ProcessStartInfo processinfo = new ProcessStartInfo();
54 | string tmp = Config.Temp;
55 | string audiofile = FileUtility.RandomName(tmp) + ".flac";
56 |
57 | string bat = string.Empty;
58 | if (fileConfig.InputType == InputType.AvisynthScriptFile)
59 | {
60 | return null;
61 | }
62 | else
63 | {
64 | bat = getAudioFlacBat(fileConfig.AudioInputFile, audiofile, audioConfig);
65 | }
66 | ProcessCmd.RunBat(bat, Config.Temp);
67 |
68 | return audiofile;
69 | }
70 |
71 | private static string getAudioFlacBat(string input, string output, AudioConfig audioconfig)
72 | {
73 | string ffmpegfile = "";
74 | if (Config.IsWindows)
75 | {
76 | ffmpegfile = Path.Combine(Application.StartupPath, "tools\\ffmpeg.exe");
77 | }
78 | else
79 | {
80 | ffmpegfile = "ffmpeg";
81 | }
82 |
83 | return $"{ffmpegfile.Maohao()} -i {input.Maohao()} -c:a flac -compression_level 9 {output.Maohao()}";
84 | //return $"{ffmpegfile.Maohao()} -i {input.Maohao()} {audioargs} -c:a libopus -vn -vbr on { output.Maohao()}";
85 | }
86 | }
87 | }
88 |
--------------------------------------------------------------------------------
/Easyx264CoderGUI/CommandLine/x264ArgsManager.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Text.RegularExpressions;
6 |
7 | namespace Easyx264CoderGUI
8 | {
9 | public class x264ArgsManager
10 | {
11 | public x264ArgsManager() { }
12 | public x264ArgsManager(string args)
13 | {
14 | x264ArgsStr = args;
15 | }
16 | public string x264ArgsStr { set; get; }
17 |
18 | public x264ArgsManager RemoveArg(string name)
19 | {
20 | Regex regex = new Regex(string.Format("(--{0}\\s+.+?)\\s+?", name), RegexOptions.IgnoreCase);
21 | x264ArgsStr = regex.Replace(x264ArgsStr, " ");
22 | return this;
23 | }
24 |
25 | public x264ArgsManager ChangeArgValue(string name, string value)
26 | {
27 | Regex regex = new Regex(string.Format("(?<=--{0}\\s+).+?(?=\\s+)", name), RegexOptions.IgnoreCase);
28 | x264ArgsStr = regex.Replace(x264ArgsStr, value);
29 | return this;
30 | }
31 |
32 | public string GetArgValue(string name)
33 | {
34 | Regex regex = new Regex(string.Format("(?<=--{0}\\s+).+?(?=\\s+)", name), RegexOptions.IgnoreCase);
35 | Match match = regex.Match(x264ArgsStr);
36 | if (match.Success)
37 | {
38 | return match.Value;
39 | }
40 | return "";
41 | }
42 |
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/Easyx264CoderGUI/Config.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace Easyx264CoderGUI
7 | {
8 | public static class Config
9 | {
10 | public static string Temp { set; get; }
11 | public static string VspipePath { set; get; }
12 | public static string VsPluginPath { set; get; }
13 |
14 | public static bool IsWindows = true;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Easyx264CoderGUI/EncoderExcepetion.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace Easyx264CoderGUI
7 | {
8 | [Serializable]
9 | public class EncoderException : Exception
10 | {
11 | public EncoderException() { }
12 | public EncoderException(string message) : base(message) { }
13 | public EncoderException(string message, Exception inner) : base(message, inner) { }
14 | protected EncoderException(
15 | System.Runtime.Serialization.SerializationInfo info,
16 | System.Runtime.Serialization.StreamingContext context)
17 | : base(info, context) { }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/Easyx264CoderGUI/EncoderTaskInfo.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Windows.Forms;
7 |
8 | namespace Easyx264CoderGUI
9 | {
10 |
11 | public class EncoderTaskInfo
12 | {
13 | public Process process = null;
14 | public EncoderTaskInfoForm infoForm = null;
15 | public void AppendOutput(string text)
16 | {
17 | if (infoForm != null)
18 | {
19 | infoForm.AppendText(text);
20 | }
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/Easyx264CoderGUI/EncoderTaskInfoForm.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace Easyx264CoderGUI
2 | {
3 | partial class EncoderTaskInfoForm
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.txtInfo = new System.Windows.Forms.TextBox();
32 | this.lbFile = new System.Windows.Forms.Label();
33 | this.checkBox1 = new System.Windows.Forms.CheckBox();
34 | this.SuspendLayout();
35 | //
36 | // txtInfo
37 | //
38 | this.txtInfo.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
39 | | System.Windows.Forms.AnchorStyles.Left)
40 | | System.Windows.Forms.AnchorStyles.Right)));
41 | this.txtInfo.Location = new System.Drawing.Point(12, 52);
42 | this.txtInfo.Multiline = true;
43 | this.txtInfo.Name = "txtInfo";
44 | this.txtInfo.ScrollBars = System.Windows.Forms.ScrollBars.Both;
45 | this.txtInfo.Size = new System.Drawing.Size(482, 371);
46 | this.txtInfo.TabIndex = 0;
47 | //
48 | // lbFile
49 | //
50 | this.lbFile.AutoSize = true;
51 | this.lbFile.Location = new System.Drawing.Point(13, 13);
52 | this.lbFile.Name = "lbFile";
53 | this.lbFile.Size = new System.Drawing.Size(0, 12);
54 | this.lbFile.TabIndex = 1;
55 | //
56 | // checkBox1
57 | //
58 | this.checkBox1.AutoSize = true;
59 | this.checkBox1.Location = new System.Drawing.Point(404, 30);
60 | this.checkBox1.Name = "checkBox1";
61 | this.checkBox1.Size = new System.Drawing.Size(48, 16);
62 | this.checkBox1.TabIndex = 2;
63 | this.checkBox1.Text = "滚动";
64 | this.checkBox1.UseVisualStyleBackColor = true;
65 | this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged);
66 | //
67 | // EncoderTaskInfoForm
68 | //
69 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
70 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
71 | this.ClientSize = new System.Drawing.Size(506, 435);
72 | this.Controls.Add(this.checkBox1);
73 | this.Controls.Add(this.lbFile);
74 | this.Controls.Add(this.txtInfo);
75 | this.Name = "EncoderTaskInfoForm";
76 | this.Text = "转码信息";
77 | this.Load += new System.EventHandler(this.EncoderTaskInfoForm_Load);
78 | this.ResumeLayout(false);
79 | this.PerformLayout();
80 |
81 | }
82 |
83 | #endregion
84 |
85 | private System.Windows.Forms.TextBox txtInfo;
86 | public System.Windows.Forms.Label lbFile;
87 | private System.Windows.Forms.CheckBox checkBox1;
88 | }
89 | }
--------------------------------------------------------------------------------
/Easyx264CoderGUI/EncoderTaskInfoForm.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.ComponentModel;
4 | using System.Drawing;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Windows.Forms;
8 |
9 | namespace Easyx264CoderGUI
10 | {
11 | public partial class EncoderTaskInfoForm : Form
12 | {
13 | public EncoderTaskInfoForm()
14 | {
15 | InitializeComponent();
16 | }
17 | public FileConfig fileConfig = null;
18 | private void EncoderTaskInfoForm_Load(object sender, EventArgs e)
19 | {
20 |
21 | }
22 |
23 | public void AppendText(string text)
24 | {
25 | if (InvokeRequired)
26 | {
27 | this.Invoke((Action)delegate()
28 | {
29 | txtInfo.AppendText(text + "\r\n");
30 | });
31 | }
32 | else
33 | {
34 | txtInfo.AppendText(text + "\r\n");
35 | }
36 |
37 | }
38 |
39 | private void checkBox1_CheckedChanged(object sender, EventArgs e)
40 | {
41 | }
42 |
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/Easyx264CoderGUI/EncoderTaskInfoForm.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/Easyx264CoderGUI/FileConfig/AudioConfig.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace Easyx264CoderGUI
7 | {
8 | [Serializable]
9 | public class AudioConfig
10 | {
11 | public bool UseEac3to = false;
12 | public bool Enabled = true;
13 | public float Quality = 0.65f;
14 | public bool CopyStream = false;
15 | public int Tracker = 2;
16 | public AudioEncoder Encoder = AudioEncoder.aac;
17 | public string CommandLineArgs = "";
18 | }
19 |
20 | public enum AudioEncoder
21 | {
22 | aac,
23 | opus,
24 | flac
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Easyx264CoderGUI/FileConfig/DeepClone.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Runtime.Serialization;
6 | using System.Runtime.Serialization.Formatters.Binary;
7 | using System.Text;
8 |
9 | namespace Easyx264CoderGUI
10 | {
11 | public static class DeepClone
12 | {
13 | public static T GetDeepCopy(T obj)
14 | {
15 | T DeepCopyObj;
16 | if (obj.GetType().IsValueType == true)//值类型
17 | {
18 | DeepCopyObj = obj;
19 | }
20 | else//引用类型
21 | {
22 | DeepCopyObj = (T)System.Activator.CreateInstance(typeof(T)); //创建引用对象
23 | System.Reflection.MemberInfo[] memberCollection = obj.GetType().GetMembers();
24 | foreach (System.Reflection.MemberInfo member in memberCollection)
25 | {
26 | if (member.MemberType == System.Reflection.MemberTypes.Field)
27 | {
28 | System.Reflection.FieldInfo field = (System.Reflection.FieldInfo)member;
29 | Object fieldValue = field.GetValue(obj);
30 | if (fieldValue is ICloneable)
31 | field.SetValue(DeepCopyObj, (fieldValue as ICloneable).Clone());
32 | else
33 | // T fieldValue = (T)field.GetValue(obj);
34 | field.SetValue(DeepCopyObj, GetDeepCopy(fieldValue));
35 | }
36 | }
37 | }
38 | return DeepCopyObj;
39 | }
40 |
41 | public static T Clone(T source)
42 | {
43 | if (!typeof(T).IsSerializable)
44 | {
45 | throw new ArgumentException("The type must be serializable.", "source");
46 | }
47 |
48 | // Don't serialize a null object, simply return the default for that object
49 | if (Object.ReferenceEquals(source, null))
50 | {
51 | return default(T);
52 | }
53 |
54 | IFormatter formatter = new BinaryFormatter();
55 | Stream stream = new MemoryStream();
56 | using (stream)
57 | {
58 | formatter.Serialize(stream, source);
59 | stream.Seek(0, SeekOrigin.Begin);
60 | return (T)formatter.Deserialize(stream);
61 | }
62 | }
63 |
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/Easyx264CoderGUI/FileConfig/FileConfig.cs:
--------------------------------------------------------------------------------
1 | using CommonLibrary;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.IO;
5 | using System.Linq;
6 | using System.Runtime.Serialization;
7 | using System.Runtime.Serialization.Formatters.Binary;
8 | using System.Text;
9 |
10 | namespace Easyx264CoderGUI
11 | {
12 | [Serializable]
13 | public class FileConfig
14 | {
15 | public FileConfig()
16 | {
17 | lockobj = new object();
18 | EncoderTaskInfo = new EncoderTaskInfo();
19 | }
20 |
21 | object lockobj = null;
22 | public int state = -1;
23 | public string FullName = "";
24 | public string AvsFileFullName = "";
25 | public string VapoursynthFileFullName = "";
26 | public string VedioFileFullName = "";
27 | public string DirPath = "";
28 | public bool CompleteDo = false;
29 | public string CompleteAction = "复制到";
30 | public string CompleteActionDir = string.Empty;
31 | public bool KeepDirection = false;
32 | public string OutputPath = "";
33 | ///
34 | /// 输出视频文件,不包含后缀
35 | ///
36 | public string OutputFile = "";
37 | public string AudioInputFile = "";
38 | public string Muxer = "mkv";
39 | public bool sinablack = false;
40 | public bool sinaPreblack = false;
41 | public InputType InputType = InputType.Vedio;
42 | public AudioConfig AudioConfig = new AudioConfig();
43 | public VedioConfig VedioConfig = new VedioConfig();
44 | public MediaInfo mediaInfo = null;
45 |
46 | public string SubPath = null;
47 | [NonSerialized]
48 | public EncoderTaskInfo EncoderTaskInfo = null;
49 |
50 | public bool UseBat = false;
51 | ///
52 | /// 使用MediaInfo填充FileConfig里需要填充的数据
53 | ///
54 | public void FillMediaInfo()
55 | {
56 | if (this.mediaInfo != null)
57 | {
58 | this.mediaInfo.FillFileConfig(this);
59 | }
60 | }
61 |
62 | public FileConfig Clone()
63 | {
64 | var cloneti = DeepClone.Clone(this);
65 | cloneti.EncoderTaskInfo = new EncoderTaskInfo();
66 | return cloneti;
67 | }
68 | }
69 |
70 |
71 | public enum InputType
72 | {
73 | Vedio,
74 | AvisynthScriptFile,
75 | AvisynthScript,
76 | VapoursynthScript,
77 | VapoursynthScriptFile
78 | }
79 | }
80 |
--------------------------------------------------------------------------------
/Easyx264CoderGUI/FileConfig/VedioConfig.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace Easyx264CoderGUI
7 | {
8 | [Serializable]
9 | public class VedioConfig
10 | {
11 | public EncoderBitrateType BitType = EncoderBitrateType.crf;
12 | public int bitrate = 3500;
13 | public float crf = 25f;
14 | public int depth = 10;
15 | public string preset = "slow";
16 | public string tune = "";
17 | public string UserArgs = "";
18 | public bool Resize = false;
19 | public int Width = 1920;
20 | public int Height = 1080;
21 | public string csp = "i420";
22 | public string AvsScript = "";//if inputtype == AvisynthScript
23 | public string VapoursynthScript = "";
24 | public Encoder Encoder = Encoder.x264;
25 | public bool deinterlace = false;
26 | public bool scanorder = true;
27 | public string ffmpeg4x265Args = "";
28 | public string decoderMode = DecoderMode.defaultStr;
29 | public bool Is_x265_GHFLY_MOD;
30 | }
31 |
32 | public enum EncoderBitrateType
33 | {
34 | crf,
35 | twopass,
36 | qp
37 | }
38 | public enum Encoder
39 | {
40 | x264,
41 | x265,
42 | x265_GHFLY_MOD,
43 | NvEnc_H265,
44 | NvEnc_H264,
45 | QSVEnc_H265,
46 | QSVEnc_H264,
47 | }
48 |
49 | public class EncoderHelper
50 | {
51 | public static bool IsHevc(Encoder encoder)
52 | {
53 | switch (encoder)
54 | {
55 | case Encoder.x265:
56 | case Encoder.x265_GHFLY_MOD:
57 | case Encoder.NvEnc_H265:
58 | case Encoder.QSVEnc_H265:
59 | return true;
60 | }
61 |
62 | return false;
63 | }
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/Easyx264CoderGUI/MediaInfoExtension.cs:
--------------------------------------------------------------------------------
1 | using CommonLibrary;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 |
7 | namespace Easyx264CoderGUI
8 | {
9 | public static class MediaInfoExtension
10 | {
11 | public static void FillFileConfig(this MediaInfo info, FileConfig fileConfig)
12 | {
13 | VedioConfig vedioConfig = fileConfig.VedioConfig;
14 | vedioConfig.deinterlace = fileConfig.mediaInfo.ScanType == ScanType.Interlaced ? true : false;
15 | vedioConfig.scanorder = fileConfig.mediaInfo.ScanOrder == ScanOrder.TopFieldFirst ? true : false;
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Easyx264CoderGUI/Program.cs:
--------------------------------------------------------------------------------
1 | using CommonLibrary;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Windows.Forms;
6 |
7 | namespace Easyx264CoderGUI
8 | {
9 | static class Program
10 | {
11 | ///
12 | /// 应用程序的主入口点。
13 | ///
14 | [STAThread]
15 | static void Main()
16 | {
17 | Application.EnableVisualStyles();
18 | Application.SetCompatibleTextRenderingDefault(false);
19 | Application.Run(new Form1());
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Easyx264CoderGUI/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // 有关程序集的常规信息通过以下
6 | // 特性集控制。更改这些特性值可修改
7 | // 与程序集关联的信息。
8 | [assembly: AssemblyTitle("Easyx264EncoderGUI")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("eflay")]
12 | [assembly: AssemblyProduct("Easyx264EncoderGUI")]
13 | [assembly: AssemblyCopyright("Copyright © 2013")]
14 | [assembly: AssemblyTrademark("eflay")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // 将 ComVisible 设置为 false 使此程序集中的类型
18 | // 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型,
19 | // 则将该类型上的 ComVisible 特性设置为 true。
20 | [assembly: ComVisible(false)]
21 |
22 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
23 | [assembly: Guid("9f325124-39d5-4457-bcbb-a4a107f90f2f")]
24 |
25 | // 程序集的版本信息由下面四个值组成:
26 | //
27 | // 主版本
28 | // 次版本
29 | // 生成号
30 | // 修订号
31 | //
32 | // 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
33 | // 方法是按如下所示使用“*”:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.3")]
36 | [assembly: AssemblyFileVersion("1.0.0.3")]
37 |
--------------------------------------------------------------------------------
/Easyx264CoderGUI/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // 此代码由工具生成。
4 | // 运行时版本:4.0.30319.34209
5 | //
6 | // 对此文件的更改可能会导致不正确的行为,并且如果
7 | // 重新生成代码,这些更改将会丢失。
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace Easyx264CoderGUI.Properties {
12 | using System;
13 |
14 |
15 | ///
16 | /// 一个强类型的资源类,用于查找本地化的字符串等。
17 | ///
18 | // 此类是由 StronglyTypedResourceBuilder
19 | // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
20 | // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
21 | // (以 /str 作为命令选项),或重新生成 VS 项目。
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources {
26 |
27 | private static global::System.Resources.ResourceManager resourceMan;
28 |
29 | private static global::System.Globalization.CultureInfo resourceCulture;
30 |
31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
32 | internal Resources() {
33 | }
34 |
35 | ///
36 | /// 返回此类使用的缓存的 ResourceManager 实例。
37 | ///
38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
39 | internal static global::System.Resources.ResourceManager ResourceManager {
40 | get {
41 | if (object.ReferenceEquals(resourceMan, null)) {
42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Easyx264CoderGUI.Properties.Resources", typeof(Resources).Assembly);
43 | resourceMan = temp;
44 | }
45 | return resourceMan;
46 | }
47 | }
48 |
49 | ///
50 | /// 使用此强类型资源类,为所有资源查找
51 | /// 重写当前线程的 CurrentUICulture 属性。
52 | ///
53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
54 | internal static global::System.Globalization.CultureInfo Culture {
55 | get {
56 | return resourceCulture;
57 | }
58 | set {
59 | resourceCulture = value;
60 | }
61 | }
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/Easyx264CoderGUI/Properties/Resources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | text/microsoft-resx
107 |
108 |
109 | 2.0
110 |
111 |
112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
113 |
114 |
115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
--------------------------------------------------------------------------------
/Easyx264CoderGUI/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // 此代码由工具生成。
4 | // 运行时版本:4.0.30319.34209
5 | //
6 | // 对此文件的更改可能会导致不正确的行为,并且如果
7 | // 重新生成代码,这些更改将会丢失。
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace Easyx264CoderGUI.Properties {
12 |
13 |
14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")]
16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
17 |
18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
19 |
20 | public static Settings Default {
21 | get {
22 | return defaultInstance;
23 | }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Easyx264CoderGUI/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Easyx264CoderGUI/Properties/app.manifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
52 |
--------------------------------------------------------------------------------
/Easyx264CoderGUI/Resource1.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // 此代码由工具生成。
4 | // 运行时版本:4.0.30319.42000
5 | //
6 | // 对此文件的更改可能会导致不正确的行为,并且如果
7 | // 重新生成代码,这些更改将会丢失。
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace Easyx264CoderGUI {
12 | using System;
13 |
14 |
15 | ///
16 | /// 一个强类型的资源类,用于查找本地化的字符串等。
17 | ///
18 | // 此类是由 StronglyTypedResourceBuilder
19 | // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
20 | // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
21 | // (以 /str 作为命令选项),或重新生成 VS 项目。
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resource1 {
26 |
27 | private static global::System.Resources.ResourceManager resourceMan;
28 |
29 | private static global::System.Globalization.CultureInfo resourceCulture;
30 |
31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
32 | internal Resource1() {
33 | }
34 |
35 | ///
36 | /// 返回此类使用的缓存的 ResourceManager 实例。
37 | ///
38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
39 | internal static global::System.Resources.ResourceManager ResourceManager {
40 | get {
41 | if (object.ReferenceEquals(resourceMan, null)) {
42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Easyx264CoderGUI.Resource1", typeof(Resource1).Assembly);
43 | resourceMan = temp;
44 | }
45 | return resourceMan;
46 | }
47 | }
48 |
49 | ///
50 | /// 使用此强类型资源类,为所有资源查找
51 | /// 重写当前线程的 CurrentUICulture 属性。
52 | ///
53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
54 | internal static global::System.Globalization.CultureInfo Culture {
55 | get {
56 | return resourceCulture;
57 | }
58 | set {
59 | resourceCulture = value;
60 | }
61 | }
62 |
63 | ///
64 | /// 查找类似 SetWorkingDir("$avisynth_plugin$")
65 | ///LoadPlugin("ffms2.dll") #加载FFmpegSource挂载方式
66 | ///LoadPlugin("LSMASHSource.dll") #LWLibavVideoSource挂载方式
67 | ///#LWLibavVideoSource("$InputVedio$")
68 | ///FFVideoSource("$InputVedio$")
69 | ///ChangeFPS(25)
70 | ///ConvertToYV12() 的本地化字符串。
71 | ///
72 | internal static string Avs25fps {
73 | get {
74 | return ResourceManager.GetString("Avs25fps", resourceCulture);
75 | }
76 | }
77 |
78 | ///
79 | /// 查找类似 SetWorkingDir("$avisynth_plugin$")
80 | ///LoadPlugin("ffms2.dll") #加载FFmpegSource挂载方式
81 | ///LoadPlugin("LSMASHSource.dll") #LWLibavVideoSource挂载方式
82 | ///LoadPlugin("VSFilter.dll") #加载字幕插件
83 | ///Load_Stdcall_Plugin("yadif.dll") #Yadif反交错滤镜
84 | ///LoadPlugin("nnedi3-0.9.4\nnedi3.dll")
85 | ///LoadPlugin("RemoveGrain-1.0\RemoveGrainSSE3.dll")
86 | ///LoadPlugin("RemoveGrain-1.0\RepairSSE3.dll")
87 | ///LoadPlugin("FluxSmooth-1.1a\FluxSmooth.dll")
88 | ///LoadPlugin("FFT3dGPU.dll")
89 | ///LoadPlugin("dither-1.23.0\avstp.dll")
90 | ///LoadPlugin("SmoothAdjust-v2.80\a [字符串的其余部分被截断]"; 的本地化字符串。
91 | ///
92 | internal static string AvsQTGMC {
93 | get {
94 | return ResourceManager.GetString("AvsQTGMC", resourceCulture);
95 | }
96 | }
97 |
98 | ///
99 | /// 查找类似 SetWorkingDir("$avspluginpath$")
100 | ///
101 | ///LoadPlugin("dither-1.23.0\avstp.dll")
102 | ///LoadPlugin("SmoothAdjust-v2.80\avs-2.6.x\x86\SmoothAdjust.dll")
103 | ///LoadPlugin("masktools-26-for-2.6alpha4\mt_masktools-26.dll")
104 | ///LoadPlugin("nnedi3-0.9.4\nnedi3.dll")
105 | ///Import("masktools-v2.0a48\masktools\LimitedSharpenFaster.avsi")
106 | ///Import("masktools-v2.0a48\masktools\mfToon-v0.54.avsi")
107 | ///Import("masktools-v2.0a48\masktools\vmToon-v0.74.avsi")
108 | ///LoadPlugin("dither-1.23.0\dither.dll")
109 | ///Import("dither-1.23.0\dither.avsi")
110 | ///Import("O16mod_ [字符串的其余部分被截断]"; 的本地化字符串。
111 | ///
112 | internal static string AvsScriptTemplete {
113 | get {
114 | return ResourceManager.GetString("AvsScriptTemplete", resourceCulture);
115 | }
116 | }
117 |
118 | ///
119 | /// 查找类似 --demuxer lavf --input-range pc --range pc --bframes 9 --qcomp 0.60 --direct auto --me umh --psy-rd 0.40:0.00 --aq-strength 0.8 的本地化字符串。
120 | ///
121 | internal static string TempleteGamei444 {
122 | get {
123 | return ResourceManager.GetString("TempleteGamei444", resourceCulture);
124 | }
125 | }
126 |
127 | ///
128 | /// 查找类似 --demuxer lavf --qcomp 0.80 --direct auto --me umh --aq-strength 0.8 的本地化字符串。
129 | ///
130 | internal static string TempleteHDi420 {
131 | get {
132 | return ResourceManager.GetString("TempleteHDi420", resourceCulture);
133 | }
134 | }
135 |
136 | ///
137 | /// 查找类似 --demuxer lavf --no-mbtree 的本地化字符串。
138 | ///
139 | internal static string TempleteOnline {
140 | get {
141 | return ResourceManager.GetString("TempleteOnline", resourceCulture);
142 | }
143 | }
144 |
145 | ///
146 | /// 查找类似 --output-csp $csp$ $profile$ $crf$ --preset $preset$ $tune$ $resize$ $userargs$ -o $outputfile$ $input$ 的本地化字符串。
147 | ///
148 | internal static string x264Line {
149 | get {
150 | return ResourceManager.GetString("x264Line", resourceCulture);
151 | }
152 | }
153 | }
154 | }
155 |
--------------------------------------------------------------------------------
/Easyx264CoderGUI/Template/avs/简单地图炮.txt:
--------------------------------------------------------------------------------
1 | SetWorkingDir("$avisynth_plugin$")
2 | LoadPlugin("ffms2.dll") #加载FFmpegSource挂载方式
3 | LoadPlugin("LSMASHSource.dll") #LWLibavVideoSource挂载方式
4 | LoadPlugin("VSFilter.dll") #加载字幕插件
5 | Load_Stdcall_Plugin("yadif.dll") #Yadif反交错滤镜
6 | LoadPlugin("nnedi3-0.9.4\nnedi3.dll")
7 | LoadPlugin("RemoveGrain-1.0\RemoveGrainSSE3.dll")
8 | LoadPlugin("RemoveGrain-1.0\RepairSSE3.dll")
9 | LoadPlugin("FluxSmooth-1.1a\FluxSmooth.dll")
10 | LoadPlugin("FFT3dGPU.dll")
11 | LoadPlugin("dither-1.23.0\avstp.dll")
12 | LoadPlugin("SmoothAdjust-v2.80\avs-2.6.x\x86\SmoothAdjust.dll")
13 | LoadPlugin("masktools-26-for-2.6alpha4\mt_masktools-26.dll")
14 | LoadPlugin("VSFilter.dll")
15 | LoadPlugin("deblock.dll")
16 | LoadPlugin("dither-1.23.0\dither.dll")
17 | Import("dither-1.23.0\dither.avsi")
18 | LoadPlugin("RemoveGrainSSE3.dll")
19 | LoadPlugin("RepairSSE3.dll")
20 | LoadPlugin("FFT3Dfilter.dll")
21 | LoadPlugin("DctFilter.dll")
22 | LoadPlugin("mvtools-2.6.0.5\mvtools2.dll")
23 | LoadPlugin("svpflow1.dll")
24 | LoadPlugin("svpflow2.dll")
25 | LoadPlugin("gradfun2db.dll")
26 | LoadPlugin("AddGrainC-1.7.0\AddGrainC.dll")
27 | Import("LSFmod.v1.9.avsi")
28 | Import("Deblock_QEDmod.avsi")
29 | Import("masktools-v2.0a48\masktools\LimitedSharpenFaster.avsi")
30 | Import("masktools-v2.0a48\masktools\mfToon-v0.54.avsi")
31 | Import("masktools-v2.0a48\masktools\vmToon-v0.74.avsi")
32 | Import("GradFun2DBmod.v1.5.avsi")
33 | Import("QTGMC-3.33.avsi")
34 | Import("nnedi3_resize16_v2.6.avsi")
35 | #Setmtmode(2)
36 | #LWLibavVideoSource("$InputVedio$")
37 | FFVideoSource("$InputVedio$",pp="l5:a")#pp="l5:a" 加反交错
38 | #Yadif(mode=0,order=-1) #yadif反交错
39 |
40 | #QTGMC(preset="fast") # 高质量反交错
41 | #SelectEven() # Add this line to keep original frame rate, leave it out for smoother doubled frame rate
42 | SMDegrain()
43 | #FFT3Dfilter() #降噪 MT2
44 | #FFT3Dgpu() #GPU版降噪
45 | deblock_QED() #deblock
46 | #LanczosResize(1920,1080)
47 | #nnedi3_resize16(1920, 1080,lsb_in=false,lsb=false)
48 | #FluxSmoothST(7,7) # Medium Noise MT2
49 | #Removegrain(2,2)
50 | #Tweak(0,1,0,1) #综合调色调
51 | #LSFmod() #锐化
52 | GradFun2DBmod() #deband
53 | ConvertToYV12()
--------------------------------------------------------------------------------
/Easyx264CoderGUI/TextManager.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace Easyx264CoderGUI
7 | {
8 | public static class TextManager
9 | {
10 | ///
11 | /// 战渣浪后黑
12 | ///
13 | public static string zhalangflvmuxer = "战渣浪后黑";
14 | public static string zhalangflvpreblack = "战渣浪前黑";
15 | public static string Mh = "\"";
16 |
17 | }
18 |
19 | public static class DecoderMode
20 | {
21 | public static string defaultStr = "default";
22 | public static string pipe = "pipe";
23 | public static string self = "self";
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/Easyx264CoderGUI/app.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Easyx264CoderGUI/config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | d:\temp\
4 | D:\Program Files (x86)\VapourSynth\core64\vspipe
5 | J:\vspipe\filters
6 |
--------------------------------------------------------------------------------
/Easyx265CoderGUI.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.31624.102
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Easyx265CoderGUI", "Easyx264CoderGUI\Easyx265CoderGUI.csproj", "{33127000-74C1-4CDF-B0AE-006BB3076EE2}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FlvBugger", "FlvBugger\FlvBugger.csproj", "{673734B7-2C76-4B2A-8261-0157C987C1A8}"
9 | EndProject
10 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestConsole", "TestConsole\TestConsole.csproj", "{E9DBF248-8017-4E56-AF0A-860EC116F192}"
11 | EndProject
12 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ToolSet", "ToolSet\ToolSet.csproj", "{5D8E769A-283E-42F9-897D-ADCB4BD4258A}"
13 | EndProject
14 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CommonLibrary", "CommonLibrary\CommonLibrary.csproj", "{ED4FD018-9180-40D3-8FDE-FB191C99AE17}"
15 | EndProject
16 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AudioToAAC", "AudioToAAC\AudioToAAC.csproj", "{19A73F4F-D526-460B-89C7-855D2005432B}"
17 | EndProject
18 | Global
19 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
20 | Debug|Any CPU = Debug|Any CPU
21 | Release|Any CPU = Release|Any CPU
22 | EndGlobalSection
23 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
24 | {33127000-74C1-4CDF-B0AE-006BB3076EE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
25 | {33127000-74C1-4CDF-B0AE-006BB3076EE2}.Debug|Any CPU.Build.0 = Debug|Any CPU
26 | {33127000-74C1-4CDF-B0AE-006BB3076EE2}.Release|Any CPU.ActiveCfg = Release|Any CPU
27 | {33127000-74C1-4CDF-B0AE-006BB3076EE2}.Release|Any CPU.Build.0 = Release|Any CPU
28 | {673734B7-2C76-4B2A-8261-0157C987C1A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
29 | {673734B7-2C76-4B2A-8261-0157C987C1A8}.Debug|Any CPU.Build.0 = Debug|Any CPU
30 | {673734B7-2C76-4B2A-8261-0157C987C1A8}.Release|Any CPU.ActiveCfg = Release|Any CPU
31 | {673734B7-2C76-4B2A-8261-0157C987C1A8}.Release|Any CPU.Build.0 = Release|Any CPU
32 | {E9DBF248-8017-4E56-AF0A-860EC116F192}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
33 | {E9DBF248-8017-4E56-AF0A-860EC116F192}.Debug|Any CPU.Build.0 = Debug|Any CPU
34 | {E9DBF248-8017-4E56-AF0A-860EC116F192}.Release|Any CPU.ActiveCfg = Release|Any CPU
35 | {E9DBF248-8017-4E56-AF0A-860EC116F192}.Release|Any CPU.Build.0 = Release|Any CPU
36 | {5D8E769A-283E-42F9-897D-ADCB4BD4258A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
37 | {5D8E769A-283E-42F9-897D-ADCB4BD4258A}.Debug|Any CPU.Build.0 = Debug|Any CPU
38 | {5D8E769A-283E-42F9-897D-ADCB4BD4258A}.Release|Any CPU.ActiveCfg = Release|Any CPU
39 | {5D8E769A-283E-42F9-897D-ADCB4BD4258A}.Release|Any CPU.Build.0 = Release|Any CPU
40 | {ED4FD018-9180-40D3-8FDE-FB191C99AE17}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
41 | {ED4FD018-9180-40D3-8FDE-FB191C99AE17}.Debug|Any CPU.Build.0 = Debug|Any CPU
42 | {ED4FD018-9180-40D3-8FDE-FB191C99AE17}.Release|Any CPU.ActiveCfg = Release|Any CPU
43 | {ED4FD018-9180-40D3-8FDE-FB191C99AE17}.Release|Any CPU.Build.0 = Release|Any CPU
44 | {19A73F4F-D526-460B-89C7-855D2005432B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
45 | {19A73F4F-D526-460B-89C7-855D2005432B}.Debug|Any CPU.Build.0 = Debug|Any CPU
46 | {19A73F4F-D526-460B-89C7-855D2005432B}.Release|Any CPU.ActiveCfg = Release|Any CPU
47 | {19A73F4F-D526-460B-89C7-855D2005432B}.Release|Any CPU.Build.0 = Release|Any CPU
48 | EndGlobalSection
49 | GlobalSection(SolutionProperties) = preSolution
50 | HideSolutionNode = FALSE
51 | EndGlobalSection
52 | GlobalSection(ExtensibilityGlobals) = postSolution
53 | SolutionGuid = {065D1033-8B51-486B-82BA-47A9FEA08ECB}
54 | EndGlobalSection
55 | EndGlobal
56 |
--------------------------------------------------------------------------------
/FlvBugger/FlvBugger.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {673734B7-2C76-4B2A-8261-0157C987C1A8}
8 | Library
9 | Properties
10 | FlvBugger
11 | FlvBugger
12 | v4.5.1
13 | 512
14 |
15 |
16 | true
17 | full
18 | false
19 | bin\Debug\
20 | DEBUG;TRACE
21 | prompt
22 | 4
23 |
24 |
25 | pdbonly
26 | true
27 | bin\Release\
28 | TRACE
29 | prompt
30 | 4
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
48 |
--------------------------------------------------------------------------------
/FlvBugger/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // 有关程序集的常规信息通过以下
6 | // 特性集控制。更改这些特性值可修改
7 | // 与程序集关联的信息。
8 | [assembly: AssemblyTitle("FlvBugger")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("FlvBugger")]
13 | [assembly: AssemblyCopyright("Copyright © 2013")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // 将 ComVisible 设置为 false 使此程序集中的类型
18 | // 对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型,
19 | // 则将该类型上的 ComVisible 特性设置为 true。
20 | [assembly: ComVisible(false)]
21 |
22 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
23 | [assembly: Guid("5ff8572e-16b8-4077-b990-f02348126910")]
24 |
25 | // 程序集的版本信息由下面四个值组成:
26 | //
27 | // 主版本
28 | // 次版本
29 | // 生成号
30 | // 修订号
31 | //
32 | // 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
33 | // 方法是按如下所示使用“*”:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/LosslessAviRgbConverter/AudioConfig.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace LosslessAviRgbConverter
7 | {
8 | public class AudioConfig
9 | {
10 | public bool Enabled = true;
11 | public float Quality = 0.65f;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/LosslessAviRgbConverter/ColorMatrix.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace LosslessAviRgbConverter
7 | {
8 |
9 | public class ColorMatrix
10 | {
11 | public string x264 = "";
12 | public string avs = "";
13 | public string tvrange = "";
14 | public static ColorMatrix From(string _x264, string _avs, string _tvrange)
15 | {
16 | return new ColorMatrix(_x264, _avs, _tvrange);
17 | }
18 | public ColorMatrix(string _x264, string _avs, string _tvrange)
19 | {
20 | x264 = _x264;
21 | avs = _avs;
22 | tvrange = _tvrange;
23 | }
24 |
25 | public static ColorMatrix bt709 = ColorMatrix.From("bt709", "709", "false");
26 | public static ColorMatrix YCgCo = ColorMatrix.From("YCgCo", "YCgCo", "true");
27 | public static ColorMatrix Convert(string Matrix)
28 | {
29 | switch (Matrix)
30 | {
31 | case "YCbCr.BT709":
32 | return ColorMatrix.bt709;
33 | case "YCgCo":
34 | return ColorMatrix.YCgCo;
35 | default:
36 | return ColorMatrix.bt709;
37 | }
38 | }
39 | }
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/LosslessAviRgbConverter/FileConfig.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace LosslessAviRgbConverter
7 | {
8 | public class FileConfig
9 | {
10 | public int state = -1;
11 | public string FullName { set; get; }
12 | public string DirPath { set; get; }
13 | public bool CompleteDo = false;
14 | public string CompleteAction = "复制到";
15 | public string CompleteActionDir = string.Empty;
16 | public bool KeepDirection = false;
17 | public string OutputPath = "";
18 | ///
19 | /// 输出视频文件,不包含后缀
20 | ///
21 | public string OutputFile = "";
22 | public string AudioInputFile = "";
23 | public AudioConfig AudioConfig = new AudioConfig();
24 | public VedioConfig VedioConfig = new VedioConfig();
25 |
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/LosslessAviRgbConverter/FileUtility.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Text;
6 |
7 | namespace LosslessAviRgbConverter
8 | {
9 | public class FileUtility
10 | {
11 | ///
12 | /// 递归枚举所有文件
13 | ///
14 | ///
15 | ///
16 | public static IEnumerable GetFiles(string dir)
17 | {
18 | if (File.GetAttributes(dir).HasFlag(FileAttributes.Directory))
19 | {
20 | foreach (String file in System.IO.Directory.GetFiles(dir))
21 | {
22 | yield return file;
23 | }
24 | foreach (string dir1 in System.IO.Directory.GetDirectories(dir))
25 | {
26 | foreach (string ff in GetFiles(dir1))
27 | {
28 | yield return ff;
29 | }
30 | }
31 | }
32 | yield return dir;
33 |
34 | }
35 |
36 |
37 | public static String MakeRelativePath(String fromPath, String toPath)
38 | {
39 | if (String.IsNullOrEmpty(fromPath)) throw new ArgumentNullException("fromPath");
40 | if (String.IsNullOrEmpty(toPath)) throw new ArgumentNullException("toPath");
41 |
42 | Uri fromUri = new Uri(fromPath);
43 | Uri toUri = new Uri(toPath);
44 |
45 | Uri relativeUri = fromUri.MakeRelativeUri(toUri);
46 | String relativePath = Uri.UnescapeDataString(relativeUri.ToString());
47 |
48 | return relativePath.Replace('/', Path.DirectorySeparatorChar);
49 | }
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/LosslessAviRgbConverter/Form1.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 | 17, 17
122 |
123 |
124 | 379, 17
125 |
126 |
127 | 680, 17
128 |
129 |
130 | 500, 17
131 |
132 |
--------------------------------------------------------------------------------
/LosslessAviRgbConverter/LosslessAviRgbConverter.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {76C69683-31A8-499A-A278-F52051FFAAA2}
8 | WinExe
9 | Properties
10 | LosslessAviRgbConverter
11 | LosslessAviRgbConverter
12 | v4.0
13 | 512
14 | 发布\
15 | true
16 | Disk
17 | false
18 | Foreground
19 | 7
20 | Days
21 | false
22 | false
23 | true
24 | 0
25 | 1.0.0.%2a
26 | false
27 | false
28 | true
29 |
30 |
31 | AnyCPU
32 | true
33 | full
34 | false
35 | bin\Debug\
36 | DEBUG;TRACE
37 | prompt
38 | 4
39 |
40 |
41 | AnyCPU
42 | pdbonly
43 | true
44 | bin\Release\
45 | TRACE
46 | prompt
47 | 4
48 |
49 |
50 | LosslessAviRgbConverter.Program
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 | Form
72 |
73 |
74 | Form1.cs
75 |
76 |
77 |
78 |
79 | True
80 | True
81 | Resource1.resx
82 |
83 |
84 |
85 | Form1.cs
86 |
87 |
88 | ResXFileCodeGenerator
89 | Resources.Designer.cs
90 | Designer
91 |
92 |
93 | True
94 | Resources.resx
95 |
96 |
97 | ResXFileCodeGenerator
98 | Resource1.Designer.cs
99 |
100 |
101 | SettingsSingleFileGenerator
102 | Settings.Designer.cs
103 |
104 |
105 | True
106 | Settings.settings
107 | True
108 |
109 |
110 |
111 |
112 | False
113 | Microsoft .NET Framework 4 %28x86 和 x64%29
114 | true
115 |
116 |
117 | False
118 | .NET Framework 3.5 SP1 Client Profile
119 | false
120 |
121 |
122 | False
123 | .NET Framework 3.5 SP1
124 | false
125 |
126 |
127 | False
128 | Windows Installer 4.5
129 | true
130 |
131 |
132 |
133 |
140 |
--------------------------------------------------------------------------------
/LosslessAviRgbConverter/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Windows.Forms;
5 |
6 | namespace LosslessAviRgbConverter
7 | {
8 | static class Program
9 | {
10 | ///
11 | /// 应用程序的主入口点。
12 | ///
13 | [STAThread]
14 | static void Main()
15 | {
16 | Application.EnableVisualStyles();
17 | Application.SetCompatibleTextRenderingDefault(false);
18 | Application.Run(new Form1());
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/LosslessAviRgbConverter/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // 有关程序集的常规信息通过以下
6 | // 特性集控制。更改这些特性值可修改
7 | // 与程序集关联的信息。
8 | [assembly: AssemblyTitle("LosslessAviRgbConverter")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("LosslessAviRgbConverter")]
13 | [assembly: AssemblyCopyright("Copyright © 2013")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // 将 ComVisible 设置为 false 使此程序集中的类型
18 | // 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型,
19 | // 则将该类型上的 ComVisible 特性设置为 true。
20 | [assembly: ComVisible(false)]
21 |
22 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
23 | [assembly: Guid("e00007a8-ea3a-4a7d-b2d8-8da14d1b3ede")]
24 |
25 | // 程序集的版本信息由下面四个值组成:
26 | //
27 | // 主版本
28 | // 次版本
29 | // 生成号
30 | // 修订号
31 | //
32 | // 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
33 | // 方法是按如下所示使用“*”:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/LosslessAviRgbConverter/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // 此代码由工具生成。
4 | // 运行时版本: 4.0.30319.18052
5 | //
6 | // 对此文件的更改可能会导致不正确的行为,并且如果
7 | // 重新生成代码,这些更改将丢失。
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace LosslessAviRgbConverter.Properties
12 | {
13 |
14 |
15 | ///
16 | /// 一个强类型的资源类,用于查找本地化的字符串等。
17 | ///
18 | // 此类是由 StronglyTypedResourceBuilder
19 | // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
20 | // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
21 | // (以 /str 作为命令选项),或重新生成 VS 项目。
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources
26 | {
27 |
28 | private static global::System.Resources.ResourceManager resourceMan;
29 |
30 | private static global::System.Globalization.CultureInfo resourceCulture;
31 |
32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
33 | internal Resources()
34 | {
35 | }
36 |
37 | ///
38 | /// 返回此类使用的、缓存的 ResourceManager 实例。
39 | ///
40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
41 | internal static global::System.Resources.ResourceManager ResourceManager
42 | {
43 | get
44 | {
45 | if ((resourceMan == null))
46 | {
47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("LosslessAviRgbConverter.Properties.Resources", typeof(Resources).Assembly);
48 | resourceMan = temp;
49 | }
50 | return resourceMan;
51 | }
52 | }
53 |
54 | ///
55 | /// 为所有资源查找重写当前线程的 CurrentUICulture 属性,
56 | /// 方法是使用此强类型资源类。
57 | ///
58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
59 | internal static global::System.Globalization.CultureInfo Culture
60 | {
61 | get
62 | {
63 | return resourceCulture;
64 | }
65 | set
66 | {
67 | resourceCulture = value;
68 | }
69 | }
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/LosslessAviRgbConverter/Properties/Resources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | text/microsoft-resx
107 |
108 |
109 | 2.0
110 |
111 |
112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
113 |
114 |
115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
--------------------------------------------------------------------------------
/LosslessAviRgbConverter/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.18052
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace LosslessAviRgbConverter.Properties
12 | {
13 |
14 |
15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18 | {
19 |
20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21 |
22 | public static Settings Default
23 | {
24 | get
25 | {
26 | return defaultInstance;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/LosslessAviRgbConverter/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/LosslessAviRgbConverter/Resource1.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // 此代码由工具生成。
4 | // 运行时版本:4.0.30319.18052
5 | //
6 | // 对此文件的更改可能会导致不正确的行为,并且如果
7 | // 重新生成代码,这些更改将会丢失。
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace LosslessAviRgbConverter {
12 | using System;
13 |
14 |
15 | ///
16 | /// 一个强类型的资源类,用于查找本地化的字符串等。
17 | ///
18 | // 此类是由 StronglyTypedResourceBuilder
19 | // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
20 | // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
21 | // (以 /str 作为命令选项),或重新生成 VS 项目。
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resource1 {
26 |
27 | private static global::System.Resources.ResourceManager resourceMan;
28 |
29 | private static global::System.Globalization.CultureInfo resourceCulture;
30 |
31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
32 | internal Resource1() {
33 | }
34 |
35 | ///
36 | /// 返回此类使用的缓存的 ResourceManager 实例。
37 | ///
38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
39 | internal static global::System.Resources.ResourceManager ResourceManager {
40 | get {
41 | if (object.ReferenceEquals(resourceMan, null)) {
42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("LosslessAviRgbConverter.Resource1", typeof(Resource1).Assembly);
43 | resourceMan = temp;
44 | }
45 | return resourceMan;
46 | }
47 | }
48 |
49 | ///
50 | /// 使用此强类型资源类,为所有资源查找
51 | /// 重写当前线程的 CurrentUICulture 属性。
52 | ///
53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
54 | internal static global::System.Globalization.CultureInfo Culture {
55 | get {
56 | return resourceCulture;
57 | }
58 | set {
59 | resourceCulture = value;
60 | }
61 | }
62 |
63 | ///
64 | /// 查找类似 SetWorkingDir("$avspluginpath$")
65 | ///
66 | ///LoadPlugin("dither-1.23.0\avstp.dll")
67 | ///LoadPlugin("SmoothAdjust-v2.80\avs-2.6.x\x86\SmoothAdjust.dll")
68 | ///LoadPlugin("masktools-26-for-2.6alpha4\mt_masktools-26.dll")
69 | ///LoadPlugin("nnedi3-0.9.4\nnedi3.dll")
70 | ///Import("masktools-v2.0a48\masktools\LimitedSharpenFaster.avsi")
71 | ///Import("masktools-v2.0a48\masktools\mfToon-v0.54.avsi")
72 | ///Import("masktools-v2.0a48\masktools\vmToon-v0.74.avsi")
73 | ///LoadPlugin("dither-1.23.0\dither.dll")
74 | ///Import("dither-1.23.0\dither.avsi")
75 | ///Import("O16mod_ [字符串的其余部分被截断]"; 的本地化字符串。
76 | ///
77 | internal static string AvsScriptTemplete {
78 | get {
79 | return ResourceManager.GetString("AvsScriptTemplete", resourceCulture);
80 | }
81 | }
82 |
83 | ///
84 | /// 查找类似 --x264-binary "$x264execute$" --input-csp i444 --output-csp i444 --input-depth $depth$ --input-range pc --range pc --colormatrix $colormatrix$ --crf $crf$ --preset $preset$ $tune$ $userargs$ --output "$outputfile$" "$intputavs$" 的本地化字符串。
85 | ///
86 | internal static string x264Line {
87 | get {
88 | return ResourceManager.GetString("x264Line", resourceCulture);
89 | }
90 | }
91 | }
92 | }
93 |
--------------------------------------------------------------------------------
/LosslessAviRgbConverter/VedioConfig.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace LosslessAviRgbConverter
7 | {
8 | public class VedioConfig
9 | {
10 | public float crf = 25f;
11 | public int depth = 10;
12 | public string preset = "slow";
13 | public string tune = "";
14 | public string UserArgs = "";
15 | public bool Resize = false;
16 | public int Width = 1920;
17 | public int Height = 1080;
18 | public string InputColorMatrix = "RGB24";
19 | public ColorMatrix ColorMatrix = ColorMatrix.bt709;
20 |
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # EasyX265EncoderGui
2 | 在原有的x264批量转码基础上转换为x265转码,这是一个方便使用的x265批量转码GUI,支持裸压,avs,x265 main10等操作。还附带了一些其他音频转码转封装的GUI工具。
3 |
4 | 目前在百度贴吧此帖更新发布版:
5 | http://tieba.baidu.com/p/3795315123
6 |
--------------------------------------------------------------------------------
/TestConsole/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/TestConsole/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.IO;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace TestConsole
10 | {
11 | class Program
12 | {
13 | static void Main(string[] args)
14 | {
15 | VSx265();
16 | }
17 |
18 | private static void x264tmod()
19 | {
20 |
21 | ProcessStartInfo processinfo = new ProcessStartInfo();
22 | processinfo.FileName = "tools\\x264_64_tMod-8bit-all.exe";
23 |
24 | processinfo.Arguments = " --demuxer lavf -o output1.mp4 \"E:\\BaiduYunDownload\\[13.10.28] 2013 한류드림콘서트 티아라 [ Number 9 + 빛(All the cast) ]-io.ts\"";
25 | processinfo.UseShellExecute = false; //输出信息重定向
26 | processinfo.CreateNoWindow = false;
27 | processinfo.RedirectStandardInput = false;
28 | processinfo.RedirectStandardOutput = false;
29 | processinfo.RedirectStandardError = false;
30 | processinfo.WindowStyle = ProcessWindowStyle.Normal;
31 | Process ffmpeg = new Process();
32 | ffmpeg.StartInfo = processinfo;
33 | ffmpeg.Start();
34 |
35 | //var result = ffmpeg.StandardOutput.ReadToEnd();
36 | ffmpeg.WaitForExit();
37 | //ffmpeg.Kill();//等待进程结束
38 | ffmpeg.Dispose();
39 | }
40 |
41 | private static void ffmpegpipex264()
42 | {
43 | ProcessStartInfo processinfo = new ProcessStartInfo();
44 | processinfo.FileName = Environment.GetEnvironmentVariable("ComSpec");
45 |
46 | processinfo.Arguments = "/c " + "tools\\ffmpeg -i \"E:\\BaiduYunDownload\\[13.10.28] 2013 한류드림콘서트 티아라 [ Number 9 + 빛(All the cast) ]-io.ts\" " +
47 | "-f yuv4mpegpipe -pix_fmt yuv444p -an -v 0 -| tools\\x264_64_tMod-8bit-all.exe --output-csp i444 --demuxer y4m -o output1.mp4 -";
48 | processinfo.UseShellExecute = false; //输出信息重定向
49 | processinfo.CreateNoWindow = false;
50 | processinfo.RedirectStandardInput = false;
51 | processinfo.RedirectStandardOutput = false;
52 | processinfo.RedirectStandardError = false;
53 | processinfo.WindowStyle = ProcessWindowStyle.Normal;
54 | Process ffmpeg = new Process();
55 | ffmpeg.StartInfo = processinfo;
56 | ffmpeg.Start();
57 |
58 | //var result = ffmpeg.StandardOutput.ReadToEnd();
59 | ffmpeg.WaitForExit();
60 | //ffmpeg.Kill();//等待进程结束
61 | ffmpeg.Dispose();
62 | }
63 |
64 | private static void VSx265()
65 | {
66 | ProcessStartInfo processinfo = new ProcessStartInfo();
67 | var bat = "\"D:\\Program Files (x86)\\VapourSynth\\core64\\vspipe.exe\" --y4m \"D:\\do.vpy\" - | \"D:\\简单x265批量转码\\tools\\x265-16bit-full.exe\" --y4m --preset medium --merange 25 --no-rect --no-sao --input-depth 10 -o \"somename.mkv\" - ";
68 | var tempfile = "12345.bat";
69 | File.WriteAllText(tempfile, bat, Encoding.Default);
70 | processinfo.FileName = tempfile;
71 | Process ffmpeg = new Process();
72 | ffmpeg.StartInfo = processinfo;
73 | ffmpeg.Start();
74 | }
75 | }
76 | }
77 |
--------------------------------------------------------------------------------
/TestConsole/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // 有关程序集的常规信息通过以下
6 | // 特性集控制。更改这些特性值可修改
7 | // 与程序集关联的信息。
8 | [assembly: AssemblyTitle("TestConsole")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("TestConsole")]
13 | [assembly: AssemblyCopyright("Copyright © 2013")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // 将 ComVisible 设置为 false 使此程序集中的类型
18 | // 对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型,
19 | // 则将该类型上的 ComVisible 特性设置为 true。
20 | [assembly: ComVisible(false)]
21 |
22 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
23 | [assembly: Guid("4dd871f9-0a50-45db-8204-92c26c88e39e")]
24 |
25 | // 程序集的版本信息由下面四个值组成:
26 | //
27 | // 主版本
28 | // 次版本
29 | // 生成号
30 | // 修订号
31 | //
32 | // 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
33 | // 方法是按如下所示使用“*”:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/TestConsole/TestConsole.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {E9DBF248-8017-4E56-AF0A-860EC116F192}
8 | Exe
9 | Properties
10 | TestConsole
11 | TestConsole
12 | v4.5.1
13 | 512
14 | publish\
15 | true
16 | Disk
17 | false
18 | Foreground
19 | 7
20 | Days
21 | false
22 | false
23 | true
24 | 0
25 | 1.0.0.%2a
26 | false
27 | false
28 | true
29 |
30 |
31 | AnyCPU
32 | true
33 | full
34 | false
35 | bin\Debug\
36 | DEBUG;TRACE
37 | prompt
38 | 4
39 | false
40 |
41 |
42 | AnyCPU
43 | pdbonly
44 | true
45 | bin\Release\
46 | TRACE
47 | prompt
48 | 4
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 | False
69 | Microsoft .NET Framework 4.5 %28x86 and x64%29
70 | true
71 |
72 |
73 | False
74 | .NET Framework 3.5 SP1 Client Profile
75 | false
76 |
77 |
78 | False
79 | .NET Framework 3.5 SP1
80 | false
81 |
82 |
83 |
84 |
91 |
--------------------------------------------------------------------------------
/ToolSet/CommandLine/Eac3toCommand.cs:
--------------------------------------------------------------------------------
1 | using CommonLibrary;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Diagnostics;
5 | using System.IO;
6 | using System.Linq;
7 | using System.Text;
8 | using ToolSet;
9 |
10 |
11 | public class Eac3toCommand
12 | {
13 | public static string Eac3toExecute = "tools" + Path.DirectorySeparatorChar + "eac3to.exe";
14 |
15 | public static void ConvertMusic(string input, string output, string q, string tracker)
16 | {
17 | string bat = string.Format("{0} {3}: {1} -q {2}", input, q, output, tracker);
18 | ProcessCmd.Run(Eac3toExecute, bat);
19 | }
20 | }
21 |
22 |
23 |
--------------------------------------------------------------------------------
/ToolSet/CommandLine/MkvMergeCommand.cs:
--------------------------------------------------------------------------------
1 | using CommonLibrary;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.IO;
5 | using System.Linq;
6 | using System.Text;
7 |
8 | namespace ToolSet
9 | {
10 | public class MkvMergeCommand
11 | {
12 | public static string MkvMergeExcute = "tools" + Path.DirectorySeparatorChar + "mkvmerge.exe";
13 |
14 | public static void MkvMux(string vedio, string outfile)
15 | {
16 |
17 | string Arguments = $"--output {outfile.Maohao()} ( { vedio.Maohao()} )";
18 | ProcessCmd.Run(MkvMergeExcute, Arguments);
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/ToolSet/CommandLine/Mp4boxCommand.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Text;
6 | using CommonLibrary;
7 |
8 | namespace ToolSet
9 | {
10 | public class Mp4boxCommand
11 | {
12 | public static string Mp4boxExcute = "tools" + Path.DirectorySeparatorChar + "mp4box.exe";
13 |
14 | public static void Extract(string filename, string ID)
15 | {
16 | ProcessCmd.Run(Mp4boxExcute, string.Format("{0 } -raw {1}", filename, ID));
17 | }
18 |
19 | public static void Mp4boxMux(string vedio, string audio, string outfile, int audiodelay = 0)
20 | {
21 |
22 | string Arguments = string.Format("-add \"{1}\" -add \"{2}\" {3} \"{0}\"",
23 | outfile, vedio, audio, audiodelay == 0 ? "" : ("-delay 2=" + audiodelay)
24 | );
25 | ProcessCmd.Run(Mp4boxExcute, Arguments);
26 | }
27 |
28 |
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/ToolSet/CommandLine/ffmpegCommand.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Text;
6 | using CommonLibrary;
7 |
8 | namespace ToolSet
9 | {
10 | public class ffmpegCommand
11 | {
12 | public static string FFmpegExecute = "tools" + Path.DirectorySeparatorChar + "ffmpeg.exe";
13 |
14 | //分离视频文件
15 | public static void DemuxVedio(string vedio, string output)
16 | {
17 | ProcessCmd.Run(FFmpegExecute, string.Format(" -i {0} -vcodec copy -an {1} ", vedio.Maohao(), output.Maohao()));
18 | }
19 |
20 | //分离音频文件
21 | public static void DemuxAudio(string vedio, string output)
22 | {
23 | ProcessCmd.Run(FFmpegExecute, string.Format(" -i {0} -acodec copy -vn {1} ", vedio.Maohao(), output.Maohao()));
24 | }
25 |
26 | //转封装
27 | public static void ChangeMux(string vedio, string output)
28 | {
29 | ProcessCmd.Run(FFmpegExecute, string.Format("-i {0} -vcodec copy -acodec copy {1} ", vedio.Maohao(), output.Maohao()));
30 | }
31 |
32 | //混流
33 | public static void Mux(string vedio, string audio, string output)
34 | {
35 | ProcessCmd.Run(FFmpegExecute, string.Format(" -i {0} -vcodec copy -i {1} -acodec copy {3}", vedio.Maohao(), audio.Maohao(), output.Maohao()));
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/ToolSet/Form1.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 | 17, 17
122 |
123 |
124 | 138, 17
125 |
126 |
--------------------------------------------------------------------------------
/ToolSet/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Windows.Forms;
5 |
6 | namespace ToolSet
7 | {
8 | static class Program
9 | {
10 | ///
11 | /// 应用程序的主入口点。
12 | ///
13 | [STAThread]
14 | static void Main()
15 | {
16 | Application.EnableVisualStyles();
17 | Application.SetCompatibleTextRenderingDefault(false);
18 | Application.Run(new Form1());
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/ToolSet/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // 有关程序集的常规信息通过以下
6 | // 特性集控制。更改这些特性值可修改
7 | // 与程序集关联的信息。
8 | [assembly: AssemblyTitle("ToolSet")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("ToolSet")]
13 | [assembly: AssemblyCopyright("Copyright © 2014")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // 将 ComVisible 设置为 false 使此程序集中的类型
18 | // 对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型,
19 | // 则将该类型上的 ComVisible 特性设置为 true。
20 | [assembly: ComVisible(false)]
21 |
22 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
23 | [assembly: Guid("1e0c58ec-b31d-4094-a224-d776059a035c")]
24 |
25 | // 程序集的版本信息由下面四个值组成:
26 | //
27 | // 主版本
28 | // 次版本
29 | // 生成号
30 | // 修订号
31 | //
32 | // 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
33 | // 方法是按如下所示使用“*”:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.1")]
36 | [assembly: AssemblyFileVersion("1.0.0.1")]
37 |
--------------------------------------------------------------------------------
/ToolSet/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // 此代码由工具生成。
4 | // 运行时版本:4.0.30319.34003
5 | //
6 | // 对此文件的更改可能会导致不正确的行为,并且如果
7 | // 重新生成代码,这些更改将会丢失。
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace ToolSet.Properties {
12 | using System;
13 |
14 |
15 | ///
16 | /// 一个强类型的资源类,用于查找本地化的字符串等。
17 | ///
18 | // 此类是由 StronglyTypedResourceBuilder
19 | // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
20 | // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
21 | // (以 /str 作为命令选项),或重新生成 VS 项目。
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources {
26 |
27 | private static global::System.Resources.ResourceManager resourceMan;
28 |
29 | private static global::System.Globalization.CultureInfo resourceCulture;
30 |
31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
32 | internal Resources() {
33 | }
34 |
35 | ///
36 | /// 返回此类使用的缓存的 ResourceManager 实例。
37 | ///
38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
39 | internal static global::System.Resources.ResourceManager ResourceManager {
40 | get {
41 | if (object.ReferenceEquals(resourceMan, null)) {
42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ToolSet.Properties.Resources", typeof(Resources).Assembly);
43 | resourceMan = temp;
44 | }
45 | return resourceMan;
46 | }
47 | }
48 |
49 | ///
50 | /// 使用此强类型资源类,为所有资源查找
51 | /// 重写当前线程的 CurrentUICulture 属性。
52 | ///
53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
54 | internal static global::System.Globalization.CultureInfo Culture {
55 | get {
56 | return resourceCulture;
57 | }
58 | set {
59 | resourceCulture = value;
60 | }
61 | }
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/ToolSet/Properties/Resources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | text/microsoft-resx
107 |
108 |
109 | 2.0
110 |
111 |
112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
113 |
114 |
115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
--------------------------------------------------------------------------------
/ToolSet/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // 此代码由工具生成。
4 | // 运行时版本:4.0.30319.34003
5 | //
6 | // 对此文件的更改可能会导致不正确的行为,并且如果
7 | // 重新生成代码,这些更改将会丢失。
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace ToolSet.Properties {
12 |
13 |
14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")]
16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
17 |
18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
19 |
20 | public static Settings Default {
21 | get {
22 | return defaultInstance;
23 | }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/ToolSet/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ToolSet/TextChangedEventArgs.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace ToolSet
7 | {
8 | public class TextChangedEventArgs : EventArgs
9 | {
10 | private string test;
11 |
12 | public string Text
13 | {
14 | get { return test; }
15 | set { test = value; }
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ToolSet/TextboxFile.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace ToolSet
2 | {
3 | partial class TextboxFile
4 | {
5 | ///
6 | /// 必需的设计器变量。
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// 清理所有正在使用的资源。
12 | ///
13 | /// 如果应释放托管资源,为 true;否则为 false。
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region 组件设计器生成的代码
24 |
25 | ///
26 | /// 设计器支持所需的方法 - 不要
27 | /// 使用代码编辑器修改此方法的内容。
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.btnbowser = new System.Windows.Forms.Button();
32 | this.txtFileName = new System.Windows.Forms.TextBox();
33 | this.SuspendLayout();
34 | //
35 | // btnbowser
36 | //
37 | this.btnbowser.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
38 | this.btnbowser.Location = new System.Drawing.Point(372, 0);
39 | this.btnbowser.Name = "btnbowser";
40 | this.btnbowser.Size = new System.Drawing.Size(56, 21);
41 | this.btnbowser.TabIndex = 0;
42 | this.btnbowser.Text = "浏览";
43 | this.btnbowser.UseVisualStyleBackColor = true;
44 | this.btnbowser.Click += new System.EventHandler(this.btnbowser_Click);
45 | //
46 | // txtFileName
47 | //
48 | this.txtFileName.AllowDrop = true;
49 | this.txtFileName.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
50 | | System.Windows.Forms.AnchorStyles.Left)
51 | | System.Windows.Forms.AnchorStyles.Right)));
52 | this.txtFileName.Location = new System.Drawing.Point(0, 0);
53 | this.txtFileName.Name = "txtFileName";
54 | this.txtFileName.Size = new System.Drawing.Size(366, 21);
55 | this.txtFileName.TabIndex = 1;
56 | this.txtFileName.TextChanged += new System.EventHandler(this.txtFileName_TextChanged);
57 | this.txtFileName.DragDrop += new System.Windows.Forms.DragEventHandler(this.txtFileName_DragDrop);
58 | this.txtFileName.DragEnter += new System.Windows.Forms.DragEventHandler(this.txtFileName_DragEnter);
59 | //
60 | // TextboxFile
61 | //
62 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
63 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
64 | this.Controls.Add(this.txtFileName);
65 | this.Controls.Add(this.btnbowser);
66 | this.Name = "TextboxFile";
67 | this.Size = new System.Drawing.Size(428, 23);
68 | this.ResumeLayout(false);
69 | this.PerformLayout();
70 |
71 | }
72 |
73 | #endregion
74 |
75 | private System.Windows.Forms.Button btnbowser;
76 | private System.Windows.Forms.TextBox txtFileName;
77 | }
78 | }
79 |
--------------------------------------------------------------------------------
/ToolSet/TextboxFile.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.ComponentModel;
4 | using System.Drawing;
5 | using System.Data;
6 | using System.Linq;
7 | using System.Text;
8 | using System.Windows.Forms;
9 | using System.IO;
10 |
11 | namespace ToolSet
12 | {
13 | public partial class TextboxFile : UserControl
14 | {
15 | public TextboxFile()
16 | {
17 | InitializeComponent();
18 | }
19 | public override string Text
20 | {
21 | get
22 | {
23 | return this.txtFileName.Text;
24 | }
25 | set
26 | {
27 | this.txtFileName.Text = value;
28 | }
29 | }
30 |
31 | private void txtFileName_DragDrop(object sender, DragEventArgs e)
32 | {
33 | string[] s = (string[])e.Data.GetData(DataFormats.FileDrop, false);
34 |
35 | foreach (string path in s)
36 | {
37 | if (!File.GetAttributes(path).HasFlag(FileAttributes.Directory))
38 | {
39 | txtFileName.Text = path;
40 | }
41 |
42 | }
43 | }
44 |
45 | private void txtFileName_DragEnter(object sender, DragEventArgs e)
46 | {
47 | if (e.Data.GetDataPresent(DataFormats.FileDrop))
48 | e.Effect = DragDropEffects.All;
49 | else
50 | e.Effect = DragDropEffects.None;
51 | }
52 | private string filter = "所有文件|*";
53 | public string Filter
54 | {
55 | set { filter = value; }
56 | get { return filter; }
57 | }
58 | private void btnbowser_Click(object sender, EventArgs e)
59 | {
60 | OpenFileDialog ofd = new OpenFileDialog();
61 | ofd.Filter = filter;
62 | var result = ofd.ShowDialog();
63 | if (result == System.Windows.Forms.DialogResult.OK)
64 | {
65 | foreach (string fullname in ofd.FileNames)
66 | {
67 | txtFileName.Text = fullname;
68 | }
69 | }
70 | }
71 |
72 | [EditorBrowsable(EditorBrowsableState.Always)]
73 | [Browsable(true)]
74 | public new event TextChangedEventHandler TextChanged;
75 | public delegate void TextChangedEventHandler(object sender, TextChangedEventArgs e);
76 | private void txtFileName_TextChanged(object sender, EventArgs e)
77 | {
78 | if (TextChanged != null)
79 | {
80 | TextChanged.Invoke(txtFileName, new TextChangedEventArgs() { Text = txtFileName.Text });
81 | }
82 | }
83 | }
84 | }
85 |
--------------------------------------------------------------------------------
/ToolSet/TextboxFile.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/ToolSet/ToolSet.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {5D8E769A-283E-42F9-897D-ADCB4BD4258A}
8 | WinExe
9 | Properties
10 | ToolSet
11 | ToolSet
12 | v4.5.1
13 | 512
14 |
15 |
16 |
17 |
18 | AnyCPU
19 | true
20 | full
21 | false
22 | F:\Easyx265Gui\
23 | DEBUG;TRACE
24 | prompt
25 | 0
26 |
27 |
28 | AnyCPU
29 | pdbonly
30 | true
31 | bin\Release\
32 | TRACE
33 | prompt
34 | 4
35 |
36 |
37 |
38 | ToolSet.Program
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 | Form
63 |
64 |
65 | Form1.cs
66 |
67 |
68 |
69 |
70 | UserControl
71 |
72 |
73 | TextboxFile.cs
74 |
75 |
76 |
77 | Form1.cs
78 |
79 |
80 | ResXFileCodeGenerator
81 | Resources.Designer.cs
82 | Designer
83 |
84 |
85 | True
86 | Resources.resx
87 | True
88 |
89 |
90 | TextboxFile.cs
91 |
92 |
93 |
94 | SettingsSingleFileGenerator
95 | Settings.Designer.cs
96 |
97 |
98 | True
99 | Settings.settings
100 | True
101 |
102 |
103 |
104 |
105 | {ed4fd018-9180-40d3-8fde-fb191c99ae17}
106 | CommonLibrary
107 |
108 |
109 | {673734b7-2c76-4b2a-8261-0157c987c1a8}
110 | FlvBugger
111 |
112 |
113 |
114 |
121 |
--------------------------------------------------------------------------------
/ToolSet/app.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------