nginx-rtmp-module和ffmpeg搭建流媒体服务器

来源:互联网 发布:机锋网推荐的淘宝商家 编辑:程序博客网 时间:2024/06/07 12:07

  万事俱备,只欠东风,安装完毕nginx-rtmp-module 和ffmpeg后,就可以开始搭建流媒体服务器了哈。下面是具体步骤:
  
  一、配置nginx.conf
  打开nginx配置文件,在里面添加如下配置:

rtmp {server {    listen 1935;    application myapp {      live on;    }    application hls {        live on;        hls on;        hls_path /tmp/hls;    }  }}

rtmp 不在任何域里面.另外针对hls,需要增加如下配置

location /hls {        types {            application/vnd.apple.mpegurl m3u8;            video/mp2t ts;        }        root /tmp;        add_header Cache-Control no-cache;}

这个配置需要配置在配置文件的server域里面.以上如果配置错误 ,重启nginx时会报错如:

nginx: [emerg] "rtmp" directive is not allowed here in /etc/nginx/nginx.conf:18

重启NGINX后,用netstat -anp|grep 1935 命令查看是否已经启动流媒体服务的端口。有则证明启动和配置成功。

  二、ffmpeg推流到nginx
1, rtmp流  

ffmpeg -re -i “/alidata/download/06.mp4” -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 rtmp://你的服务器ip:1935/myapp/test1

执行这个命令,则表示将流推送到 rtmp://你的服务器ip:1935/myapp/test1这个地址,解释一下这个命令行的选项参数:

-vcodec libx264 表示 视频的编码器为H264;
vprofile baseline 设置音视频编码器的类
-acodec aac 指定声音的编码器为AAC
-ar 44100 设定音频编解码器的采样率,整数,单位Hz。
-strict -2
-ac 1 设置音频编解码器的声道数目
-f flv 强制设定输入和输出文件格式
-s 1280x720 设置图像分辨率
-q 10

复制这个地址到VLC播放器就可以看到视频
这里写图片描述

2,hls流

ffmpeg -re -i “/alidata/download/06.mp4” -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 rtmp://你的服务器IP:1935/hls/test2

配置参数跟rtmp流也是一样,只是输出流地址不一样,这里为:http://serverIp:8080/hls/test2.m3u8
这里写图片描述

在/tmp/hls目录 则看到生成了test2.m3u8文件
这里写图片描述

播放器播放的就是这个文件。至此已经利用nginx-rtmp-module和ffmpeg成功搭建流媒体服务器,对视频播放已经大概有一个认识。

1 0
原创粉丝点击