做了一番比较以后,最终确定如下结构,并做了初步测试:
项目名 | 项目名(中文) | 介绍 |
---|---|---|
Core | 核心 | 提供Host和WPF、Web的契约以及公共方法 |
Host | 主机 | 对FFmpeg进行包装,实现其功能,并通过NamedPipe进行发布 |
WPF | 桌面GUI | 本地执行的桌面端的GUI实现 |
WebAPI | 服务端 | 使用ASP.NetCore实现的服务器 |
Web | Web客户端 | 使用Vue.js实现的网页端 |
完成了Host与WebAPI之间的连接、WebAPI和Web之间的连接
搭建中。。初步完成了新增转码任务
【Core】新增了数据库连接
【Core】初步完成了任务队列系统
【Web】新增任务列表界面
【Web】进一步完成了任务的删除等、完成新增编码任务的界面等
【Web】优化界面,初步完成编码预设的后端
【Core】【Web】新增多文件拼接的支持
【Core】【Web】新增视频裁剪的支持
【Web】支持了新增、更新、调用预设
【Web】【Web】支持了额外参数
【Core】将Host的众多类移到Core中,Host仅用于提供管道通信
【Core】将DbContext改为单例模式
【Web】支持自定义管道名
【Web】新增FTP服务器功能
【Web】修改管道客户端类为依赖注入
【Web】新增在调用管道时,若检测到提供商未运行,则会自动启动
【Web】完成对任务列表的分页和筛选
【Web】修复了获取数据库信息时,并行查询报错的BUG
【Web】新增预设列表和日志列表
【Web】优化了错误信息的提示
【Web】新增支持上传小文件和直接下载输出文件
【Web】优化:在滚动时,左侧导航栏将固定
【Web】修复了当IIS无权限访问输入输出文件夹时无法使用的问题,通过Host访问来解决
【Web】优化了UI
【Web】优化了UI
【Web】新增支持视频裁剪设置中,可以粘贴一串时间字符串后自动解析为时分秒
【Core】【Web】新增支持不导出视频或不导出音频
【Web】优化了UI
【Core】【Web】支持指定视频容器
【Core】【Web】新增合并音视频功能
【Web】基本完成token认证功能
【Core】【Web】新增视频对比功能
【Web】新增重制时,可以保留文件
【Core】【Web】新增WebM的VP9和OPUS编码支持
【Web】新增编辑预设功能
【Web】优化编码参数显示效果,原来是JSON,现在改为了格式化后的表单
【Web】优化了视频裁剪策略,支持单独设置开始时间、视频长度、结束时间
【Web】优化了视频裁剪设置的UI
【Web】新增支持Host设置开机自启,支持设置工作目录为当前目录
【Core】【Web】新增自定义参数任务
【Core】【Web】分离普通转码和视频拼接,普通转码输入多个文件时将输出多个文件。
【Core】【Web】转码的输入裁剪将和输入文件关联,而不是输出参数
【Web】改成了使用数据生成的菜单
【Web】做了主页
【WebAPP】新增由WinForms包装的可一键打开的桌面程序入口
【WebAPP】优化了WebApp:
- 退出时若在执行任务则禁止关闭
- 改为F12打开开发者选项
- 浏览器改为中文
【Web】新增支持从查看某一个任务的所有日志
【Core】【Web】接入了MediaInfo,查询媒体信息时可以查看更详细的信息
【Web】支持了选择子文件夹内的输入文件
【Core】将进程处理方法换成了自己的,更加好控制
【WPF】基本完成了WPF版本
【Web】修复了启用裁剪的任务加入队列后,新的任务虽然仍然勾选裁剪时间,但实际设置无效的BUG
【Web】优化时间裁剪设置,解析文本框保持可用,解析后自动启动该项裁剪
【Web】设置输入文件后将不会自动应用输出文件,而是在输出文件为空时,认为输出相同名称的文件。
【WPF】新增从任务列表中查看选中任务的日志
【WPF】新增日志根据类型进行筛选
【WPF】新增拖放加入文件
【WPF】修复了状态面板在有任务执行时反而显示无任务的BUG
【WPF】修复了视频比较不可用的BUG
【WPF】做了一些优化
【WPF】新增文件拖入主窗口即可新增任务
【WPF】新增任务栏进度条
【WPF】修复了一些新增任务时等参数面板的BUG
【WPF】修复了在任务进行时新增任务会报错的BUG
【WPF】新增ffmpeg和ffprobe命令的检测
【WPF】新增支持打开输入文件和输入文件的目录
【WPF】优化时间裁剪操作,输入框将保持可用,并与选择框联动
【WPF】修复了编辑完参数后,编辑框未失去焦点导致没有更新源数据的BUG
【WPF】修改任务界面,仅显示处理中任务的进度条,其他任务显示时间
【WPF】新增媒体信息查询
【WPF】新增平滑滚动
【WPF】修复了拼接时部分场景下报错的BUG
【WPF】修复了不可修改文件数目的任务类型仍可新增任务的BUG
【WPF】新增视频可视化裁剪
【WPF】修改新建任务面板不再为主窗口的子窗口
【WPF】视频可视化裁剪新增快进和快退按钮
【WPF】优化新增任务,解决了新增时的卡顿,新增任务的同时开始队列改为切换按钮,新增后将切换到主窗口
【WPF】修复了更新预设无效的BUG
【WPF】新增删除预设功能
【WPF】修改了运行时关闭窗口的逻辑,当有任务正在进行中时,点击关闭按钮将会最小化到托盘而不询问。并取消了最小化到托盘按钮
【WPF】新增设置界面,可以设置平滑滚动和远程主机
【WPF】新增添加任务到远程主机功能
标注了各条日志所属的项目
【Web】修复了新增拼接、合并等任务时输出不可为空、不会检测输入文件存在性等BUG
【WPF】优化了任务详情显示
【WPF】新增创建任务后清空文件、创建任务后关闭窗口选项
【WPF】视频裁剪新增使用Ctrl和Shift切换快进快退的长度等,新增帧率显示
【WPF】优化了任务列表的显示,仅显示进行中的、排队中的任务以及其它在本次程序开启后的任务(类似Adobe Media Encoder
【WPF】新增所有任务显示窗口,支持分页
【WPF】修复了新增所有任务窗口部分按钮不隐藏的BUG
【WPF】修复了任务列表下方按钮点击报错的BUG
【WPF】调整了主界面大小等
【WPF】修复了帧率参数缺失的BUG
【WPF】新增预设窗口,支持删除、导入、导出
【Web】修复了文件名过长时,文件选择框中的其他文件选择不全或不显示的BUG
升级到了.NET6
所有的生成文件设置为统一的目录
新增生成Web包的批处理
【Core】(应该)修复了暂停后显示的剩余时间会边长的BUG
更新了部署方式,支持一建生成发布和部署。
【WPF】修改了音视频输出选项,设置更方便
【Core】【WPF】新增支持手动设置视频或音频的编码器
【Core】【WPF】新增支持设置视频像素格式
【Core】【WPF】新增支持画面比例设置
【Core】【WPF】修改分辨率修改为文本型,可以设置除了基础的i*j之类的形式(Web版本暂时未改,导致无法使用)
【WPF】修改了一些UI细节
【WPF】新增查看输出参数功能
【Core】【WPF】新增支持设置每一类的默认预设,打开时将会自动加载该类型的默认预设
【Web】适配了后端,新增了自定义分辨率、画面比例和像素格式设置
【WPF】新增拖放文件到主窗口时,弹出选择对话框,可选择加入任务或查询信息
【WPF】修复了添加任务错误,但仍然会切到主窗口的BUG
【Web】新增导入导出预设的功能
【Web】修复了含有Token时无法上传文件的BUG
【WPF】修改为单窗口应用,左侧为固定的任务列表和进行中的任务信息区域,右侧为TabControl。
【WPF】修复了设置默认预设后不起作用的BUG
【WPF】新增记住上次任务参数的功能
【WPF】完成了默认输出目录的设置界面,但还未进行实现
【WPF】修复了打开新建任务页面时闪退的BUG
【WPF】修改新建任务时,分开设置输出目录和输出文件名
【WPF】完成了默认输出目录的逻辑
【Core】修复了进程结束后仍然有输出,导致无法捕捉到视频对比结果的BUG
【WPF】尝试使用多进程的方式规避ModernWpf库和FFME库冲突导致的视频裁剪界面崩溃的BUG
【WPF】优化了视频分割,使用单个程序集,并更改为模态窗口
【WPF】修复了切换Tab时会重复初始化的BUG
【WPF】修复了删除所有预设后界面被禁用的BUG
【WPF】修复了部分无法获取长度的视频或脚本(avs)处理时报错的BUG
【WPF】修复了应用的记忆或预设,视频或音频策略为“复制”时,若切换到“重新编码”后,参数设置无效且创建任务报错的BUG
【WPF】修复了建立副本时,输出目录错误的BUG
【WPF】修复了任务列表中的进度处于IsIndeterminate状态的BUG
【WPF】新增编码性能测试功能
【WPF】优化编码性能测试功能(去掉了勾选框、增加了子进度条、不导出音频等)
【WPF】修复了编码性能测试VP9报错的BUG
【WPF】修复了VP9无法跑满全部核心的BUG
【WPF】优化编码性能测试的得分算法,支持不全部测完也能获取得分
【WPF】新增记忆窗口最大化状态
【WPF】取消预设的“应用”按钮,改为点击预设卡片应用
【WPF】修复了浅色模式下Tab头显示不正确的BUG
【Web】新增远程关机、队列完成后自动关机功能
【Web】新增显示CPU占用率功能
【WPF】修复了拖放文件新建任务时,输入文件的数量可能小于允许的最小文件数量的BUG
【Core】【Web】新增队列计划开始功能
【WPF】修复和优化了一些界面问题
【Core】优化了运行错误的显示
【WPF】【Web】优化支持了WPF提交给远程的文件支持在输入目录中的子目录中
【Web】修复了远程提交的作业输出文件名错误导致执行失败的BUG
【WPF】修复了界面错位的BUG
【Web】修复了远程提交时,若输出文件名为空,会出错的BUG
【WPF】优化了预设管理界面,可以在预设管理处修改预设值、设置默认预设
【WPF】修复了拖放超过目标类型最大支持的文件数量的文件后报错的BUG
【Code】修复了部分FFmpeg输出无法识别导致无法显示进度的BUG
【Code】【WPF】【Web】新增支持H264和H265的二次编码
【Core】修复了视频拼接时无进度条的BUG
【Core】修复了目标文件名尾部带空格时出现错误的BUG
【Core】优化了错误信息的提取
【Core】优化了日志的数据库写入,加快了FFmpeg大量输出时的速度
【Web】修复和优化了一些Web界面问题
【Core】【WPF】新增AV1支持(未完全)
【Core】【WPF】优化了编码测试和AV1支持
【Core】优化了AV1的支持,新增SVT-AV1编码器的支持
【WPF】新增AV1支持
【WPF】优化编码测试
【Core】修复了视频比较不显示进度的BUG
【WPF】新增FFmpeg输出命令行
【Core】为增加灵活性,摆脱使用FFMpegCore模块的依赖,重构FFmpeg参数生成模块,手动生成FFmpeg参数。
【WPF】修复了编码测试码率不可修改的BUG
【Web】修复了显示超过1个小时的时长进度时,显示出错的BUG
【Core】优化给VP9和AV1自动加上支持多线程的参数
【Core】新增VMAF编码评价指标
【Core】修复了一些BUG(SVTAV1不支持最大码率、BufferSize设置有误、x264和x265的最大预设值错误、部分多文件任务进度异常等)
【WPF】编码测试新增VMAF,支持了配置记忆
【WPF】编码测试新增CPU占用率指标
【WPF】优化编码测试CPU占用率和FPS指标
【Core】新增明确SVTAV1不支持2Pass
【Core】优化了2Pass时的进度条显示,不会再分两次
【WPF】优化了勾选开关后,将自动赋默认值
【WPF】优化了修改视频编码后,将自动赋默认值
【WPF】编码测试新增CRF模式
【WPF】编码测试新增码率补偿功能
【WPF】编码测试新增能够显示和导出输出文件的大小
【WPF】编码测试支持了重复利用素材,编码时输出文件名将附带相关信息,不再覆盖原有输出。
【Core】【WPF】新增支持图像序列帧转视频的功能
【Core】【WPF】新增支持输入参数中的帧率和自定义参数
【Core】优化当输出文件名存在非法字符时,自动删除非法字符
【Web】新增支持图像序列帧转视频的功能,但未测试,因为还未实现自动生成图像序列通配文件名功能
【Core】【WPF】新增根据输入文件猜测是否存在图像序列,并自动重命名
【Core】【Web】新增自动重命名图像序列
【Host】新增连续输出FFmpeg进度信息时,将覆盖上一条进度信息(仅当输出内容为一行时)
【Core】【WPF】【Web】彻底删除Ts中转方式的视频拼接
【WPF】修复了几个没有显示正确标签的BUG
【WPF】优化在新增任务界面切换任务类型时,能够保留文件
【Core】【WPF】【Web】修复了拼接时,若指定了输出文件名但未指定后缀名时报错的BUG
【Core】修复了二次编码因没有指定Format导致Pass=1时失败的BUG
【Core】【WPF】修复了剩余时间大于1天时,显示不准确的问题
【WPF】新增显示已用时间
【Core】【WPF】【Web】新增支持二次压制时,两次Pass采用不同的速度预设
【Core】修复了H265编码二次压制没有起作用的BUG
【Core】【WPF】【Web】由于发现问题,回退前一天的更新内容
【WPF】修复了已用时间和剩余时间的小时部分被四舍五入的BUG
【WPF】对状态框进行了一些UI修改
【WPF】为需要终止任务的按钮添加了二次提醒,并将取消任务改为异步
【Core】【WPF】重构了获取媒体信息的方法,全部使用MediaInfo.exe
进行。同步修改了WPF界面
【Web】修改了状态条样式
【Web】对媒体信息页面进行了同步修改
【Core】为数据库增加了一些索引并完成数据库迁移功能,大大加快了读取速度
【Core】【WPF】新增支持进程优先级设置
【Core】尽量避免日志保存失败导致的程序崩溃
【Web】为Host增加了文件日志和全局异常捕获
【WPF】优化界面布局,当没有显示任何标签页时,将修改任务面板和状态面板的位置以优化显示效果
【WPF】支持在转码时显示缩略图(测试)
【WPF】修复了启动时若存在待处理任务,会导致堆栈溢出的BUG
【WPF】修复了弹出顶级面板时,任务状态面板会位于其上方的BUG
【WPF】优化在转码时的缩略图显示
【Core】新增支持同步输出文件的修改文件为输入文件的修改时间(暂无设置UI)
【Core】【Web】网页端新增支持进程优先级设置
【WPF】修复了完整状态面板与底栏重合的BUG
【Core】【WPF】基本实现了读取H265视频主要编码设置并应用到当前转码设置的功能:通过将文件拖放到视频编码设置上方。
【Core】新增H264的读取视频主要编码设置并应用到当前转码设置的功能
【Core】【WPF】【Web】优化同步文件修改时间功能为任务级别参数
【Web】新增支持转码时的缩略图显示
【All】更新到.NET8,更新了所有Nuget
【WPF】修复了因FFME.Windows不支持最新版本的ffmpeg导致无法裁剪视频的BUG(https://github.com/unosquare/ffmediaelement/issues/642)
【WPF】去除了WindowsAPICodePack的依赖,改为.NET8自带的文件选取器
【WPF】由于zgabi/ffmediaelement貌似修复了死锁问题,因此将裁剪功能修改为单进程运行,加快了启动速度
【WPF】修改提交任务并开始队列由开关改为独立按钮
【Core】【WPF】新增处理后删除输入文件的功能
【Core】修复了最新版本ffmpeg因输出状态改变导致部分场景(如复制流)下无法获取进度的BUG
【WPF】由于发现裁剪闪退问题为解决,因此回退了cc72816
【Web】新增处理后删除输入文件的功能
【WPF】任务列表支持了多选后批量操作
重构,全局依赖注入,WPF完全MVVM,引入CommunityToolkit.MVVM。
【Web】修复了多选取消任务无效的BUG
修复了多个dbContext实例导致数据不同步的BUG并修改Logger为静态类
【WPF】修改了创建任务的按钮逻辑,支持了创建远程任务并启动队列
【Web】将Host的Windows Service方式与Console方式分离,更好地实现开机自启
【WPF】新增支持批量添加文件或添加文件夹内所有文件