2011-11-05 114 views
2

我想用C#制作视频编辑器,但是我不知道从哪里开始。
我应该使用哪些类?我会把它编译成什么(MOV,MPEG4等)?我将如何阅读他们?
我正在看的最重要的事情是阅读它们。C#视频编辑器?

+1

是一个商业图书馆的选项? – Yahia

+5

你有什么经验编写软件和视频编辑器? –

+1

+1 @Er​​no。另外,你为什么要编写这个软件? – arootbeer

回答

2

这可以在DirectX
做,我想建议你使用DirectShow ..

+0

C#可以使用DirectShow吗? –

+0

@ DareDevil73是的,因为它是.NET库。 – Shahin

+0

@ shaain我的意思是DirectShow编辑服务(DES),对不起! :( –

2

您可以使用ffmpeg成为众多视频编辑简单的解决方案。

这里是获取视频的截屏示例代码:How to convert uploaded video and get a screenshot from this file?

+0

我上次查看ffmpeg时,我能找到的唯一一个C#互操作层处于非工作状态,看起来好像已经被放弃了。这并不是说它不可能使用,但是需要编写和维护的互操作代码有很大一部分要这样做。 – Yaur

2

我想在C#中的视频编辑器,但我不知道从哪里开始。

视频编辑器是一个非常复杂的应用程序,具有许多独立的子系统。您需要资产管理,时间轴,播放器组件,视频和音频效果和过滤器,标题生成等,以及将所有这些组合在一起并将其呈现给用户的GUI。

在上述所有建议中,我建议您从构建视频播放器开始。有几个库,可以帮助这一点,我会建议他们两个:

  • 的DirectShow(无微软,配备与DirectX,仅适用于Windows)
  • 的QuickTime SDK(从苹果免费,自带使用QuickTime,Windows和OS X)

注意的DirectShow将在C#本地工作,但QuickTime的SDK是C,所以你需要在QuickTime的DLL中的C#应用​​程序连接到C函数胶水代码。

这两个库都有高级别的玩家,只需要少量的调用就可以设置,还有低级的API可以让你提供自己的玩家代码。对于视频编辑器,您将需要有一个自定义播放器,因为您不仅可以播放视频文件,而且还可以渲染实时生成的效果。因此,您应该在上述任一框架中使用低级API,并编写一个播放器,该播放器最初读取电影文件,获取帧并将它们传递给正确的解码器和渲染器。

一旦你有这个工作,你可以转到其他任务,并使用视频播放器作为您的编辑器的基础。

祝你好运。

+0

见http://www.codeproject.com/Articles/32430/C-Video-TimeLine-Control-for-DirectShow-VLC-Like-A –