流媒体视频如何工作?

Posted

技术标签:

【中文标题】流媒体视频如何工作?【英文标题】:How do streaming videos work? 【发布时间】:2010-10-10 14:40:39 【问题描述】:

所以我有一些 .flv 格式的视频,我希望人们能够从我的网站观看,而无需下载它们。到目前为止,Flowplayer 似乎是实际 Flash 播放器的最佳选择。

但是,我一直在研究这个视频流的东西,因为它应该使视频观看速度非常快,并允许寻找到视频的中间等。我需要什么才能让它工作,是吗?需要一些特殊的服务器软件吗?以及如何使用我将用于显示视频的 javascript/php 代码与该软件集成?

谢谢。

【问题讨论】:

【参考方案1】:

好消息!您不需要特殊的软件,大多数合理的 Web 服务器可以开箱即用地完成所有这些工作。你所描述的,以及 Youtube 和其他人所做的,实际上并不是流媒体。它被称为渐进式下载。

基本上,SWF 播放器(在您的情况下为 flowplayer)正在下载 FLV 视频,并播放到目前为止已下载的内容。要跳到它已经下载的一些视频,它会在下载的文件中寻找。为了跳过已经下载的内容,它会丢弃下载的文件并开始新的下载,但它会要求 HTTP 服务器开始以某个偏移量向它提供文件。值得庆幸的是,大多数 HTTP 服务器都可以立即执行此操作。

因此,您只需将 FLV 文件放在可通过 HTTP 公开下载的位置(只需使用浏览器测试即可)。假设您将 flowplayer 放在您网站上的 /flowplayer.swf 中,并且视频是 /2girls1cup.flv,您可以将其插入到您的页面中:

<script src="http://static.flowplayer.org/js/flowplayer-3.0.6.min.js"></script>

<!-- Edit this with the width and height to display the video -->
<a  
    href="/2girls1cup.flv"  
    style="display:block;width:425px;height:300px;"  
    id="player"> 
</a> 

<!-- this script block will install Flowplayer inside previous anchor tag --> 
<script language="JavaScript"> 
    flowplayer("player", "/flowplayer.swf"); 
</script>

我从the flowplayer demos page 中获取了这个示例,其中有更多示例,说明了自定义 flowplayer 的许多方法,它的行为和显示方式。

实际的流媒体服务器有两种更好的方式。一种是对流进行多播,其中所有客户端都在视频中的同一位置,这在服务器上更容易。另一个是能够为同一流提供多种不同的编码,例如,客户端可以以最匹配其播放能力的比特率播放视频。

A lot of companies 赌了很多钱,这对于视频在网络上的起飞非常重要。看起来他们都错了。流媒体服务器主要用于企业世界,这可能解释了它们的企业价格。

【讨论】:

谢谢。还有1个问题,无论如何我可以保护flv文件不被未经授权的人下载吗?它应该仅供会员使用 如果有人可以看电影,他们可以下载。同样,如果他们可以下载它,他们就可以观看它。服务器端的标准基于 cookie 的身份验证可以工作,但在您的情况下如何准确地做到这一点是一个完整的“另一个问题”。 我希望没有人在看那部电影!

以上是关于流媒体视频如何工作?的主要内容,如果未能解决你的问题,请参考以下文章

视频流网站开发[关闭]

如何在 iOS 中保存流媒体视频?

如何在 android 中播放来自 URL 的流媒体视频?

视频流媒体直播/录播服务器(求高人解答)

保障实时音视频服务体验,华为云原生媒体网络有7大秘籍

如何在 html 中嵌入来自 Raspberry Pi 的流媒体视频?