nginx-rtmp-module模块实现视频点播

2 篇文章 0 订阅
1 篇文章 0 订阅

预置条件

  • 配置点播服务器 192.168.246.102 , 配置好网卡使其能上网, 安装nginx和nginx-rtmp-module模块,开放端口80, 1935。
  • 配置远程服务器192.168.246.103 ,配置好网卡使其能上网,安装nginx模块,开放端口80。
  • 播放测试工具: VLC media player

Nginx点播基本配置

  • 配置点播服务器 192.168.246.102

    # 配置worker的用户
    # 如果不配置此项,默认为nobody,视频因权限问题无法播放
    user www;
    ...
    rtmp {
        server {
            listen 1935;
        
            application vod {
                play /var/rec;
            }
            
        }
    }
    
  • 添加www用户

    # groupadd www
    # useradd -g www www
    
  • 重启Nginx

    # systemctl restart nginx
    
  • 创建/var/rec目录

    # mkdir /var/rec
    
  • 把文件flv或mp4文件放置在/var/rec目录下,并修改权限

    # chown www:www /var/rec -R
    # cd /var/rec
    # ls 
    abcd-1703474265-2023-12-25-11_17_45.flv  abcd-1703474338-2023-12-25-11_18_58.flv
    
  • 使用 VLC media player

    点击菜单 “媒体” - “打开网络串流”, 输入 URL

    rtmp://192.168.246.102/vod/abcd-1703474265-2023-12-25-11_17_45.flv

  • 注意:如果 /var/rec 有下级目录,播放URL需要使用两个斜杠

    比如,要播放 /var/rec/flv 下的flv文件 abc.flv

    输入URL为 rtmp://192.168.246.102/vod//flv/abc.flv

点播远程文件

点播服务器也可以播放远程服务器的资源

  • 配置远程服务器192.168.246.103

    http {
      	... 
      	server {
            listen 8081;
            server_name localhost;
            
            location / {
                root /www;
            }
        }
    }
    
  • 开放8081端口

    # firewall-cmd --zone=public --add-port=8081/tcp --permanent
    # firewall-cmd --reload
    
  • 创建目录 /www/rec , 并把视频文件放在此目录下

    # mkdir /www/rec
    # ... 此处省略了移动文件步骤
    # cd /www/rec
    # ls
    abcd-1703474051-2023-12-25-11_14_11.flv  abcd-1703474066-2023-12-25-11_14_26.flv
    
  • 配置点播服务器 192.168.246.102

    rtmp {
        server {
            listen 1935;
        
            application vod2 {
                play http://192.168.246.103:8081/rec;
            }
        }
    }
    
  • 使用 VLC media player

    点击菜单 “媒体” - “打开网络串流”, 输入 URL

    rtmp://192.168.246.102/vod2/abcd-1703474066-2023-12-25-11_14_26.flv

  • 注意:如果 /www/rec 有下级目录, 播放URL需要使用两个斜杠

    比如,要播放 /var/rec/flv 下的flv文件 abc.flv

    输入URL为 rtmp://192.168.246.102/vod2//flv/abc.flv

指定多个播放位置

  • 配置点播服务器 192.168.246.102

    rtmp {
        server {
            listen 1935;
        
            application vod3 {
          		# /var/abc 目录不存在
                play /var/abc /var/rec http://192.168.246.103:8081/rec;
            }
        }
    }
    
  • 使用 VLC media player播放 rtmp://192.168.246.102/vod3/abcd-1703474338-2023-12-25-11_18_58.flv

    • 由于目录 /var/abc 不存在, 尝试播放目录 /var/rec 下的文件;
    • 可以成功播放目录 /var/rec 下的文件 abcd-1703474338-2023-12-25-11_18_58.flv , 于是不再从后面位置查找要播放的文件。

参考

https://github.com/arut/nginx-rtmp-module

  • 16
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值