一、安装依赖库

1.gcc

$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
......
Thread model: posix
gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)

# 未安装:yum install -y gcc gcc-c++ 

2.pcre

$ rpm -qa pcre
pcre-8.32-17.el7.x86_64

# 未安装:yum install -y pcre pcre-devel 

3.zlib

$ yum list installed | grep zlib*
zlib.x86_64                   1.2.7-21.el7_9             @updates               
zlib-devel.x86_64             1.2.7-21.el7_9             @updates

# 未安装:yum install -y zlib zlib-devel 

4.openssl

$ rpm -qa openssl
openssl-1.0.2k-26.el7_9.x86_64

# 未安装:yum install -y openssl openssl-devel

 二、安装nginx

1.下载nginx

官网下载https://nginx.org/en/download.html,我选择了 https://nginx.org/download/nginx-1.26.0.tar.gz 版本:

$ wget https://nginx.org/download/nginx-1.26.0.tar.gz
$ tar -zxvf nginx-1.26.0.tar.gz

# 下载目录 /software
[root@ nginx-1.26.0]# ls
CHANGES  CHANGES.ru  LICENSE  Makefile  README  auto  conf  configure  contrib  html  man  objs  src
[root@ nginx-1.26.0]# pwd
/software/nginx-1.26.0

2.下载nginx-rtmp

