从服务器下载流式传输视频

Eno*_*not 3 html javascript video-streaming

我确定这毕竟可能是一个愚蠢的问题,但我有一个个人项目,我想开发一个带有 html5 视频的应用程序网络,该视频从托管文件的服务器服务 (mega.co.nz) 中缓冲视频,Mega 提供一个用于基础操作的 API,我想要的只是简单地缓冲视频,但我对流媒体事务中的所有关注点都有模糊的知识,我进行了详尽的搜索,但我没有找到太多东西,或者我在搜索这些术语时非常模棱两可,我希望如果有人可以向我发布关于 javascript 和 html5 下的流缓冲的页面资源,我将不胜感激:)

问候!

Hal*_*oum 5

我不确定我是否完全明白了。如果您想要在HTML5页面中显示由远程服务托管的视频,这就是我们通常的做法:

<video width="width_in_pixels" height="height_in_pixels" controls>
  <source src="your_url.mp4" type="video/mp4">
  <source src="your_url.ogg" type="video/ogg">
  <!-- a list of the different mime types available for your video -->
</video>
Run Code Online (Sandbox Code Playgroud)

这是HTML5支持的视频格式列表。

编辑 :

虽然某些网络服务(例如 Mega)提供加密的临时 URL,但我们在我公司所做的是使用流代理。我们在内部使用了一个小型 HTTP 服务器,它可以接收如下请求:

http://streaming_server/fetch?url=<a_url>&type=youtube-api&api-version=1
Run Code Online (Sandbox Code Playgroud)

上面的例子适用于我们想要转换为连续数据流的 Youtube url。服务器在内部将公共 url 转换为 .mp4 格式,并通过 HTTP 发回他从 Youtube 服务器接收的数据。

所以,你可以做的是自己编写一个模块化的流媒体服务器(所以它可以与 Mega 或 Fileserve 或其他任何东西一起使用),它能够像我们为 Youtube 所做的那样处理处理 Mega 的 API 的特定请求:

http://your_streaming_server/fetch?type=mega-api&file_id=<id>&file_key=<key> 
Run Code Online (Sandbox Code Playgroud)

这会将文件原始数据转发到客户端。这只是一个示例,凭据管理或检索的其他安全方面取决于您,但您明白了。

将下载数据的责任委托给第三方服务是一个好主意,因为这将使您的代码与特定功能部分分离,并将在您的所有客户端应用程序中提供相同的服务。