博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JWPlayer Flash播放器分段载入视频以节省带宽的方法分享
阅读量:4357 次
发布时间:2019-06-07

本文共 878 字,大约阅读时间需要 2 分钟。

近期由于一个项目的需要,对Flash版本的播放器JWPlayer做了一些改进以支持一些功能,这里把中间用到的一些思路和做法记录下。

首先一个功能是:客户的很多flv视频都是完整的一个大视频,希望JWPlayer可以对flv视频文件播放时不全部载入,而是先只载入前面5分钟,等播放到4分钟左右时再去载入后面的5分钟视频。这样的好处显而易见就是可以节省很多服务器流量,避免用户只看2-3分钟暂停在那,也把整个视频给分发下去。 其实该功能很多视频网站,比如优酷他们的做法是将视频真的切分为每7分钟一段,这样的缺点是:文件被切分成碎片在服务器存放,不利于视频文件的管理。

为了实现上述功能,在JWPlayer中进行如下改造:

1) 增加一个NetStream,用于载入下一段数据;

2)服务器需要支持可以通过start和end参数,来索取任意一段视频。比如http://www.a.com/1.flv?start=0&end=1024999这种,用于获取指定关键帧区间的视频(比如5分钟的)。

3)然后播放时,首先通过获取到的metadata,找出第一个5分钟的视频的结尾关键帧位置,然后构造一个NetStream去播放前面5分钟,由于服务器就只给5分钟数据,因此该stream不会不停缓冲服务器数据。

4)等播放到4:20秒左右时,启动一个新的NetStream载入下一段5分钟视频,但此时将video层放在正在播放的视频的下面(不可见)。

5)等第一段视频播放完成后,将第二段的NetStream接着播放,并切换两个video的位置,将第二段放到舞台的前面。

6)等第二段播放快完成时,用第一段的NetStream预载入下一段视频,不停重复上述逻辑直到视频结束。

经过上述处理后,可以非常可控的以分段的效果播放单段视频,既节省了服务器流量,又不需要对视频真正进行切分。关于JWPlayer Flash播放器分段载入视频以节省带宽的方法分享,希望对大家有帮助!

转载于:https://www.cnblogs.com/jndolit/p/9292860.html

你可能感兴趣的文章
DIV_layout
查看>>
[原][osg][粒子特效]spark粒子特效生成流程
查看>>
二维数组中的查找某个数
查看>>
017_编写一个点名器脚本
查看>>
移植最新uboot之新建板—时钟—SDRAM—UART
查看>>
Big Event in HDU
查看>>
利用GCD实现单利模式的宏代码
查看>>
12.30
查看>>
使用C#创建简单的联系人备忘录
查看>>
java.util.concurrent.atomic 类包详解
查看>>
js之对象
查看>>
插件的“动态替换”
查看>>
.Net Core 自动化部署:使用jenkins部署到linux docker容器运行
查看>>
bzoj3289: Mato的文件管理
查看>>
C#中的多态性
查看>>
访问控制
查看>>
NET环境下的未处理异常(unhandled exception)的解决方案
查看>>
Openflow
查看>>
我所了解的数据库优化
查看>>
ssh-keygen的学习总结
查看>>