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

2025-02-09 04:50

本文主要是介绍nginx-rtmp-module模块实现视频点播的示例代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《nginx-rtmp-module模块实现视频点播的示例代码》本文主要介绍了nginx-rtmp-module模块实现视频点播,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习...

预置条件

  • 配置点播服务器 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;
.js..
rtmp {
    server {
        listen 1935;
    
        application vod {
            play /var/rec;
        }
        
    }
}

添加www用户

# groupadd www
# useradd -g www www

重启Nginx

# systemctl restart nginjsx

创建/var/rec目录

# mkdir /var/rec

把文件flv或mp4文件放置在/var/recChina编程目录下,并修改权限

# 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

点播远程文件

点播服http://www.chinasem.cn务器也可以播放远程服务器的资源

配置远程服务器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为&pythonnbsp;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 视频点播内容请搜索编程China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持China编程(www.chinasem.cn)!

这篇关于nginx-rtmp-module模块实现视频点播的示例代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1153361

相关文章

关于集合与数组转换实现方法

《关于集合与数组转换实现方法》:本文主要介绍关于集合与数组转换实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、Arrays.asList()1.1、方法作用1.2、内部实现1.3、修改元素的影响1.4、注意事项2、list.toArray()2.1、方

使用Python实现可恢复式多线程下载器

《使用Python实现可恢复式多线程下载器》在数字时代,大文件下载已成为日常操作,本文将手把手教你用Python打造专业级下载器,实现断点续传,多线程加速,速度限制等功能,感兴趣的小伙伴可以了解下... 目录一、智能续传:从崩溃边缘抢救进度二、多线程加速:榨干网络带宽三、速度控制:做网络的好邻居四、终端交互

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提

java实现docker镜像上传到harbor仓库的方式

《java实现docker镜像上传到harbor仓库的方式》:本文主要介绍java实现docker镜像上传到harbor仓库的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 前 言2. 编写工具类2.1 引入依赖包2.2 使用当前服务器的docker环境推送镜像2.2

C++20管道运算符的实现示例

《C++20管道运算符的实现示例》本文简要介绍C++20管道运算符的使用与实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录标准库的管道运算符使用自己实现类似的管道运算符我们不打算介绍太多,因为它实际属于c++20最为重要的

Java easyExcel实现导入多sheet的Excel

《JavaeasyExcel实现导入多sheet的Excel》这篇文章主要为大家详细介绍了如何使用JavaeasyExcel实现导入多sheet的Excel,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录1.官网2.Excel样式3.代码1.官网easyExcel官网2.Excel样式3.代码

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

python实现对数据公钥加密与私钥解密

《python实现对数据公钥加密与私钥解密》这篇文章主要为大家详细介绍了如何使用python实现对数据公钥加密与私钥解密,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录公钥私钥的生成使用公钥加密使用私钥解密公钥私钥的生成这一部分,使用python生成公钥与私钥,然后保存在两个文

ModelMapper基本使用和常见场景示例详解

《ModelMapper基本使用和常见场景示例详解》ModelMapper是Java对象映射库,支持自动映射、自定义规则、集合转换及高级配置(如匹配策略、转换器),可集成SpringBoot,减少样板... 目录1. 添加依赖2. 基本用法示例:简单对象映射3. 自定义映射规则4. 集合映射5. 高级配置匹