define rtmp config
This commit is contained in:
parent
c0dbc48562
commit
ecac694557
7 changed files with 89 additions and 2 deletions
|
@ -35,7 +35,6 @@ services:
|
||||||
|
|
||||||
rtmp:
|
rtmp:
|
||||||
build: ./rtmp
|
build: ./rtmp
|
||||||
container_name: rtmp
|
|
||||||
hostname: rtmp
|
hostname: rtmp
|
||||||
volumes:
|
volumes:
|
||||||
- "./data/rtmp/hls:/tmp/hls"
|
- "./data/rtmp/hls:/tmp/hls"
|
||||||
|
@ -50,7 +49,7 @@ services:
|
||||||
|
|
||||||
auth:
|
auth:
|
||||||
build: ./auth
|
build: ./auth
|
||||||
container_name: auth_server
|
hostname: auth
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
internal: {}
|
internal: {}
|
||||||
|
|
7
rtmp/Dockerfile
Normal file
7
rtmp/Dockerfile
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
FROM tiangolo/nginx-rtmp
|
||||||
|
|
||||||
|
COPY nginx.conf /etc/nginx/nginx.conf
|
||||||
|
COPY index.html /www/
|
||||||
|
COPY network.m3u8
|
||||||
|
COPY network0.ts
|
||||||
|
COPY network1.ts
|
41
rtmp/index.html
Normal file
41
rtmp/index.html
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<title>Live Stream</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h2>Live Stream</h2>
|
||||||
|
<video id="video" width="800" controls></video>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
|
||||||
|
<!-- Or if you want a more recent alpha version -->
|
||||||
|
<!-- <script src="https://cdn.jsdelivr.net/npm/hls.js@alpha"></script> -->
|
||||||
|
<script>
|
||||||
|
var video = document.getElementById("video");
|
||||||
|
var videoSrc = "/hls/test.m3u8";
|
||||||
|
if (Hls.isSupported()) {
|
||||||
|
var hls = new Hls();
|
||||||
|
hls.loadSource(videoSrc);
|
||||||
|
hls.attachMedia(video);
|
||||||
|
}
|
||||||
|
// hls.js is not supported on platforms that do not have Media Source
|
||||||
|
// Extensions (MSE) enabled.
|
||||||
|
//
|
||||||
|
// When the browser has built-in HLS support (check using `canPlayType`),
|
||||||
|
// we can provide an HLS manifest (i.e. .m3u8 URL) directly to the video
|
||||||
|
// element through the `src` property. This is using the built-in support
|
||||||
|
// of the plain video element, without using hls.js.
|
||||||
|
//
|
||||||
|
// Note: it would be more normal to wait on the 'canplay' event below however
|
||||||
|
// on Safari (where you are most likely to find built-in HLS support) the
|
||||||
|
// video.src URL must be on the user-driven white-list before a 'canplay'
|
||||||
|
// event will be emitted; the last video event that can be reliably
|
||||||
|
// listened-for when the URL is not on the white-list is 'loadedmetadata'.
|
||||||
|
else if (video.canPlayType("application/vnd.apple.mpegurl")) {
|
||||||
|
video.src = videoSrc;
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
40
rtmp/nginx.conf
Normal file
40
rtmp/nginx.conf
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
events {}
|
||||||
|
rtmp {
|
||||||
|
server {
|
||||||
|
listen 1935; # Listen on standard RTMP port
|
||||||
|
|
||||||
|
application live {
|
||||||
|
live on;
|
||||||
|
hls on;
|
||||||
|
hls_path /tmp/hls;
|
||||||
|
hls_fragment 10s; # default is 5s
|
||||||
|
hls_playlist_length 5m; # default is 30s
|
||||||
|
# once playlist length is reached it deletes the oldest fragments
|
||||||
|
|
||||||
|
# authentication
|
||||||
|
on_publish http://auth:8000/auth;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
http {
|
||||||
|
server {
|
||||||
|
listen 8080;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
root /www;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /hls {
|
||||||
|
types {
|
||||||
|
application/vnd.apple.mpegurl m3u8;
|
||||||
|
application/octet-stream ts;
|
||||||
|
}
|
||||||
|
root /tmp;
|
||||||
|
add_header Cache-Control no-cache;
|
||||||
|
|
||||||
|
# To avoid issues with cross-domain HTTP requests (e.g. during development)
|
||||||
|
add_header Access-Control-Allow-Origin *;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue