ffmpeg rtmp推流

学习ffmpeg流媒体,需要搭建流媒体服务器,本文用nginx搭建rtmp服务器

环境:Ubuntu 16.04.7

1、安装nginx相关依赖

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

2、下载nginx源码

wget http://nginx.org/download/nginx-1.21.6.tar.gz

3、下载nginx-rtmp-module源码

nginx-rtmp-module的官方github地址:https://github.com/arut/nginx-rtmp-module

git clone https://gitcode.com/arut/nginx-rtmp-module.git

4、编译nginx,把nginx-rtmp作为第三方模块

cd nginx-1.21.6/

./configure --with-http_ssl_module --add-module=../nginx-rtmp-module

ps:笔者nginx-1.21.6和nginx-rtmp-module同一级目录

sudo make install

安装在默认路径:/usr/local/nginx 可以省去不少麻烦事

5、检查nginx是否安装成功

/usr/local/nginx/sbin/nginx -v

6、修改nginx的配置文件 /usr/local/nginx/conf/nginx.conf

末尾增加:

rtmp {
        server {
                listen 1935;
                chunk_size 4096;
 
                application live {
                        live on;
                        record off;
                }
        }
}

7、启动nginx

笔者用脚本方式,方便以后启动和关闭

vim /etc/init.d/nginx

#!/bin/bash
#description:Nginx Service Control Script
COM="/usr/local/nginx/sbin/nginx"
PID="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
  $COM
;;
 
stop)
  kill -s QUIT $(cat $PID)
;;
 
restart)
  $0 stop
  $0 start
;;
 
reload)
  kill -s HUP $(cat $PID)
;;
 
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
 
esac
exit 0

chmod +x /etc/init.d/nginx

chkconfig --add nginx                            #添加为系统服务

执行后 chkconfig:未找到命令

笔者也是从网络搜罗的方法,百度方知Ubuntu 中 chkconfig 已经被 sysv-rc-conf 所替代

sudo apt-get install sysv-rc-conf

sudo sysv-rc-conf nginx on             #设置开机启动

重启ubuntu

之后便可以以系统服务启动/停止nginx

systemctl start nginx     #启动nginx

systemctl stop nginx     #停止nginx

8、查看nginx启动情况

ps -ef | grep nginx | grep -v grep

9、查看端口

netstat -anp | grep nginx

nginx监听了2个端口,1935和80。1935是rtmp服务默认监听端口,80是http服务默认监听端口。此时nginx启动了rtmp和http服务

10、ffmpeg测试推流

./ffmpeg -re -stream_loop -1 -i input.mp4 -c copy -f flv rtmp://虚拟机ip:1935/live/test0

ffplay 播放

./ffplay rtmp://虚拟机:1935/live/test0

windows端vlc拉流

打开网络串流 rtmp://虚拟机ip:1935/live/test0

你可能感兴趣的:(ffmpeg)