修改 video.js 默认 bufferTime
1、自建rtmp推流、转发、播放,前端用video.js 发现总延时在2秒多,服务器已优化,看看video.js能否优化
2、引用:在RTMP播放器侧,很重要的一点是:在 NetStream.setBufferTime() 方法中讲参数设置为0(在Actionscript 3上,请使用"NetStream.bufferTime = 0;")。 这将让你的播放器获得最低的延时效果。
3、没找到可配的参数,找到个小鬼子说是写死的:https://plaza.rakuten.co.jp/pirorin55/diary/201610080004/
4、查看swf源码发现video.js 的bufferTime确实是写死的,默认bufferTime为1秒(swf播放http的默认是 0.5s)。查看源码:
video.js swf 文件源码地址:https://github.com/videojs/video-js-swf/tree/master
文件路径:src\com\videojs\providers\RTMPVideoProvider.as
源码:443行, _ns.bufferTime = 1;
5、修改编译(配置好nodejs环境(cnpm最新)、java环境(openjdk 1.6),cd到源码根目录,然后只需两步):
Install Node Packages.
$ cnpm install Compile SWF. Development (places new SWF in /dist/):
$ grunt mxmlc
然后去/dist/目录下找swf文件。
----------------------------------------------------------------
编译报错:
1、grunt mxmlc 错误,最大错误,不熟悉mxmlc这东西,浪费好久时间搞定
$ grunt mxmlc
Running "mxmlc:videojs_swf" (mxmlc) task
>> Error: Command failed: /root/soft/video-js-swf/node_modules/_flex-sdk@4.6.-@flex-sdk/lib/flex_sdk/bin/mxmlc -output dist/video-js.swf -define=CONFIG::version, "5.4.1" -- src/VideoJS.as
>> /root/soft/video-js-swf/node_modules/_flex-sdk@4.6.-@flex-sdk/lib/flex_sdk/frameworks/flex-config.xml(): Error: unable to open 'libs/player/11.1/playerglobal.swc'
>>
>> </external-library-path>
Warning: FAILED Use --force to continue. Aborted due to warnings.
主要原因是找不到:libs/player/11.1/playerglobal.swc
去此处下载对应版本的playerglobal.swc文件:https://github.com/nexussays/playerglobal
放在对应路径下,发现还是报错,直接修改对应xml文件,将swc文件路径改为绝对路径:
vim /root/soft/video-js-swf/node_modules/_flex-sdk@4.6.-@flex-sdk/lib/flex_sdk/frameworks/flex-config.xml
找到:<path-element>libs/player/{targetPlayerMajorVersion}.{targetPlayerMinorVersion}/playerglobal.swc</path-element>
修改为绝对路径:
<path-element>/root/soft/video-js-swf/libs/player/{targetPlayerMajorVersion}.{targetPlayerMinorVersion}/playerglobal.swc</path-element>
编译通过。
2、其它错误都是小错了,npm错误,换cnpm。
这是作者编译的:原版1秒,编译的0.01秒,编译的0.1秒的video-js.swf (video-js-5.20.1版本亲测没问题),下载地址:
https://download.csdn.net/download/dwj192acm/10476237
修改 video.js 默认 bufferTime的更多相关文章
- 修改node.js默认的npm安装目录
转自https://blog.csdn.net/baijinwen/article/details/77961746 默认的安装路径:C:/用户/[用户名]/AppData/Roming/npm/no ...
- video.js视频播放插件
1 初始化 Video.js初始化有两种方式. 1.1 标签方式 一种是在<video>标签里面加上class="video-js"和data-setup='{}'属性 ...
- 【转】如何修改 video 样式
我们这里说的“修改 video 样式”并不是要自己实现一套 controls,而是尝试修改 video 的默认样式 隐藏全屏按钮 这个很容易查到 video::-webkit-media-contro ...
- 修改CKplayer.js 源码解决移动端浏览器全屏不能限制快进的问题
原文地址:https://www.cnblogs.com/jying/p/9642445.html,转载请说明出处. 最近项目需要播放视频且限制未观看部分的快进功能,找了两款js插件ckplayer和 ...
- video.js播放rtmp
项目中要用到rtmp直播和点播.要求:点播能够调整播放进度 开始用腾讯提供的播放器,老卡,画质差,很多时候播不出来,rtmp点播还不能快进. 后来用Wowza自带的flash rtmp播放器,有源码 ...
- 前端视频直播技术总结及video.js在h5页面中的应用
全手打原创,转载请标明出处:https://www.cnblogs.com/dreamsqin/p/12557070.html,多谢,=.=~ (如果对你有帮助的话请帮我点个赞啦) 目前有一个需求是在 ...
- Video.js随笔记
下载与介绍 Video.js是一款web视频播放器,支持html5和flash两种播放方式.更有自定义皮肤,插件,组件,语言还有丰富的选项配置. 官网下载地址:https://videojs.com/ ...
- video.js
1.github地址 2.常用API: class : video-js: video-js应用视频所需的风格.js功能,比如全屏和字幕. vjs-default-skin: vjs-default- ...
- video.js播放mp4文件
HTML5的标签 video 支持的mp4编码为视频编码 H.264 音频AAC 参考网址 http://www.w3school.com.cn/html5/html_5_video.asp 视频格式 ...
随机推荐
- 【7.24校内交流赛】T3【qbxt】复读警告
数据范围:N,key<=1000; 首先看题目背景,显然不是DP就是图论,但是这显然不是个图论,因此这就是个DP: 接下来考虑怎么DP 我们定义dp[i][j]表示现在dp到了第i个数,当前i个 ...
- Cyclic Nacklace HDU 3746 KMP 循环节
Cyclic Nacklace HDU 3746 KMP 循环节 题意 给你一个字符串,然后在字符串的末尾添加最少的字符,使这个字符串经过首尾链接后是一个由循环节构成的环. 解题思路 next[len ...
- 1、Java语言概述与开发环境——JDK JRE JVM理解
一.理解概念: 1.JDK(Java Development Kit Java开发工具包) JDK是提供给Java开发人员使用的,其中包含Java的开发工具,也包括JRE,所以安装了JDK,就不用单独 ...
- antd组件Upload实现自己上传
前言 在实现图片上传时,可能需要用到Upload,但是它默认的上传方式是加入图片后直接上传,如果要实现最后再一次性上传,需要自定义内容. //添加按钮的样式 const uploadButton = ...
- 【转】Hadoop 1.x中fsimage和edits合并实现
在NameNode运行期间,HDFS的所有更新操作都是直接写到edits中,久而久之edits文件将会变得很大:虽然这对NameNode运行时候是没有什么影响的,但是我们知道当NameNode重启的时 ...
- django中配置MySql
1.配置字段 在setting文件中配置数据库字段:数据库需要提前手动创建好:语句(create database testdb charset "utf8";) DATABASE ...
- 使用vscode来代替git上传代码到仓库
一.在上传前的注意事项 1. 要配置几个文件: (1)在根目录添加 .gitignore 文件:里面添加一些上传时需要忽略的文件 (2)在根目录添加 README.md 文件,这个用来说明项目的 ...
- 利用localStorage实现浏览器中多个标签页之间的通信
原理: localStorage是浏览器存储数据的容器,而且它是多页面共享的,利用localStorage多页面共享的特性,可以实现多个标签页的通信. 比如: 一个标签页发送消息(将发送的消息设置到l ...
- Python 序列化 pickle/cPickle模块
Python 序列化 pickle/cPickle模块 2013-10-17 Posted by yeho Python序列化的概念很简单.内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给 ...
- NOIP2016 D1T1 玩具谜题
洛谷P1563 看完了noip2017觉得noip2016是真的简单……2017第一题就卡住2016第一题10分钟AC 思路: m<=100000很明显暴力模拟就可以 唯一有一点点难度的地方就是 ...