ngx_http_flv_module
允许Nginx服务器以流的形式提供FLV文件,使得客户端可以通过HTTP请求直接播放FLV视频。
它通过发送回文件的内容来处理请求URI查询字符串中带有特定start
参数的请求,文件的内容从请求字节偏移开始的且FLV头为前缀。
提示
--with-http_flv_module
启用模块
指令
名称 | 参数类型 | 默认值 | 作用描述 | 上下文 |
---|---|---|---|---|
flv | - | - | 是否开启空flv转流支持 | location |
示例
可以通过这个站点下载一些示例flv文件,我随意下载了一个到flv
目录下, 取名为sample.flv,然后将其转为H264编码
后名字为sample-264.flv,结合flv.js示例。
nginx
server {
listen 8081;
server_name localhost;
# 开启flv伪流转换
location /flv {
flv;
alias flv;
}
location / {
root flv;
index index.html;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
html
<!doctype html>
<html>
<head>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0, maximum-scale=1.0, minimal-ui" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta http-equiv="x-ua-compatible" content="IE=7,9,10">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title id="title"></title>
</head>
<body>
<h1>Hello flv</h1>
<button onclick="play()">播放</button>
<button onclick="pause()">暂停</button>
<br><br>
<video id="videoElement" height="500" width="1000" style="border:thin solid black" controls loop></video>
<script src="https://cdn.bootcss.com/flv.js/1.5.0/flv.min.js"></script>
<script>
var videoElement = document.getElementById('videoElement');
var flvPlayer = flvjs.createPlayer({
isLive:true,
type: 'flv',
url: '/flv/sample-264.flv',
enableWorker: true,
enableStashBuffer: false,
stashInitialSize: 128 // 减少首桢显示等待时长
});
flvPlayer.attachMediaElement(videoElement);
flvPlayer.load();
function play(){
flvPlayer.play();
}
function pause(){
flvPlayer.pause();
}
</script>
</body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
访问 http://localhost:8081 后,效果如下: