docker搭建直播

一、下载直播软件

我们下载nginx-rtmp的镜像(https://hub.docker.com/r/tiangolo/nginx-rtmp)

  1. docker pull tiangolo/nginx-rtmp

docker搭建直播 - 图1

二、运行容器并做相关的配置

  1. docker run --name live-nginx -p 1935:1935 -p 80:80 -v /Users/lishuo/Code/docker/live_nginx/html:/usr/share/nginx/html -v /Users/lishuo/Code/docker/live_nginx/conf/nginx.conf:/etc/nginx/nginx.conf -d tiangolo/nginx-rtmp:latest
  • docker run 基于镜像运行容器
  • —name live-nginx 给容器自定义名字
  • -p 1935:1935 宿主机:容器做映射 1935直播端口号
  • -p 80:80 宿主机:容器做映射 80 nginx默认端口
  • -v /Users/lishuo/Code/docker/live_nginx/html:/usr/share/nginx/html nginx项目访问数据卷映射 宿主机(/Users/lishuo/Code/docker/live_nginx):容器 (/usr/share/nginx/html)
  • /Users/lishuo/Code/docker/live_nginx/conf/nginx.conf:/etc/nginx/nginx.conf nginx配置文件的映射,作用是配置直播相关的配置信息
  • -d 守护进程
  • tiangolo/nginx-rtmp:latest 基于此容器进行运行
  1. tips:
  2. /Users/lishuo/Code/docker/live_nginx/html (自己本地的路径,别复制我的)
  3. /Users/lishuo/Code/docker/live_nginx/conf/nginx.conf (这个文件内容我放到下面)

nginx.conf

  1. worker_processes 1;
  2. events {
  3. worker_connections 1024;
  4. }
  5. rtmp {
  6. server {
  7. listen 1935;#监听端口
  8. chunk_size 500;#切片大小
  9. application mylive {
  10. live on;#开启
  11. hls on;
  12. hls_path /usr/share/nginx/html/live_stream;#流文件保存位置
  13. hls_fragment 5s;#延迟
  14. }
  15. }
  16. }
  17. http {
  18. server {
  19. listen 80;
  20. location / {
  21. # 这里可以添加其他 HTTP 配置
  22. root /usr/share/nginx/html;
  23. index index.html index.htm;
  24. }
  25. }
  26. }

执行以上指令得到运行的容器 docker搭建直播 - 图2

三、测试网站映射是否成功

在自己本地的/Users/lishuo/Code/docker/live_nginx/html (自己本地的路径,别复制我的)新建html文件,内容自己定义 docker搭建直播 - 图3 docker搭建直播 - 图4 使用ip地址进行访问即可:出现以下界面,访问成功 docker搭建直播 - 图5

四、测试直播rtmp推流是否成功

  1. 下载推流工具obs或者其他的推流工具

docker搭建直播 - 图6

2.没有显示推流异常,即推流成功

docker搭建直播 - 图7

五、编写页面进行访问直播推流

docker搭建直播 - 图8