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

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

2016-02-25 23:36 726 查看
  万事俱备,只欠东风,安装完毕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成功搭建流媒体服务器,对视频播放已经大概有一个认识。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: