基于web的C#内部网视频存储库,.Net MVC3



我想创建一个.Net MVC3内部网应用程序,作为用户在浏览器中上传、搜索和播放视频的存储库。

应用程序应提供以下内容:

  1. 允许用户上传.avi视频以及一些元数据(标题、描述、标签等)的表单
  2. 视频应该可以直接在浏览器中播放
  3. 搜索机制
  4. 每个视频都应该有一个相关的缩略图(视频中的随机帧),以便在搜索结果等中显示

注意事项:

  • 原始视频均为avi格式(视频文件大小在200-500MB之间)
  • 所有用户都将拥有一个支持HTML5视频播放的浏览器(无需向后兼容)
  • 作为一个用户基础有限的intranet网站,我们可以强迫人们使用chrome起诉该应用程序
  • 如果可能的话,视频文件应该存储在网络共享驱动器上(而不是网络服务器本身)

我可以处理其中的标准web应用程序部分(表单、数据库、搜索机制、视频播放等)。我需要一些指导的地方是处理、转换和存储视频的最佳方式,以便每个视频都可以直接在浏览器中播放。此外,该应用程序可能有一天会使用移动设备(平板电脑、手机等)使用,因此每个视频的低分辨率版本也应该可用,如果不太困难,视频也应该能够从网络服务器流式传输,而不是下载然后播放。

问题:

  1. 是否有一个领先的C#库在服务器端进行视频编码(视频上传后)?转换一个500MB的文件会有多慢
  2. 存储如此大的文件的最佳方法是什么?正如我所提到的,将它们存储在网络共享中是理想的,但这对视频播放有何影响
  3. 流媒体播放视频的最佳方式是什么?在.Net中有标准的方法吗
  4. 我在这里咬得太多了吗?有没有一个打包的解决方案(我们有钱),我可以购买并安装在我的本地硬件上,来完成这一切

对问题1和问题2 的思考

  1. 据我所知,有两个库是AVBlocks和FFlib.NET。FFlib.NET是FFMpeg 的包装器

  2. 文件的两个选项是数据库(作为Blob)和文件系统。如果选择前者,则可以将所有元数据和内容放在同一个存储中。但后者将不那么复杂,而且会更快,因为您直接从磁盘加载数据,而不必通过IDataReader类型的接口(当然需要测试/基准测试)

相关内容

  • 没有找到相关文章

最新更新