流媒体服务器
服务器部署
nginx + nginx-rtmp-module部署
-
安装依赖项
sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-devzlib1g-dev
-
下载源码
wget https://nginx.org/download/nginx-1.21.6.tar.gz wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
-
编译安装
cd nginx ./configure --with-http_ssl_module --add-module=…/nginx-rtmp-module-master make sudo make install
-
运行
# 启动 sudo /usr/local/nginx/sbin/nginx # 关闭 sudo /usr/local/nginx/sbin/nginx -s stop
srs服务器部署
-
源码下载
git clone -b develop https://gitee.com/ossrs/srs.git
-
编译安装
cd srs/trunk ./configure make
-
运行
# 运行目录 srs/trunk # 配置目录 srs/trunk/conf/srs.conf ./objs/srs -c conf/srs.conf
ffmpeg推流
ffmpeg -re -i "2-1.mp4" -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -max_delay 100 -g 2 -f flv rtmp://202.38.214.123:1935/hls/stream
ffmpeg录频推流
ffmpeg -f gdigrab -i desktop -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -max_delay 100 -g 2 -f flv rtmp://202.38.214.123:1935/hls/stream
ffmpeg推流相关参数
参数 | 用途 |
---|---|
-re | |
-y | 表示无需询问,直接覆盖输出文件(如果有原文件的话)。 |
-i "2-1.mp4" | 输入视频源 |
-b:v 3000k | 码率设置为3Mbp |
-q:v 1 | 取值范围是[1, 35],取值1的时候,对应着最佳的视频质量。 |
-vcodec libx264 | 视频编码 |
-acodec aac | 音频编码 |
-vprofile baseline | |
-strict -2 | 音频编码为aac时需要使用 |
-ar 44100 | |
-ac 1 | |
-max_delay 100 | |
-g 2 | |
-an | 去除音频 |
-f flv | 推流格式 |
rtmp://43.138.172.178/hls/stream | 推流地址,放在命令的最后 |
拉流
opencv拉流
opencv可以通过构造VideoCapture对象进行拉流
cap = cv.VideoCapture('rtmp://ip/rtmplive/stream')