Laravel 媒体存储最佳实践
Laravel Media Storage Best Practice
抱歉,如果重复,但我在网上找不到太多。我正在开发用于流媒体和教育的网站平台。该网站需要处理大文件(主要是视频)和缩略图。该网站托管在 Azure 上。
将媒体文件存储在 Azure Blob 存储上或网络应用程序内的 public 文件夹中会更好吗?
我都试过了,当我将它们存储在 azure blob 存储中时,视频需要半分钟才能加载 + 你无法搜索视频。
目前你的大视频资源还没有处理,直接让Html播放,所以在加载过程中,你感觉很慢,感觉是在下载,但是不是。这就是网络传输的加载。可以通过F12->Network查看,或者使用Fiddler查看。
我有两个建议。
一种是使用 Azure 媒体服务
使用新的Services,这样在同一个region或者resourcegroup下,加载速度应该会有明显的提升。因为 AMS 处理了所有上传的视频。
优点(对比你现有的方法和下面第二种方法):
- 适配各种码流播放
- 无需自己处理视频。
缺点:需要使用新的Services,可能需要学习(只需要了解视频上传流程,使用官方播放器,嵌入Html代码到你的php page,所以学习周期会很短,半天。),新服务会额外收费。
另一种是在后台编码处理视频。
引入两个概念:block
和chunk
大文件()可以根据需要处理。你也可以 .
与文件存放位置无关。对于大文件,加载速度慢,差别不大。
相关文章或帖子
1. How to stream large .mp4 files?
抱歉,如果重复,但我在网上找不到太多。我正在开发用于流媒体和教育的网站平台。该网站需要处理大文件(主要是视频)和缩略图。该网站托管在 Azure 上。
将媒体文件存储在 Azure Blob 存储上或网络应用程序内的 public 文件夹中会更好吗?
我都试过了,当我将它们存储在 azure blob 存储中时,视频需要半分钟才能加载 + 你无法搜索视频。
目前你的大视频资源还没有处理,直接让Html播放,所以在加载过程中,你感觉很慢,感觉是在下载,但是不是。这就是网络传输的加载。可以通过F12->Network查看,或者使用Fiddler查看。
我有两个建议。
一种是使用 Azure 媒体服务
使用新的Services,这样在同一个region或者resourcegroup下,加载速度应该会有明显的提升。因为 AMS 处理了所有上传的视频。
优点(对比你现有的方法和下面第二种方法):
- 适配各种码流播放
- 无需自己处理视频。
缺点:需要使用新的Services,可能需要学习(只需要了解视频上传流程,使用官方播放器,嵌入Html代码到你的php page,所以学习周期会很短,半天。),新服务会额外收费。
另一种是在后台编码处理视频。
引入两个概念:block
和chunk
大文件()可以根据需要处理。你也可以
与文件存放位置无关。对于大文件,加载速度慢,差别不大。
相关文章或帖子
1. How to stream large .mp4 files?