到目前为止在任何地方找不到任何令人满意的答案......
我正在开发一个C#WinForms .NET3.5应用程序,它需要从数据库BLOB加载视频文件并在应用程序窗口中播放它。 数据库是本地文件(不涉及服务器)。
我不认为将文件保存到硬盘驱动器是一个很好的解决方案,因为它可能很耗时,而且我已经将文件放在内存流中了。
我需要能够播放尽可能多的视频格式(编解码器?)。 包括divX,XVid,mpeg,avi,3gp等。
我正在寻找易于使用的工作代码示例或现有的第三方组件。
除非有工作样本,否则像DirectShow或VLC这样的建议几乎不需要视频渲染,过滤器,图形以及什么样的东西都是不可能的。
有什么想法吗?
谢谢。
答案 0 :(得分:2)
你是对的,最流行的方法是使用DirectShow,但在这种情况下你必须构建图形等。如果你没有这方面的经验,开始使用DirectShow并不容易。
另一个相当丰富的想法(以及你写的“一般想法”)是挂钩文件调用,如ReadFile和SetFilePointer,并将这些调用转换为memorystream的方法(Read,Seek),因此调用代码会认为它适用于真正存在的文件。
例如,这里有一篇文章,展示了如何播放由块加密的块视频,在不解密整个文件的情况下播放,并且不将解密的块丢弃到磁盘: http://boxedapp.com/encrypted_video_streaming.html
答案 1 :(得分:0)