├── .gitignore
├── App.xaml
├── App.xaml.cs
├── Assets
├── LargeTile.scale-100.png
├── LargeTile.scale-125.png
├── LargeTile.scale-150.png
├── LargeTile.scale-200.png
├── LargeTile.scale-400.png
├── LockScreenLogo.scale-200.png
├── SmallTile.scale-100.png
├── SmallTile.scale-125.png
├── SmallTile.scale-150.png
├── SmallTile.scale-200.png
├── SmallTile.scale-400.png
├── SplashScreen.scale-100.png
├── SplashScreen.scale-125.png
├── SplashScreen.scale-150.png
├── SplashScreen.scale-200.png
├── SplashScreen.scale-400.png
├── Square150x150Logo.scale-100.png
├── Square150x150Logo.scale-125.png
├── Square150x150Logo.scale-150.png
├── Square150x150Logo.scale-200.png
├── Square150x150Logo.scale-400.png
├── Square44x44Logo.altform-lightunplated_targetsize-16.png
├── Square44x44Logo.altform-lightunplated_targetsize-24.png
├── Square44x44Logo.altform-lightunplated_targetsize-256.png
├── Square44x44Logo.altform-lightunplated_targetsize-32.png
├── Square44x44Logo.altform-lightunplated_targetsize-48.png
├── Square44x44Logo.altform-unplated_targetsize-16.png
├── Square44x44Logo.altform-unplated_targetsize-256.png
├── Square44x44Logo.altform-unplated_targetsize-32.png
├── Square44x44Logo.altform-unplated_targetsize-48.png
├── Square44x44Logo.scale-100.png
├── Square44x44Logo.scale-125.png
├── Square44x44Logo.scale-150.png
├── Square44x44Logo.scale-200.png
├── Square44x44Logo.scale-400.png
├── Square44x44Logo.targetsize-16.png
├── Square44x44Logo.targetsize-24.png
├── Square44x44Logo.targetsize-24_altform-unplated.png
├── Square44x44Logo.targetsize-256.png
├── Square44x44Logo.targetsize-32.png
├── Square44x44Logo.targetsize-48.png
├── StoreLogo.backup.png
├── StoreLogo.scale-100.png
├── StoreLogo.scale-125.png
├── StoreLogo.scale-150.png
├── StoreLogo.scale-200.png
├── StoreLogo.scale-400.png
├── Wide310x150Logo.scale-100.png
├── Wide310x150Logo.scale-125.png
├── Wide310x150Logo.scale-150.png
├── Wide310x150Logo.scale-200.png
└── Wide310x150Logo.scale-400.png
├── Document
└── mainpage.md
├── FFmpegService
├── FfmpegService.cs
└── IFfmpegService.cs
├── FFmpegWinUI.csproj
├── FFmpegWinUI.csproj.user
├── FFmpegWinUI.sln
├── Info.xaml
├── Info.xaml.cs
├── LICENSE
├── MainWindow.xaml
├── MainWindow.xaml.cs
├── NavigationBadgeHelper.cs
├── Package.appxmanifest
├── Page
├── Home.xaml
├── Home.xaml.cs
├── Transcoder.xaml
└── Transcoder.xaml.cs
├── Properties
└── PublishProfiles
│ ├── win-arm64.pubxml
│ ├── win-arm64.pubxml.user
│ ├── win-x64.pubxml
│ └── win-x86.pubxml
├── README.md
├── Settings.xaml
├── Settings.xaml.cs
└── app.manifest
/.gitignore:
--------------------------------------------------------------------------------
1 | ################################################################################
2 | # 此 .gitignore 文件已由 Microsoft(R) Visual Studio 自动创建。
3 | ################################################################################
4 |
5 | /bin/x64/Debug/net8.0-windows10.0.19041.0/win-x64
6 |
7 | # VS2022 相关文件
8 | .vs/
9 | bin/
10 | obj/
11 |
12 | # 依赖项(如果使用)
13 | node_modules/
14 | packages/
15 |
16 | # 日志文件
17 | *.log
18 |
19 | # 编译文件
20 | *.dll
21 | *.exe
22 |
23 | # 配置文件(如果有敏感信息)
24 | *.config
25 | *.json
--------------------------------------------------------------------------------
/App.xaml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/App.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Runtime.InteropServices.WindowsRuntime;
6 | using FFmpegWinUI.FFmpegService;
7 | using Microsoft.UI.Xaml;
8 | using Microsoft.UI.Xaml.Controls;
9 | using Microsoft.UI.Xaml.Controls.Primitives;
10 | using Microsoft.UI.Xaml.Data;
11 | using Microsoft.UI.Xaml.Input;
12 | using Microsoft.UI.Xaml.Media;
13 | using Microsoft.UI.Xaml.Navigation;
14 | using Microsoft.UI.Xaml.Shapes;
15 | using Windows.ApplicationModel;
16 | using Windows.ApplicationModel.Activation;
17 | using Windows.Foundation;
18 | using Windows.Foundation.Collections;
19 |
20 | // To learn more about WinUI, the WinUI project structure,
21 | // and more about our project templates, see: http://aka.ms/winui-project-info.
22 |
23 | namespace FFmpegWinUI
24 | {
25 | ///
26 | /// Provides application-specific behavior to supplement the default Application class.
27 | ///
28 | public partial class App : Application
29 | {
30 | public static Window MainWindow { get; private set; }
31 | public static IFfmpegService FfmpegService { get; private set; }
32 |
33 | ///
34 | /// Initializes the singleton application object. This is the first line of authored code
35 | /// executed, and as such is the logical equivalent of main() or WinMain().
36 | ///
37 | public App()
38 | {
39 | InitializeComponent();
40 | UnhandledException += App_UnhandledException;
41 | }
42 |
43 | ///
44 | /// Invoked when the application is launched.
45 | ///
46 | /// Details about the launch request and process.
47 | protected override void OnLaunched(Microsoft.UI.Xaml.LaunchActivatedEventArgs args)
48 | {
49 | // 首先初始化服务
50 | FfmpegService = new FfmpegService(AppContext.BaseDirectory);
51 |
52 | MainWindow = new MainWindow();
53 | MainWindow.Activate();
54 | }
55 |
56 | private void App_UnhandledException(object sender, Microsoft.UI.Xaml.UnhandledExceptionEventArgs e)
57 | {
58 | e.Handled = true;
59 | }
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/Assets/LargeTile.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/LargeTile.scale-100.png
--------------------------------------------------------------------------------
/Assets/LargeTile.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/LargeTile.scale-125.png
--------------------------------------------------------------------------------
/Assets/LargeTile.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/LargeTile.scale-150.png
--------------------------------------------------------------------------------
/Assets/LargeTile.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/LargeTile.scale-200.png
--------------------------------------------------------------------------------
/Assets/LargeTile.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/LargeTile.scale-400.png
--------------------------------------------------------------------------------
/Assets/LockScreenLogo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/LockScreenLogo.scale-200.png
--------------------------------------------------------------------------------
/Assets/SmallTile.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/SmallTile.scale-100.png
--------------------------------------------------------------------------------
/Assets/SmallTile.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/SmallTile.scale-125.png
--------------------------------------------------------------------------------
/Assets/SmallTile.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/SmallTile.scale-150.png
--------------------------------------------------------------------------------
/Assets/SmallTile.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/SmallTile.scale-200.png
--------------------------------------------------------------------------------
/Assets/SmallTile.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/SmallTile.scale-400.png
--------------------------------------------------------------------------------
/Assets/SplashScreen.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/SplashScreen.scale-100.png
--------------------------------------------------------------------------------
/Assets/SplashScreen.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/SplashScreen.scale-125.png
--------------------------------------------------------------------------------
/Assets/SplashScreen.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/SplashScreen.scale-150.png
--------------------------------------------------------------------------------
/Assets/SplashScreen.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/SplashScreen.scale-200.png
--------------------------------------------------------------------------------
/Assets/SplashScreen.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/SplashScreen.scale-400.png
--------------------------------------------------------------------------------
/Assets/Square150x150Logo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/Square150x150Logo.scale-100.png
--------------------------------------------------------------------------------
/Assets/Square150x150Logo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/Square150x150Logo.scale-125.png
--------------------------------------------------------------------------------
/Assets/Square150x150Logo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/Square150x150Logo.scale-150.png
--------------------------------------------------------------------------------
/Assets/Square150x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/Square150x150Logo.scale-200.png
--------------------------------------------------------------------------------
/Assets/Square150x150Logo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/Square150x150Logo.scale-400.png
--------------------------------------------------------------------------------
/Assets/Square44x44Logo.altform-lightunplated_targetsize-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/Square44x44Logo.altform-lightunplated_targetsize-16.png
--------------------------------------------------------------------------------
/Assets/Square44x44Logo.altform-lightunplated_targetsize-24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/Square44x44Logo.altform-lightunplated_targetsize-24.png
--------------------------------------------------------------------------------
/Assets/Square44x44Logo.altform-lightunplated_targetsize-256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/Square44x44Logo.altform-lightunplated_targetsize-256.png
--------------------------------------------------------------------------------
/Assets/Square44x44Logo.altform-lightunplated_targetsize-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/Square44x44Logo.altform-lightunplated_targetsize-32.png
--------------------------------------------------------------------------------
/Assets/Square44x44Logo.altform-lightunplated_targetsize-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/Square44x44Logo.altform-lightunplated_targetsize-48.png
--------------------------------------------------------------------------------
/Assets/Square44x44Logo.altform-unplated_targetsize-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/Square44x44Logo.altform-unplated_targetsize-16.png
--------------------------------------------------------------------------------
/Assets/Square44x44Logo.altform-unplated_targetsize-256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/Square44x44Logo.altform-unplated_targetsize-256.png
--------------------------------------------------------------------------------
/Assets/Square44x44Logo.altform-unplated_targetsize-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/Square44x44Logo.altform-unplated_targetsize-32.png
--------------------------------------------------------------------------------
/Assets/Square44x44Logo.altform-unplated_targetsize-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/Square44x44Logo.altform-unplated_targetsize-48.png
--------------------------------------------------------------------------------
/Assets/Square44x44Logo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/Square44x44Logo.scale-100.png
--------------------------------------------------------------------------------
/Assets/Square44x44Logo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/Square44x44Logo.scale-125.png
--------------------------------------------------------------------------------
/Assets/Square44x44Logo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/Square44x44Logo.scale-150.png
--------------------------------------------------------------------------------
/Assets/Square44x44Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/Square44x44Logo.scale-200.png
--------------------------------------------------------------------------------
/Assets/Square44x44Logo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/Square44x44Logo.scale-400.png
--------------------------------------------------------------------------------
/Assets/Square44x44Logo.targetsize-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/Square44x44Logo.targetsize-16.png
--------------------------------------------------------------------------------
/Assets/Square44x44Logo.targetsize-24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/Square44x44Logo.targetsize-24.png
--------------------------------------------------------------------------------
/Assets/Square44x44Logo.targetsize-24_altform-unplated.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
--------------------------------------------------------------------------------
/Assets/Square44x44Logo.targetsize-256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/Square44x44Logo.targetsize-256.png
--------------------------------------------------------------------------------
/Assets/Square44x44Logo.targetsize-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/Square44x44Logo.targetsize-32.png
--------------------------------------------------------------------------------
/Assets/Square44x44Logo.targetsize-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/Square44x44Logo.targetsize-48.png
--------------------------------------------------------------------------------
/Assets/StoreLogo.backup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/StoreLogo.backup.png
--------------------------------------------------------------------------------
/Assets/StoreLogo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/StoreLogo.scale-100.png
--------------------------------------------------------------------------------
/Assets/StoreLogo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/StoreLogo.scale-125.png
--------------------------------------------------------------------------------
/Assets/StoreLogo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/StoreLogo.scale-150.png
--------------------------------------------------------------------------------
/Assets/StoreLogo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/StoreLogo.scale-200.png
--------------------------------------------------------------------------------
/Assets/StoreLogo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/StoreLogo.scale-400.png
--------------------------------------------------------------------------------
/Assets/Wide310x150Logo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/Wide310x150Logo.scale-100.png
--------------------------------------------------------------------------------
/Assets/Wide310x150Logo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/Wide310x150Logo.scale-125.png
--------------------------------------------------------------------------------
/Assets/Wide310x150Logo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/Wide310x150Logo.scale-150.png
--------------------------------------------------------------------------------
/Assets/Wide310x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/Wide310x150Logo.scale-200.png
--------------------------------------------------------------------------------
/Assets/Wide310x150Logo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Assets/Wide310x150Logo.scale-400.png
--------------------------------------------------------------------------------
/Document/mainpage.md:
--------------------------------------------------------------------------------
1 | ## 如何在其他页面控制“设置”导航项的 InfoBadge(角标)
2 |
3 | 你可以通过静态帮助类 `NavigationBadgeHelper` 在任意页面显示或隐藏“设置”项的 InfoBadge。例如:
4 |
5 | ```Csharp
6 | // 显示角标 NavigationBadgeHelper.SetSettingsInfoBadgeVisible(true);
7 | // 隐藏角标 NavigationBadgeHelper.SetSettingsInfoBadgeVisible(false);
8 | ```
9 |
10 | 只需在需要的地方调用上述方法,无需直接操作 MainWindow 实例。
--------------------------------------------------------------------------------
/FFmpegService/FfmpegService.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/FFmpegService/FfmpegService.cs
--------------------------------------------------------------------------------
/FFmpegService/IFfmpegService.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/FFmpegService/IFfmpegService.cs
--------------------------------------------------------------------------------
/FFmpegWinUI.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | WinExe
4 | net8.0-windows10.0.19041.0
5 | 10.0.17763.0
6 | FFmpegWinUI
7 | app.manifest
8 | x86;x64;ARM64
9 | win-x86;win-x64;win-arm64
10 | win-$(Platform).pubxml
11 | true
12 | None
13 | true
14 | enable
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 | MSBuild:Compile
51 |
52 |
53 |
54 |
55 | MSBuild:Compile
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 | MSBuild:Compile
64 |
65 |
66 |
67 |
68 | MSBuild:Compile
69 |
70 |
71 |
72 |
77 |
78 | true
79 |
80 |
81 |
82 |
83 | False
84 | True
85 | False
86 | True
87 | zh-CN
88 |
89 |
--------------------------------------------------------------------------------
/FFmpegWinUI.csproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ProjectDebugger
5 |
6 |
7 | FFmpegWinUI (Unpackaged)
8 | G:\Work\Ai工程文件\ffmpegUI\1x\UWP画板 1.png
9 | G:\Work\Ai工程文件\ffmpegUI\1x\UWP画板 1.png
10 | G:\Work\Ai工程文件\ffmpegUI\1x\UWP画板 1.png
11 | G:\Work\Ai工程文件\ffmpegUI\1x\UWP画板 1.png
12 | G:\Work\Ai工程文件\ffmpegUI\1x\UWP画板 1.png
13 | G:\Work\Ai工程文件\ffmpegUI\1x\UWP画板 1.png
14 | G:\Work\Ai工程文件\ffmpegUI\1x\UWP画板 1.png
15 | G:\Work\Ai工程文件\ffmpegUI\1x\UWP画板 1.png
16 | <_LastSelectedProfileId>C:\Users\27180\source\repos\FFmpegFreeUI\Properties\PublishProfiles\win-arm64.pubxml
17 |
18 |
19 |
20 | Designer
21 |
22 |
23 | Designer
24 |
25 |
26 | Designer
27 |
28 |
29 | Designer
30 |
31 |
32 | Designer
33 |
34 |
35 | Designer
36 |
37 |
38 | Designer
39 |
40 |
41 |
--------------------------------------------------------------------------------
/FFmpegWinUI.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 17
4 | VisualStudioVersion = 17.14.36119.2
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFmpegWinUI", "FFmpegWinUI.csproj", "{12849900-9925-42AD-B96B-B120A60C1485}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|ARM64 = Debug|ARM64
11 | Debug|x64 = Debug|x64
12 | Debug|x86 = Debug|x86
13 | Release|ARM64 = Release|ARM64
14 | Release|x64 = Release|x64
15 | Release|x86 = Release|x86
16 | EndGlobalSection
17 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
18 | {12849900-9925-42AD-B96B-B120A60C1485}.Debug|ARM64.ActiveCfg = Debug|ARM64
19 | {12849900-9925-42AD-B96B-B120A60C1485}.Debug|ARM64.Build.0 = Debug|ARM64
20 | {12849900-9925-42AD-B96B-B120A60C1485}.Debug|ARM64.Deploy.0 = Debug|ARM64
21 | {12849900-9925-42AD-B96B-B120A60C1485}.Debug|x64.ActiveCfg = Debug|x64
22 | {12849900-9925-42AD-B96B-B120A60C1485}.Debug|x64.Build.0 = Debug|x64
23 | {12849900-9925-42AD-B96B-B120A60C1485}.Debug|x64.Deploy.0 = Debug|x64
24 | {12849900-9925-42AD-B96B-B120A60C1485}.Debug|x86.ActiveCfg = Debug|x86
25 | {12849900-9925-42AD-B96B-B120A60C1485}.Debug|x86.Build.0 = Debug|x86
26 | {12849900-9925-42AD-B96B-B120A60C1485}.Debug|x86.Deploy.0 = Debug|x86
27 | {12849900-9925-42AD-B96B-B120A60C1485}.Release|ARM64.ActiveCfg = Release|ARM64
28 | {12849900-9925-42AD-B96B-B120A60C1485}.Release|ARM64.Build.0 = Release|ARM64
29 | {12849900-9925-42AD-B96B-B120A60C1485}.Release|ARM64.Deploy.0 = Release|ARM64
30 | {12849900-9925-42AD-B96B-B120A60C1485}.Release|x64.ActiveCfg = Release|x64
31 | {12849900-9925-42AD-B96B-B120A60C1485}.Release|x64.Build.0 = Release|x64
32 | {12849900-9925-42AD-B96B-B120A60C1485}.Release|x64.Deploy.0 = Release|x64
33 | {12849900-9925-42AD-B96B-B120A60C1485}.Release|x86.ActiveCfg = Release|x86
34 | {12849900-9925-42AD-B96B-B120A60C1485}.Release|x86.Build.0 = Release|x86
35 | {12849900-9925-42AD-B96B-B120A60C1485}.Release|x86.Deploy.0 = Release|x86
36 | EndGlobalSection
37 | GlobalSection(SolutionProperties) = preSolution
38 | HideSolutionNode = FALSE
39 | EndGlobalSection
40 | GlobalSection(ExtensibilityGlobals) = postSolution
41 | SolutionGuid = {CC0CBF33-F692-460F-9E0B-B3B835374021}
42 | EndGlobalSection
43 | EndGlobal
44 |
--------------------------------------------------------------------------------
/Info.xaml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Info.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Runtime.InteropServices.WindowsRuntime;
6 | using Windows.Foundation;
7 | using Windows.Foundation.Collections;
8 | using Microsoft.UI.Xaml;
9 | using Microsoft.UI.Xaml.Controls;
10 | using Microsoft.UI.Xaml.Controls.Primitives;
11 | using Microsoft.UI.Xaml.Data;
12 | using Microsoft.UI.Xaml.Input;
13 | using Microsoft.UI.Xaml.Media;
14 | using Microsoft.UI.Xaml.Navigation;
15 |
16 | // To learn more about WinUI, the WinUI project structure,
17 | // and more about our project templates, see: http://aka.ms/winui-project-info.
18 |
19 | namespace FFmpegWinUI;
20 |
21 | ///
22 | /// An empty page that can be used on its own or navigated to within a Frame.
23 | ///
24 | public sealed partial class Info : Microsoft.UI.Xaml.Controls.Page
25 | {
26 | public Info()
27 | {
28 | InitializeComponent();
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2025 liu_bili_Grass
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/MainWindow.xaml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/MainWindow.xaml.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/MainWindow.xaml.cs
--------------------------------------------------------------------------------
/NavigationBadgeHelper.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/NavigationBadgeHelper.cs
--------------------------------------------------------------------------------
/Package.appxmanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 |
14 |
15 |
16 |
17 |
18 | FFmpegWinUI
19 | 27180
20 | Assets\StoreLogo.png
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
36 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/Page/Home.xaml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/Page/Home.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Runtime.InteropServices.WindowsRuntime;
6 | using Windows.Foundation;
7 | using Windows.Foundation.Collections;
8 | using Microsoft.UI.Xaml;
9 | using Microsoft.UI.Xaml.Controls;
10 | using Microsoft.UI.Xaml.Controls.Primitives;
11 | using Microsoft.UI.Xaml.Data;
12 | using Microsoft.UI.Xaml.Input;
13 | using Microsoft.UI.Xaml.Media;
14 | using Microsoft.UI.Xaml.Navigation;
15 |
16 | // To learn more about WinUI, the WinUI project structure,
17 | // and more about our project templates, see: http://aka.ms/winui-project-info.
18 |
19 | namespace FFmpegWinUI.Page
20 | {
21 | ///
22 | /// An empty page that can be used on its own or navigated to within a Frame.
23 | ///
24 | public sealed partial class Home : Microsoft.UI.Xaml.Controls.Page
25 | {
26 | public Home()
27 | {
28 | InitializeComponent();
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/Page/Transcoder.xaml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Page/Transcoder.xaml.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.UI.Xaml;
2 | using Microsoft.UI.Xaml.Controls;
3 | using Microsoft.UI.Xaml.Controls.Primitives;
4 | using Microsoft.UI.Xaml.Data;
5 | using Microsoft.UI.Xaml.Input;
6 | using Microsoft.UI.Xaml.Media;
7 | using Microsoft.UI.Xaml.Navigation;
8 | using System;
9 | using System.Collections.Generic;
10 | using System.IO;
11 | using System.Linq;
12 | using System.Runtime.InteropServices.WindowsRuntime;
13 | using Windows.Foundation;
14 | using Windows.Foundation.Collections;
15 |
16 | // To learn more about WinUI, the WinUI project structure,
17 | // and more about our project templates, see: http://aka.ms/winui-project-info.
18 |
19 | namespace FFmpegWinUI.Page
20 | {
21 | ///
22 | /// An empty page that can be used on its own or navigated to within a Frame.
23 | ///
24 | public sealed partial class Transcoder : Microsoft.UI.Xaml.Controls.Page
25 | {
26 | public Transcoder()
27 | {
28 | InitializeComponent();
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/Properties/PublishProfiles/win-arm64.pubxml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 | FileSystem
8 | x64
9 | win-x64
10 | bin\\\x64\publish\
11 | true
12 | false
13 | Release
14 | net8.0-windows10.0.19041.0
15 | true
16 | true
17 |
18 |
--------------------------------------------------------------------------------
/Properties/PublishProfiles/win-arm64.pubxml.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | True|2025-05-25T12:53:23.7245298Z||;False|2025-05-25T20:52:35.1911120+08:00||;True|2025-05-25T20:49:55.7325386+08:00||;True|2025-05-25T20:49:27.9524203+08:00||;
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Properties/PublishProfiles/win-x64.pubxml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 | FileSystem
8 | x64
9 | win-x64
10 | bin\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\publish\
11 | true
12 | False
13 |
14 |
--------------------------------------------------------------------------------
/Properties/PublishProfiles/win-x86.pubxml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 | FileSystem
8 | x86
9 | win-x86
10 | bin\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\publish\
11 | true
12 | False
13 |
14 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # FFmpegWinUI - WinUI 3 FFmpeg 管理工具
2 |
3 | FFmpeg 管理与命令,基于 WinUI 3 和 .NET 8 开发。提供直观的界面来配置和管理 FFmpeg,让 FFmpeg 的安装和使用变得简单。
4 |
5 | ## 最新截图
6 | 
7 |
8 | ## 功能概览
9 |
10 | ✅ **已完成功能**
11 | - 自动检测/一键下载/添加到PATH
12 |
13 | 🚧 **开发中功能**
14 | - [ ] FFmpeg 完整性检查
15 | - [ ] 多版本管理
16 | - [ ] 命令生成器
17 | - [ ] 系统托盘支持
18 | - [ ] 自动更新检查
19 | - [ ] 国际化支持
20 | - [ ] 深色模式优化
21 |
22 | ## 编译/开发
23 |
24 | - Windows 10 1809 (17763) 或更高版本
25 | - [.NET 8 Desktop Runtime](https://dotnet.microsoft.com/download/dotnet/8.0)
26 | - [Windows App SDK 1.4+](https://learn.microsoft.com/windows/apps/windows-app-sdk/downloads)
27 |
28 | ## 开发环境配置
29 |
30 | 1. **必需组件**
31 | - Visual Studio 2022
32 | - .NET 8 SDK
33 | - Windows App SDK
34 | - WinUI 3 工具
35 |
36 | 2. **克隆项目**
37 | ```bash
38 | git clone https://github.com/yourusername/FFmpegFreeUI.git
39 | cd FFmpegFreeUI
40 | ```
41 |
42 | 3. **运行项目**
43 | ```bash
44 | dotnet restore
45 | dotnet build
46 | dotnet run
47 | ```
48 |
49 |
50 | **注意**:项目处于活跃开发中,功能可能随时变更。欢迎提交 Issue 和 PR!
51 |
52 |
--------------------------------------------------------------------------------
/Settings.xaml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
12 |
13 |
14 |
19 |
20 |
21 |
22 |
25 |
26 |
27 |
28 |
30 |
31 |
35 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
64 |
65 |
76 |
85 |
86 |
87 |
88 |
92 |
93 |
94 |
95 |
100 |
106 |
107 |
108 |
111 |
114 |
115 |
116 |
117 |
118 |
119 |
128 |
129 |
133 |
136 |
137 |
138 |
139 |
140 |
141 |
146 |
147 |
148 |
--------------------------------------------------------------------------------
/Settings.xaml.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liubili/FFmpegWinUI/3bc828baa0be52e7d0c2f7f784fc0b83937f03e3/Settings.xaml.cs
--------------------------------------------------------------------------------
/app.manifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | PerMonitorV2
17 |
18 |
19 |
--------------------------------------------------------------------------------