博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nginx+jwplayer配置flv/MP4点播系统, 视频拖动支持
阅读量:6942 次
发布时间:2019-06-27

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

 

 

一 配置nginx

1. 下载 nginx 最新版 http://nginx.org/

2. 安装依赖库, 以ubuntu为例

1
apt-
get 
install libpcre3 libpcre3-dev libssl-dev openssl

3. 编译nginx, 增加flv和MP4的支持

1
/configure --with-http_flv_module --with-http_mp4_module  --with-http_ssl_module --with-debug

   编译时可以指定安装目录 --prefix=/path/to/install

   然后make install

4. 测试是否支持seek(拖动, 快进)

    1) flv需要metadata数据才可以seek. 可以通过ffmpeg来查看flv视频是否有metadata数据. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
> ffmpeg -i test.flv
 
Input #0, flv, 
from 
'test.flv'
:
  
Metadata:
    
metadatacreator : Yet Another Metadata Injector 
for 
FLV - Version 1.9
    
hasKeyframes    : 
true
    
hasVideo        : 
true
    
hasAudio        : 
true
    
hasMetadata     : 
true
    
canSeekToEnd    : 
false
    
datasize        : 23736525
    
videosize       : 21784752
    
audiosize       : 1923169
    
lasttimestamp   : 157
    
lastkeyframetimestamp: 153
    
lastkeyframelocation: 23532906

  如果flv没有metadata数据. 可以通过yamdi来增加metadata数据, 这个工具windows和linux版本都有, 使用起来也很简单     

1
yamdi -i sample.flv -o sample_with_metadata.flv 

  

     2) 把flv视频放在nginx 的html目录下. 然后通过curl或vlc测试拖动

     先修改下nginx的配置nginx.conf, 增加如下内容

1
2
3
4
5
6
7
8
location ~ \.flv$ {
    
flv;
    
limit_rate  250k;
}
location ~ \.mp4$ {
    
mp4;
    
limit_rate  250k;
}

  limit_rate是限速的意思, 因为是本地测试. 缓冲速度非常快. 如果不限速的话, 视频会立刻下载完成. 

 

1
2
3
4
5
curl -I http:
//ip/test.flv
Content-Length: 23739622
 
curl -I http:
//ip/test.flv?start=2373
Content-Length: 23727290

  两次的Content-Length不一样. 

  也可以通过vlc来播放http流. 都是界面点一点. 

二 配置jwplayer

     网上的jwplayer的配置基本上是过时的. 误导我半天

  早期jwplayer里配置的streamer; type; provider; 这些参数在新版里已经没有, 或者不生效了. 

     jwplayer的support中关于seek的文章 http://support.jwplayer.com/customer/portal/articles/1430518-pseudo-streaming-in-flash 可能要FQ才能看

1
2
3
4
5
6
7
8
9
<div id=
"myElement"
>Loading the player...</div>
 
<script type=
"text/javascript"
>
    
jwplayer(
"myElement"
).setup({
        
file:
""
,
        
image: 
"../image/webrtc.png"
,
        
startparam: 
"start"
    
});
</script>

  关键是 startparam: "start". 没有这句的话. jwplayer是无法拖动视频的. MP4可以不需要这个startparam就可以拖动. 

  

 

    这个是jwplayer文档中关于startparam的参数说明. 

转载地址:http://niinl.baihongyu.com/

你可能感兴趣的文章
【数据结构】Java语言描述-单链表的基本操作
查看>>
[翻译]基于Webpack4使用懒加载分离打包React代码
查看>>
Android系统源码分析-JNI
查看>>
Linux下无法正常安装和删除Nodejs的解决方法
查看>>
利用闲置 PC 搭建 NAS 媒体中心 远程下载
查看>>
fishshell中virtualenv配置的小问题
查看>>
提高效率的VScode插件
查看>>
2017-09-24 前端日报
查看>>
TiDB 助力一面数据实现消费领域的决策分析平台
查看>>
面试--web安全的理解
查看>>
初次学习 Docker Volume 的基本使用 (四)
查看>>
关于饭局狼人杀app上的12人守卫局的那些事儿
查看>>
Java中的异常处理
查看>>
深入理解ES6之《块级作用域绑定》
查看>>
Solution - 收藏集 - 掘金
查看>>
分享一个可用于拖动排序的vue组件
查看>>
深入解析Vue源码
查看>>
浏览器缓存机制
查看>>
【183天】黑马程序员27天视频学习笔记【Day14-上】
查看>>
2017-06-21 前端日报
查看>>