基于nginx-rtmp-module的推拉流测试

来源:互联网 发布:淘宝怎么设置快递费 编辑:程序博客网 时间:2024/05/20 00:49

1、安装nginx服务器

(参考http://nginx.org/en/docs/)

sudo apt-get install nginx

或者从源码安装

wget https://www.openssl.org/source/openssl-1.1.0e.tar.gz

tar -zxvf openssl-1.1.0e.tar.gz

cd openssl-1.1.0e/

sudo ./config

sudo make && sudo make install

sudo apt-get install libpcre3

sudo apt-get install libpcre3-dev

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

tar -zxvf nginx-1.12.0.tar.gz

cd nginx-1.12.0/

sudo ./configure --prefix=/usr/local/nginx --with-openssl=/usr/local/include/openssl

sudo make && sudo make install

在/usr/local/nginx目录下看到了

conf  html  logs  sbin

表示安装成功


如果同时需要安装Apache,由于这两种类型的服务器都需要开机自启,且默认会占用80端口。所以要修改一下nginx服务器默认配置

sudo netstat -natp

查询到

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      55463/nginx.conf

sudo gedit /usr/local/nginx/conf/nginx.conf

http {

    server {
        listen       80;
        server_name  localhost;

http {

    server {
        listen       8888;
        server_name  localhost;

重启nginx

cd /usr/local/nginx

sudo ./sbin/nginx -s stop

sudo ./sbin/nginx -c ./conf/nginx.conf

验证


2、安装nginx-rtmp-module

(参照https://github.com/arut/nginx-rtmp-module)
git clone https://github.com/arut/nginx-rtmp-module.git
cd nginx-1.12.0
sudo ./configure --add-module=../nginx-rtmp-module --with-http_ssl_module
sudo make && sudo make install
sudo gedit /usr/local/nginx/conf/nginx.conf
添加
rtmp {  
     server {  
            listen 1935;  
            application myapp {  
                live on;  
            }  
            application hls {  
                live on;  
                hls on;  
                hls_path /tmp/hls;  
            }  
      }  
}
重启nginx

3、准备推流

安装ffmpeg
sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next  
sudo apt-get update  
sudo apt-get install ffmpeg
ffmpeg -re -i /home/thinking/Desktop/test.avi -vcodec libx264 -acodec aac -f flv -strict -2 rtmp://192.168.42.248:1935/myapp/test

最后的一行命令的含义是:video编码器用libx264(-vcodec libx264);audio编码器用aac(-acodec aac);打包格式是flv(-f flv)。
-re代表按照帧率发送,不加则默认按照服务器最高速率发送。
例如
ffmpeg -re -i /home/thinking/Desktop/test.mp3 -acodec mp3 -f mp3 rtmp://0.0.0.0:1935/myapp/test
这行命令就是将音频文件转成MP3格式的推流发出去
(但是不知道为啥,这行命令可以执行,但是数据输出有误,改成
ffmpeg -re -i /home/thinking/Desktop/test.mp3 -acodec mp3 -f flv rtmp://0.0.0.0:1935/myapp/test
就可以了)

效果如下

4、拉流并播放

用VLC打开串流
媒体-->打开网络串流-->输入rtmp://192.168.42.248:1935/myapp/test-->打开
效果如下







0 0
原创粉丝点击