流媒体服务器

流媒体服务器

流媒体服务器

服务器部署

nginx + nginx-rtmp-module部署

  1. 安装依赖项

    sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-devzlib1g-dev
    
  2. 下载源码

    wget https://nginx.org/download/nginx-1.21.6.tar.gz
    wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
    
  3. 编译安装

    cd nginx
    ./configure --with-http_ssl_module --add-module=…/nginx-rtmp-module-master
    make
    sudo make install
    
  4. 运行

    # 启动
    sudo /usr/local/nginx/sbin/nginx
    # 关闭
    sudo /usr/local/nginx/sbin/nginx -s stop
    

srs服务器部署

  1. 源码下载

    git clone -b develop https://gitee.com/ossrs/srs.git
    
  2. 编译安装

    cd srs/trunk
    ./configure
    make
    
  3. 运行

    # 运行目录 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')
LICENSED UNDER CC BY-NC-SA 4.0