我直接下载的压缩包(地址:https://github.com/arut/nginx-rtmp-module),拷贝到centos里面解压到 /software目录

[root@ nginx-rtmp-module-master]# ls
AUTHORS     ngx_rtmp_access_module.c     ngx_rtmp_cmd_module.h      ngx_rtmp_handler.c         ngx_rtmp_netcall_module.h  ngx_rtmp_relay_module.c
LICENSE     ngx_rtmp_amf.c               ngx_rtmp_codec_module.c    ngx_rtmp_handshake.c       ngx_rtmp_notify_module.c   ngx_rtmp_relay_module.h
README.md   ngx_rtmp_amf.h               ngx_rtmp_codec_module.h    ngx_rtmp_init.c            ngx_rtmp_play_module.c     ngx_rtmp_send.c
config      ngx_rtmp_auto_push_module.c  ngx_rtmp_control_module.c  ngx_rtmp_limit_module.c    ngx_rtmp_play_module.h     ngx_rtmp_shared.c
dash        ngx_rtmp_bandwidth.c         ngx_rtmp_core_module.c     ngx_rtmp_live_module.c     ngx_rtmp_proxy_protocol.c  ngx_rtmp_stat_module.c
doc         ngx_rtmp_bandwidth.h         ngx_rtmp_eval.c            ngx_rtmp_live_module.h     ngx_rtmp_proxy_protocol.h  ngx_rtmp_streams.h
hls         ngx_rtmp_bitop.c             ngx_rtmp_eval.h            ngx_rtmp_log_module.c      ngx_rtmp_receive.c         ngx_rtmp_version.h
ngx_rtmp.c  ngx_rtmp_bitop.h             ngx_rtmp_exec_module.c     ngx_rtmp_mp4_module.c      ngx_rtmp_record_module.c   stat.xsl
ngx_rtmp.h  ngx_rtmp_cmd_module.c        ngx_rtmp_flv_module.c      ngx_rtmp_netcall_module.c  ngx_rtmp_record_module.h   test
[root@2 nginx-rtmp-module-master]# pwd
/software/nginx-rtmp-module-master

3.安装

[root@ nginx-rtmp-module-master]# cd /software/nginx-1.26.0/
[root@ nginx-1.26.0]# ls
CHANGES  CHANGES.ru  LICENSE  Makefile  README  auto  conf  configure  contrib  html  man  objs  src

[root@ nginx-1.26.0]# ./configure --prefix=/usr/local/nginx --add-module=/software/nginx-rtmp-module-master

[root@ nginx-1.26.0]# make && make install

nginx 安装在 /usr/local/nginx/ 目录下

4.配置nginx-rtmp

$ /usr/local/nginx/conf/nginx.conf

# 文件的最后面,添加下列配置(github有详细的配置示例)
rtmp {
    server {
        listen 1935; #监听的端口 
        chunk_size 4000;
        application tv_file {
            live on; #开启实时
            hls on; #开启hls
            hls_path /usr/local/nginx/html/tv_file; #rtmp推流请求路径,文件存放路径
            hls_fragment 5s; #每个TS文件包含5秒的视频内容
        }
    }
}

# 启动nginx
$ /usr/local/nginx/sbin/nginx

# 重启nginx
/usr/local/nginx/sbin/nginx -s reload

 netstat查看nginx进程是否正常运行:

$ netstat -anlp | grep nginx
tcp 0 0 0.0.0.0:1935 0.0.0.0:* LISTEN 7247/nginx: master
tcp 0 0 0.0.0.0:8081 0.0.0.0:* LISTEN 7247/nginx: master
unix 3 [ ] STREAM CONNECTED 580172994 7247/nginx: master
unix 3 [ ] STREAM CONNECTED 580172997 7247/nginx: master
unix 3 [ ] STREAM CONNECTED 580172995 7247/nginx: master
unix 3 [ ] STREAM CONNECTED 580172996 7247/nginx: master

 

Dockerfile安装:

FROM centos:centos7.9.2009

WORKDIR /software
#安装依赖库
RUN yum install -y epel-release \
    && yum install -y gcc gcc-c++ make zlib zlib-devel pcre pcre-devel openssl openssl-devel wget git \
    && yum clean all

#下载nginx、nginx-rtmp源码
RUN wget https://nginx.org/download/nginx-1.26.0.tar.gz \
    && tar -zxvf nginx-1.26.0.tar.gz \
    && git clone https://github.com/arut/nginx-rtmp-module.git

#编译安装
RUN cd /software/nginx-1.26.0 \
    && ./configure --prefix=/usr/local/nginx --add-module=/software/nginx-rtmp-module \
    && make && make install

#复制Nginx配置文件
# COPY nginx.conf /usr/local/nginx/conf/nginx.conf
    
EXPOSE 80 443
ENTRYPOINT /usr/local/nginx/sbin/nginx -g "daemon off;"

 

posted @ 2024-05-22 20:24 划水的猫 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 基于CentOS 7.9的基础镜像,安装mediainfo以及ffmpeg工具 一、安装 FROM centos:centos7.9.2009 RUN yum install epel-release -y RUN yum install mediainfo -y RUN rpm -Uvh http 阅读全文
posted @ 2024-05-22 19:13 划水的猫 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 1.《获取STS临时授权凭证》 2.《通过STS Token分片上传文件》 一、相关文档 1.AWS S3预签名URL文档:https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/example_s3_Scenario_Presigne 阅读全文
posted @ 2024-04-29 16:00 划水的猫 阅读(461) 评论(0) 推荐(0) 编辑
摘要: 1.《获取STS临时授权凭证》 2.《通过STS Token分片上传文件》 3.《文件预签名URL》 一、相关文档 1.AWS分片上传文档:https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/mpuoverview.html 2.获 阅读全文
posted @ 2024-04-28 19:48 划水的猫 阅读(414) 评论(0) 推荐(0) 编辑
摘要: 1.《获取STS临时授权凭证》 2.《通过STS Token分片上传文件》 3.《文件预签名URL》 一、前言 背景:一个S3 bucket,存储用户的文件,每个用户只允许上传、下载自己目录下的文件。 如何让Policy更灵活、更动态,可以让获取到的权限凭证可以匹配到单个终端用户的S3文件目录下。 阅读全文
posted @ 2024-04-24 19:44 划水的猫 阅读(383) 评论(0) 推荐(0) 编辑
摘要: 内核版本:Linux 3.10 内核源码地址:https://elixir.bootlin.com/linux/v3.10/source (包含各个版本内核源码,且网页可全局搜索函数) 一、应用层-accept()函数 /** * sockfd:监听socket的文件描述符 * addr:存放地址信 阅读全文
posted @ 2024-01-21 10:40 划水的猫 阅读(390) 评论(0) 推荐(0) 编辑
摘要: 内核版本:Linux 3.10内核源码地址:https://elixir.bootlin.com/linux/v3.10/source (包含各个版本内核源码,且网页可全局搜索函数)《TCP三次握手源码分析(客户端发送SYN)》《TCP三次握手源码分析(服务端接收SYN以及发送SYN+ACK)》《T 阅读全文
posted @ 2024-01-20 10:41 划水的猫 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 内核版本:Linux 3.10内核源码地址:https://elixir.bootlin.com/linux/v3.10/source (包含各个版本内核源码,且网页可全局搜索函数)《TCP三次握手源码分析(客户端发送SYN)》《TCP三次握手源码分析(服务端接收SYN以及发送SYN+ACK)》 一 阅读全文
posted @ 2024-01-11 21:24 划水的猫 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 内核版本:Linux 3.10内核源码地址:https://elixir.bootlin.com/linux/v3.10/source (包含各个版本内核源码,且网页可全局搜索函数)接上一篇,TCP三次握手源码分析(客户端发送SYN) 一、服务端响应SYN 在服务器端,所有的TCP包(包括客户端发来 阅读全文
posted @ 2024-01-10 19:03 划水的猫 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 一、环境说明 内核版本:Linux 3.10 内核源码地址:https://elixir.bootlin.com/linux/v3.10/source (包含各个版本内核源码,且网页可全局搜索函数) 二、TCP协议格式 各字段的作用: 源端口号:用于指定本地程序绑定的端口; 目的端口号:用于指定远端 阅读全文
posted @ 2024-01-07 20:00 划水的猫 阅读(330) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示