0

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

申请应提供以下内容:

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

注意事项:

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

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

问题:

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

1 回答 1

0

对问题 1 和 2 的思考

  1. 我知道的两个库是 AVBlocks 和 FFlib.NET。FFlib.NET 是 FFMpeg 的包装器

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

于 2013-08-26T23:57:39.127 回答