您的位置:首页 > 运维架构 > Nginx

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

2017-05-20 11:52 218 查看
平台软硬件环境: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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: