在好例子网,分享、交流、成长!
您当前所在位置:首页C# 开发实例C#语言基础 → C# 视频编辑demo(WPF .net6.0)

C# 视频编辑demo(WPF .net6.0)

C#语言基础

下载此实例
  • 开发语言:C#
  • 实例大小:152.62M
  • 下载次数:30
  • 浏览次数:344
  • 发布时间:2023-08-13
  • 实例类别:C#语言基础
  • 发 布 人:tzjtzj18
  • 文件格式:.rar
  • 所需积分:10
 相关标签: .NET demo wpf NET 6.0

实例介绍

【实例简介】C# 视频编辑demo(WPF .net6.0)


程序为WPF .Net6.0,全部源码。封装了ffmpeg、ffplay、ffprobe.exe,播放嵌入到了WPF窗体中。编辑、生成均通过管道读写,byte操作,不生成临时文件。

程序旨在说明读取、编辑操作的代码,界面没设计,逻辑限制也没写。功能也只有读取,写入图像和文字,但是基础的读写有了,其他的扩展功能也很方便了啊。

这里图省事,将整个视频装入,所以测试时候找个短视频进行处理,5、6分钟以内长度的就可以,用太长的内存装不下。读取视频帧方式很多,这里采用读取每秒的一帧进行选段,然后再将选择的段全部帧读取出来。
选取帧可以使用时间间隔、或使用命令行分段读取,在实际中,这样选偏差比较大,用精确选取指令也还是对不上,所以就用了笨办法,速度较慢,以读取显示60帧为每个线程,开多个线程同时读取,帧总数/帧率=每秒帧数,记录帧序号,提取每秒第一帧作为标尺,详细帧则取选择范围的帧进行,这样就对上了。

播放是将选中的范围帧进行播放,使用ffplay.exe嵌入到WPF窗体中播放。这里注意一下,WPF的窗口不能设置为AllowsTransparency="True",否则不能正常显示。
代码很短,就是ffmpeg比较大100多M。
一些代码中内存、进程关系等代码如有错误自行修正。

首先点击“打开mp4文件”,装入视频,再拖动选择范围框,选择编辑的范围,
再点击“装入选择的帧”,在点击“编辑选择的视频”
在打开的窗口中,菜单里可选择图像或文字,放置到编辑框中,设置组件的属性,点击“应用”。
最后点击“写入到视频”,这里忘了写进度提示了,写入时就等着,写入完毕后,弹出完毕窗口。

这里注意:
1、生成后在当前目录中生成一个output.mp4,如果已存在该文件,则生时成会提示错误,生成完毕后,自行改个文件名。
2、程序因为图省事,将视频全部装入内存,编辑使用时,找个短点的视频,4、5分钟的就可以,太大了内存装不下。
3、编辑时放置组件,组件属性的颜色设置为空,即为透明。
4、装入、选择、调入、编辑的次序别搞乱,因为程序写的匆忙没有校验,别出故障了。

视频生成的效果,这里提供原视频和编辑生成的视频2个视频,可以下载比对效果。
链接:https://pan.baidu.com/s/1MjM8K8iu-uWgfMrnLTOdWA 
提取码:255q

【实例截图】

from clipboard



【核心代码】
.
├── C# 视频编辑demo(WPF .net6.0).rar
└── E_1
    ├── E_1
    │   ├── App.xaml
    │   ├── App.xaml.cs
    │   ├── AssemblyInfo.cs
    │   ├── Communal
    │   │   ├── Align.cs
    │   │   ├── Color_Pad.cs
    │   │   ├── Effect.cs
    │   │   ├── Fontset.cs
    │   │   ├── Image_.cs
    │   │   ├── TextBox_.cs
    │   │   ├── Value.cs
    │   │   └── ValueBox.cs
    │   ├── E_1.csproj
    │   ├── E_1.csproj.user
    │   ├── Enums.cs
    │   ├── Fonts
    │   │   └── FontMenu.cs
    │   ├── Function.cs
    │   ├── Gobal.cs
    │   ├── Images
    │   │   ├── a_center.png
    │   │   ├── a_fill.png
    │   │   ├── a_left.png
    │   │   ├── a_right.png
    │   │   ├── accept.png
    │   │   ├── before.png
    │   │   ├── botmost.png
    │   │   ├── checkmark.png
    │   │   ├── clear.png
    │   │   ├── color.png
    │   │   ├── control_Image.png
    │   │   ├── control_input.png
    │   │   ├── copy.png
    │   │   ├── default.png
    │   │   ├── delete.png
    │   │   ├── down.png
    │   │   ├── effect.png
    │   │   ├── face.png
    │   │   ├── font16.png
    │   │   ├── mouse.png
    │   │   ├── next.png
    │   │   ├── open.png
    │   │   ├── past.png
    │   │   ├── save.png
    │   │   ├── sfont.png
    │   │   ├── spear.png
    │   │   ├── spear1.png
    │   │   ├── topmose.png
    │   │   └── video48.png
    │   ├── MainWindow.xaml
    │   ├── MainWindow.xaml.cs
    │   ├── Progress_Window.xaml
    │   ├── Progress_Window.xaml.cs
    │   ├── Style
    │   │   ├── ColorHelper.cs
    │   │   ├── CursorHelper.cs
    │   │   ├── Input_Box.cs
    │   │   ├── ScrollTemplate.cs
    │   │   ├── ScrollViewer.xaml
    │   │   ├── TextBox.xaml
    │   │   └── Tool_Button.cs
    │   ├── Video_Edit.xaml
    │   ├── Video_Edit.xaml.cs
    │   ├── Video_Info.cs
    │   ├── Video_Play.cs
    │   ├── bin
    │   │   └── Debug
    │   │       └── net6.0-windows
    │   │           ├── App
    │   │           │   ├── BenMoYouYuan-2.ttf
    │   │           │   ├── ChaoZiSheFengYunJian-2.ttf
    │   │           │   ├── Lolita.ttf
    │   │           │   ├── RuiZiWenShuaiKeAiJian-TTF-2.ttf
    │   │           │   ├── ZCOOLtongtong-2.ttf
    │   │           │   ├── ffmpeg.exe
    │   │           │   ├── ffplay.exe
    │   │           │   └── ffprobe.exe
    │   │           ├── E_1.deps.json
    │   │           ├── E_1.dll
    │   │           ├── E_1.exe
    │   │           ├── E_1.pdb
    │   │           ├── E_1.runtimeconfig.json
    │   │           ├── Microsoft.Win32.SystemEvents.dll
    │   │           ├── System.Drawing.Common.dll
    │   │           └── runtimes
    │   │               └── win
    │   │                   └── lib
    │   │                       └── net6.0
    │   │                           ├── Microsoft.Win32.SystemEvents.dll
    │   │                           └── System.Drawing.Common.dll
    │   └── obj
    │       └── Debug
    │           └── net6.0-windows
    └── E_1.sln

17 directories, 80 files


标签: .NET demo wpf NET 6.0

实例下载地址

C# 视频编辑demo(WPF .net6.0)

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警