从内存流播放视频

4

到目前为止,我还没有找到令人满意的答案......

我正在开发一个C# WinForms .NET3.5应用程序,需要从数据库BLOB加载视频文件并在应用程序窗口内播放。

数据库是一个本地文件(没有服务器参与)。

我认为把文件保存到硬盘上不是一个好的解决方案,因为它可能会耗费很长时间,而且我已经有了文件的内存流。

我需要能够播放尽可能多的视频格式(编解码器?),包括divX、XVid、mpeg、avi、3gp等。

我正在寻找一个易于使用的工作代码示例或现有的第三方组件。

像DirectShow或VLC这样的建议需要几乎具有视频渲染、过滤器、图形等专业知识,除非有一个可行的示例。

有任何想法吗?

谢谢。

2个回答

2
您说得对,最流行的方法是使用DirectShow,但在这种情况下,您必须构建图等。如果您没有在这个领域有经验,那么开始使用DirectShow并不容易。
另一个相当丰富的想法(正如您所写的“一般思路”)是钩取文件调用,比如ReadFile和SetFilePointer,并将这些调用转换为memorystream的方法(Read,Seek),这样调用代码会认为它正在处理实际存在的文件。
例如,这里有一篇文章,展示了如何播放按块加密的视频,而无需解密整个文件,也无需将解密后的块丢到磁盘上: http://boxedapp.com/encrypted_video_streaming.html

0

你应该能够通过编写一个薄包装器(我假设你在托管代码中)来实现这一点,然后利用invmem和imem。可以在以下链接中找到一些传递输入的示例:herehere


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接