Ubuntu安装nginx-http-flv,并获取统计信息

1、依赖安装

sudo apt-get install build-essential
sudo apt-get install libpcre3 libpcre3-dev
sudo apt-get install libssl-dev
sudo apt-get install zlib1g
sudo apt-get install zlib1g-dev

2、源码下载

NGINX 的版本应该大于或者等于 1.2.6,与其他版本的兼容性未知。nginx下载地址:http://nginx.org/download/。nginx-http-flv使用最新版本就可以,这里使用的nginx版本是1.14.2。

mkdir nginx
cd nginx
wget http://nginx.org/download/nginx-1.14.2.tar.gz
tar -zxvf  nginx-1.14.2.tar.gz
git clone https://github.com/winshining/nginx-http-flv-module.git

3、编译安装

cd nginx-1.14.2
./configure --prefix=/usr/local/nginx --with-http_ssl_module --add-module=../nginx-http-flv-module
make -j
make install

4、修改配置文件

修改/usr/local/nginx/conf/nginx.conf添加rtmp服务:

rtmp {
	server {
		listen 1935;
		chunk_size 4000;
		application rtmp-live {
			live on;
	   }  
	}

}

修改http服务:

http {
    ...
    server {
        listen       80;
        ...
		#开启flv
		location /live {
			flv_live on;
			chunked_transfer_encoding on;
		}
		#获取统计信息
		location /stat {
			rtmp_stat all;

			# Use this stylesheet to view XML as web page
			# in browser
			rtmp_stat_format json;
		}
		#control
		location /control {
			rtmp_control all;
		}
		...
    }
}

5、启动

执行

/usr/local/nginx/sbin/nginx

6、测试

ffmpeg -re -i test.mp4 -vcodec copy -acodec copy -f flv rtmp://127.0.0.1:1935/rtmp-live/test

rtmp仅支持H264/AAC,如果媒体不是H264/AAC,请使用下面的命令

ffmpeg -i test.mp4 -vcodec libx264 -acodec fdk-aac -f flv rtmp://127.0.0.1:1935/rtmp-live/test

使用VLC播放视频:

rtmp播放地址:rtmp://127.0.0.1:1935/rtmp-live/test

http-flv播放地址:http://127.0.0.1:80/live?app=rtmp-live&stream=test

7、获取rtmp服务器统计信息

curl 127.0.0.1:80/stat

返回json格式的数据,记录了rtmp server的连接情况:

{
    "http-flv": {
        "nginx_version": "1.14.2",
        "nginx_http_flv_version": "1.2.11",
        "compiler": "gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12) ",
        "built": "Mar 26 2024 13:37:56",
        "pid": 10099,
        "uptime": 2748,
        "naccepted": 13,
        "bw_in": 2160784,
        "bytes_in": 92153201,
        "bw_out": 0,
        "bytes_out": 20844554,
        "servers": [{
                "port": 1935,
                "server_index": 0,
                "applications": [{
                        "name": "rtmp-live",
                        "live": {
                            "streams": [{
                                    "name": "test",
                                    "time": 52043,
                                    "bw_in": 2142224,
                                    "bytes_in": 12709114,
                                    "bw_out": 0,
                                    "bytes_out": 0,
                                    "bw_audio": 0,
                                    "bw_video": 2142224,
                                    "clients": [{
                                            "id": 35,
                                            "address": "127.0.0.1",
                                            "time": 52267,
                                            "flashver": "FMLE/3.0 (compatible; Lavf58.20.100)",
                                            "dropped": 0,
                                            "avsync": -52051,
                                            "timestamp": 52051,
                                            "publishing": true,
                                            "active": true
                                        }
                                    ],
                                    "records": [],
                                    "meta": {
                                        "video": {
                                            "width": 1920,
                                            "height": 1080,
                                            "frame_rate": 24.828,
                                            "codec": "H264",
                                            "profile": "High",
                                            "level": 4.2
                                        },
                                        "audio": {}
                                    },
                                    "nclients": 1,
                                    "publishing": true,
                                    "active": true
                                }
                            ],
                            "nclients": 1
                        },
                        "recorders": {
                            "count": 0,
                            "lists": []
                        }
                    }
                ]
            }
        ]
    }
}

applications里面记录了流的连接情况。

相关推荐
danplus13 分钟前
node发送邮件:如何实现Node.js发信功能?
服务器·node.js·外贸开发信·邮件群发·蜂邮edm邮件营销·邮件接口·营销邮件
BeyondESH27 分钟前
Linux线程同步—竞态条件和互斥锁(C语言)
linux·服务器·c++
wn53128 分钟前
【Go - 类型断言】
服务器·开发语言·后端·golang
hanniuniu1329 分钟前
详细解读,F5服务器负载均衡的技术优势
运维·服务器·负载均衡
PatrickYao04221 小时前
记一次安装discuz时遇到的错误
服务器
读书,代码与猫2 小时前
【裸机装机系列】10.kali(ubuntu)-安装nvidia独立显卡步骤
ubuntu·kali·nvidia·linux安装nvidia显卡·ubuntu安装nvidia·裸机安装linux
小宋10212 小时前
玩转RabbitMQ声明队列交换机、消息转换器
服务器·分布式·rabbitmq
m0_609000422 小时前
向日葵好用吗?4款稳定的远程控制软件推荐。
运维·服务器·网络·人工智能·远程工作
kejijianwen4 小时前
JdbcTemplate常用方法一览AG网页参数绑定与数据寻址实操
服务器·数据库·oracle
厨 神8 小时前
vmware中的ubuntu系统扩容分区
linux·运维·ubuntu