使用Nginx搭建rtmp流媒体服务器笔记

平台软硬件环境:PC,ubunut 16.04


主要是做个记录,方便日后查询。


主要是参考这篇博客:http://www.jianshu.com/p/f0bf83ca3ea3


碰到的第一个问题:

error: ‘OPENSSL_config’ is deprecated [-Werror=deprecated-declarations]

一开始以为Ubuntu安装了openssl和libssl-dev就可以,不需要独立的去便于openssl,但是出现了这个问题,查阅资料发现需要自己编译openssl,我修改了上述链接中提到的cfg.sh文件如下:

auto/configure --prefix=/usr/local/nginx \
    --with-pcre=../pcre-8.39 \
    --with-zlib=../zlib-1.2.11 \
    --with-openssl=../openssl \
    --with-http_ssl_module \
    --with-http_v2_module \
    --with-http_flv_module \
    --with-http_mp4_module \
    --add-module=../nginx-rtmp-module/

下载openssl库


第二个问题:

[tcp @ 0x5598c71fc820] Connection to tcp://localhost:1935 failed: Connection refused
[rtmp @ 0x5598c71fc320] Cannot open connection tcp://localhost:1935
rtmp://localhost:1935/live/video: Connection refused

这个问题弄了半天,参考很多博客修改/etc/nginx/nginx.conf配置文件,然后reload都不行。这个问题主要的原因是nginx使用的配置文件不是/etc/nginx/nginx.conf。在自行编译nginx之前,我有通过apt-get安装过ubunut自己的nginx,但是我自己编译的nginx安装的目录是/usr/local/nginx,在这个目录下也有配置一个配置文件:/usr/local/nginx/conf/nginx.conf。真正使用的也是/usr/local/nginx/conf/nginx.conf配置文件,在文件结尾添加如下内容:

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

第3个问题:

[flv @ 0x5632f0152a20] FLV does not support sample rate 48000, choose from (44100, 22050, 11025)
[flv @ 0x5632f0152a20] Audio codec mp3 not compatible with flv
Could not write header for output file #0 (incorrect codec parameters ?): Function not implementedStream m


此时我使用的命令是:

ffmpeg -re -i /home/fulinux/test.mp4 -c copy -f flv rtmp://localhost:1935/live/video

可能是因为test.mp4是一个超清的视频,让后我通过下面的方法,将其转换为flv格式的:

ffmpeg -i test.mp4 -c:v libx264 -ar 22050 -crf 25 -acodec aac -f flv test.flv


转换成功后通过下面的命令推流:

ffmpeg -re -i /home/fulinux/piano.flv -c copy -f flv rtmp://localhost:1935/live/video

并通过如下命令播放:

ffplay rtmp://localhost:1935/live/video





你可能感兴趣的:(linux技巧篇,网络集合篇)