如果我正在构建像 youtube 这样的网站,保存视频的最佳方式是什么?

What is the best way to save video if I am building a site like youtube?

如果我正在构建像 YouTube 这样的网站,保存视频的最佳方式是什么?我正在使用 WebRTC 进行视频录制,网站在 JSF 上,服务器是 tomcat。目前我正在文件服务器上保存视频并将其路径存储在数据库中。我想问一下有没有更好的办法像任何特殊的数据库一样保存视频?

很大程度上取决于观众的规模和位置,但一般来说,将元数据(姓名、流派、演员等信息)与实际视频分开是一种很好的方法。

元数据通常存储在可搜索存储中,如传统数据库、ElasticSearch 等

如果您的站点很小并且您的用户在您本地并且可能通过高速连接进行连接,那么您可能只需将视频本身托管在服务器上的文件系统中即可。

对于任何类型的大规模服务,您实际上都需要使用 CDN 和流媒体服务器。

CDN 通过在网络 'edge' 附近存储您的视频副本,实质上负责确保不同位置的用户获得相似的性能。

流媒体服务器是 'origin' 或 CDN 的来源 - 它通常支持一种或多种流媒体协议(因为不同的设备或浏览器最适合不同的协议),您很可能需要它支持自适应比特率流式传输,本质上是提供以不同比特率编码的每个视频的多个副本,以满足不同的网络条件。

您可能值得查看一些示例流媒体服务器,以了解您是否需要这样做 - 一些流行的示例是: