update
This commit is contained in:
parent
949deef9e4
commit
d1787dc7e6
@ -8,7 +8,7 @@ namespace VideoConcat.Common.Tools
|
|||||||
{
|
{
|
||||||
internal class VideoCombine
|
internal class VideoCombine
|
||||||
{
|
{
|
||||||
static void GenerateCombinations(List<List<string>> videoLists, int index, List<string> currentCombination, List<List<string>> result)
|
public static void GenerateCombinations(List<List<string>> videoLists, int index, List<string> currentCombination, List<List<string>> result)
|
||||||
{
|
{
|
||||||
if (index == videoLists.Count)
|
if (index == videoLists.Count)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -36,6 +36,8 @@ namespace VideoConcat.Models
|
|||||||
{
|
{
|
||||||
public DirectoryInfo DirectoryInfo{set;get;}
|
public DirectoryInfo DirectoryInfo{set;get;}
|
||||||
public int Num { set; get; }
|
public int Num { set; get; }
|
||||||
|
|
||||||
|
public List<string> VideoPaths { set; get; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public ObservableCollection<FolderInfo> FolderInfos
|
public ObservableCollection<FolderInfo> FolderInfos
|
||||||
|
|||||||
@ -11,9 +11,13 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<PackageReference Include="FFMpegCore" Version="5.1.0" />
|
||||||
<PackageReference Include="log4net" Version="3.0.2" />
|
<PackageReference Include="log4net" Version="3.0.2" />
|
||||||
<PackageReference Include="MaterialDesignXaml.DialogsHelper" Version="1.0.4" />
|
<PackageReference Include="MaterialDesignXaml.DialogsHelper" Version="1.0.4" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.1" />
|
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.1" />
|
||||||
|
<PackageReference Include="System.IO.Pipelines" Version="9.0.0" />
|
||||||
|
<PackageReference Include="System.Text.Encodings.Web" Version="9.0.0" />
|
||||||
|
<PackageReference Include="System.Text.Json" Version="9.0.0" />
|
||||||
<PackageReference Include="WPFDevelopers" Version="0.0.0.1" />
|
<PackageReference Include="WPFDevelopers" Version="0.0.0.1" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|||||||
@ -11,7 +11,8 @@ using MessageBox = System.Windows.MessageBox;
|
|||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using VideoConcat.Common.Tools;
|
using VideoConcat.Common.Tools;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using static VideoConcat.Models.VideoModel;
|
using Microsoft.Expression.Drawing.Core;
|
||||||
|
using FFMpegCore;
|
||||||
|
|
||||||
namespace VideoConcat.ViewModels
|
namespace VideoConcat.ViewModels
|
||||||
{
|
{
|
||||||
@ -51,6 +52,34 @@ namespace VideoConcat.ViewModels
|
|||||||
DoExcue = obj =>
|
DoExcue = obj =>
|
||||||
{
|
{
|
||||||
LogUtils.Info("开始合并视频");
|
LogUtils.Info("开始合并视频");
|
||||||
|
List<List<string>> combinations = [];
|
||||||
|
List<string> currentCombination = [];
|
||||||
|
List<List<string>> videoLists = [];
|
||||||
|
|
||||||
|
|
||||||
|
VideoModel.FolderInfos.ForEach(folderInfo =>
|
||||||
|
{
|
||||||
|
videoLists.Add(folderInfo.VideoPaths);
|
||||||
|
});
|
||||||
|
|
||||||
|
VideoCombine.GenerateCombinations(videoLists, 0, currentCombination, combinations);
|
||||||
|
|
||||||
|
int combinationIndex = 1;
|
||||||
|
foreach (List<string> combination in combinations)
|
||||||
|
{
|
||||||
|
Console.Write($"组合 {combinationIndex++}: ");
|
||||||
|
foreach (string video in combination)
|
||||||
|
{
|
||||||
|
Console.Write(video + " ");
|
||||||
|
}
|
||||||
|
Console.WriteLine();
|
||||||
|
FFMpeg.Join("./1.mp4",combination.ToArray());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Console.WriteLine($"总共有 {combinations.Count} 种拼接方案。");
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -69,7 +98,7 @@ namespace VideoConcat.ViewModels
|
|||||||
string[] files = Directory.GetFiles(Folder.FullName, "*.mp4");
|
string[] files = Directory.GetFiles(Folder.FullName, "*.mp4");
|
||||||
LogUtils.Info($"{Folder.Name}下有{files.Length}个视频文件");
|
LogUtils.Info($"{Folder.Name}下有{files.Length}个视频文件");
|
||||||
|
|
||||||
VideoModel.FolderInfos.Add(new FolderInfo { DirectoryInfo = Folder, Num = files.Length });
|
VideoModel.FolderInfos.Add(new VideoModel.FolderInfo { DirectoryInfo = Folder, Num = files.Length, VideoPaths = new List<string>(files) });
|
||||||
}
|
}
|
||||||
VideoModel.UpdateSum();
|
VideoModel.UpdateSum();
|
||||||
}
|
}
|
||||||
|
|||||||
4
ffmpeg.config.json
Normal file
4
ffmpeg.config.json
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"BinaryFolder": "./",
|
||||||
|
"TemporaryFilesFolder": "./tmp"
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user