让我实时访问视频的帧,并允许我修改它们
您是否希望获得未压缩的视频帧并在渲染之前对其进行修改?或者您想修改视频帧,将它们保存回媒体文件?
第一个会稍微容易些.尽管DirectShow起初可能看起来很复杂,但它确实是一个优雅的框架.我强烈建议查看DirectShow.NET示例.要访问视频的帧,您只需配置SampleGrabber过滤器并将其添加到DirectShow图,执行graph.RenderFile(mymediafile,null),您将收到每个帧的回调.您可以修改像素数据,它将出现在渲染视频上.这不应该超过1页的代码.我有一个使用SampleGrabber的示例源代码,但它是为网络摄像头制作的.播放媒体要容易得多(graph.RenderFile!).
如果您需要将这些内容写入文件,您将执行类似于上述操作的操作,但您不必使用视频渲染器,而是必须将图形配置为使用视频编码器和复用器.对DirectShow的新手来说可能并不好玩;).
如果你只想获得帧,那么directshow中有一个非常简单的界面叫做IMediaDet.我编写了一个简单的类来轻松地从媒体文件中提取出任何帧.它面向WPF,但您可以将其与直接GDI一起使用.
| 归档时间: |
|
| 查看次数: |
2730 次 |
| 最近记录: |