当前位置: 代码网 > 服务器>服务器>Linux > nginx-rtmp-module模块实现视频点播的示例代码

nginx-rtmp-module模块实现视频点播的示例代码

2025年02月09日 Linux 我要评论
预置条件配置点播服务器192.168.246.102, 配置好网卡使其能上网, 安装nginx和nginx-rtmp-module模块,开放端口80, 1935。配置远程服务器192.168.246.

预置条件

  • 配置点播服务器 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

到此这篇关于nginx-rtmp-module模块实现视频点播的文章就介绍到这了,更多相关nginx-rtmp-module 视频点播内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

  • Linux部署jar包过程

    Linux部署jar包过程

    linux部署jar包部署jar包需要注意:linux和你jar的jdk中的版本一定要是一致的需要导入打包的插件,这样我们的jar包才是可运行的数据库的密码大概... [阅读全文]
  • 在Linux服务器上部署War项目教程

    在Linux服务器上部署War项目教程

    linux服务器上部署war项目1.将war包上传到linux服务器上可以使用ftp或sftp等工具。2.确认服务器上已经安装了java运行环境如果没有安装可以... [阅读全文]
  • Linux文件重定向&&文件缓冲区解读

    一、c文件接口stdin & stdout & stderrc默认会打开三个输入输出流,分别是stdin, stdout, stderr仔细观察发现,这三个流的类型…

    2025年02月08日 服务器
  • Linux编译器--gcc/g++使用方式

    一、预编译指令1.1预处理功能去掉注释头文件的展开条件编译宏替换1.2指令预处理指令是以#号开头的代码行gcc下使用:gcc -e code.c -o code.i 来生成可执行文…

    2025年02月08日 服务器
  • Linux环境变量&&进程地址空间详解

    一、初步认识环境变量1.1常见的环境变量path:linux系统下的指令命令的默认搜索路径home:用户登录shell的默认主工作目录shell:当前shell,它的值通常是/bi…

    2025年02月08日 服务器
  • Linux之进程状态&&进程优先级详解

    一、操作系统的进程状态1.1运行状态当一个进程准备就绪,获得了cpu资源,就会在cpu所维护的运行队列上等待cpu的调度一个进程在运行或者处于运行队列中,都叫做运行状态一个进程并不…

    2025年02月08日 服务器

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com