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

时间:2013-04-06 11:21:47

标签: javascript html5 video-streaming

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

问候!

1 个答案:

答案 0 :(得分:4)

我不确定我是否完全明白了。如果你想要的是在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>

以下是HTML5的supported video formats列表。

编辑:

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

http://streaming_server/fetch?url=<a_url>&type=youtube-api&api-version=1

以上示例适用于我们要转换为连续数据流的Youtube网址。服务器在内部将公共URL转换为.mp4,并通过HTTP发回他从Youtube服务器接收的数据。

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

http://your_streaming_server/fetch?type=mega-api&file_id=<id>&file_key=<key> 

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

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