嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 1 元微信扫码支付:1 元
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
C# 视频转换为4K分辨率(适用1080p、720p、540p)
WPF .net 6编写。
适用于1080p、720p、540p的视频。
程序封装ffmpeg,使用OpenCv超分辨率模型。
方法是:取得视频全部帧最高质量图像,再将帧图像进行超分辨率处理,再将处理过的帧图像写入视频。
针对不同的分辨率视频,可以修改程序 Video_Helper.cs的第253行
Mat result = Function.UpscaleImage(blurryImage, "espcn", Environment.CurrentDirectory @"\App\ESPCN_x2.pb", 2);
1080p的视频使用(...X2.pb,2);为放大2倍,
720p的视频使用(...X3.pb,3);为放大3倍,
540p的视频使用(...X4.pb,4);为放大4倍,
程序提供多个模型,可以自己试一下效果:
ESPCN_x2.pb
ESPCN_x3.pb
ESPCN_x4.pb
FSRCNN-small_x2.pb
FSRCNN-small_x3.pb
FSRCNN-small_x4.pb
FSRCNN_x2.pb
FSRCNN_x3.pb
FSRCNN_x4.pb
可以访问OpenCv网站了解,对模型进行训练,达到更进一步的效果。
在程序中,原本可以采用管道进行byte操作,不用生成各种临时文件,但在实际测试中,通过byte进行超分辨率处理,效果比较差,只好采用生成图像文件的方式进行。
程序运行后,按照按钮顺序一步一步点击就可以了。
提取的原始帧图像在Source_Frames文件夹,生成的帧图像在Upscale_Frames里面,可以比照查看。
对ffmpeg命令行操作只是初步了解,可能一些指令或方式有误,程序仅供参考,如有错误自行修正。如程序方向有误,略过就好。
需要的Dll以及相关组件已经全部安装好了,可以直接重新编译就。生成的视频文件在当前文件夹内。视频太大处理慢,不好测试,这里附带一个1080p的小视频可以进行测试。
注意:如果视频非标准大小的,须修改程序相应参数,重新编译,否则会出现问题。
其他操作可以参考前一篇:https://www.haolizi.net/example/view_314745.html
对比图:
1080p
扩展放大后
可以把上面几个模型试一下,看那个效果最好,或者在网上找些训练好的模型再试一试。
.
├── 1080p_demo.mp4
├── C# 视频转换为4K分辨率(适用1080p、720p、540p).rar
└── c4k
├── c4k
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── AssemblyInfo.cs
│ ├── Function.cs
│ ├── MainWindow.xaml
│ ├── MainWindow.xaml.cs
│ ├── Video_Helper.cs
│ ├── bin
│ │ └── Debug
│ │ └── net6.0-windows
│ │ ├── App
│ │ │ ├── ESPCN_x2.pb
│ │ │ ├── ESPCN_x3.pb
│ │ │ ├── ESPCN_x4.pb
│ │ │ ├── FSRCNN-small_x2.pb
│ │ │ ├── FSRCNN-small_x3.pb
│ │ │ ├── FSRCNN-small_x4.pb
│ │ │ ├── FSRCNN_x2.pb
│ │ │ ├── FSRCNN_x3.pb
│ │ │ ├── FSRCNN_x4.pb
│ │ │ ├── ffmpeg.exe
│ │ │ ├── ffplay.exe
│ │ │ └── ffprobe.exe
│ │ ├── OpenCvSharp.dll
│ │ ├── OpenCvSharpExtern.dll
│ │ ├── Source_Frames
│ │ ├── Upscale_Frames
│ │ ├── c4k.deps.json
│ │ ├── c4k.dll
│ │ ├── c4k.exe
│ │ ├── c4k.pdb
│ │ └── c4k.runtimeconfig.json
│ ├── c4k.csproj
│ ├── c4k.csproj.user
│ └── obj
│ └── Debug
│ └── net6.0-windows
└── c4k.sln
11 directories, 31 files