nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
2016-09-06 00:24
716 查看
搭建环境:腾讯云ECS + ubuntu14.04 64位LTS系统
1. 安装pcre
下载pcre-8.21.zipsudo unzip pcre-8.21.zip -d pcre-8.21 cd pcre-8.21/ ./configure make make install
2. 源码安装nginx
cd git clone https://github.com/arut/nginx-rtmp-module.git //下载nginx source http://nginx.org/download/nginx-1.1.19.tar.gz sudo tar zxvf nginx-1.1.19.tar.gz cd nginx-1.1.19/ ./configure --add-module=</home/phoenix/nginx-rtmp-module> make make install sudo service nginx stop //先停止apt-get install的nginx sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf //启动 sudo netstat -tlnp|grep 1935 //检查是否成功监听1395 port
3. 安装ffmpeg
3.1 Ubuntu 12.04升级到14.04
sudo apt-get update sudo apt-get install update-manager-core sudo do-release-upgrade -d
只适用于14.04 或更高版本 sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next sudo apt-get update sudo apt-get install ffmpeg
附2种remove ppa命令 sudo add-apt-repository --remove ppa:kirillshkrogalev/ffmpeg-next sudo ls /etc/apt/sources.list.d sudo rm -i /etc/apt/sources.list.d/kirillshkrogalev-ffmpeg-next-precise.list
4. ffmpeg推流到nginx
可推送ip摄像机的rtsp直播视频流、视频文件、网络rtsp视频流,本文推网络rtsp视频流测试,ubuntu虚拟机ip 192.168.1.101。sudo ffmpeg -i rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov -acodec aac -strict experimental -ar 44100 -ac 2 -b:a 96k -r 25 -b:v 500k -s 640*480 -f flv rtmp://192.168.1.101:1935/myapp/test1 or sudo ffmpeg -re -i /home/phoenix/1.mp4 -vcodec copy -acodec copy -f flv rtmp://192.168.1.101:1935/myapp/test1 上述命令参照[ffmpeg RTMP 参数选项](http://www.tuicool.com/articles/eAfIVv),性能调优还有待修改。 > VLC上打开网络串流即可播放视频。 rtmp://192.168.1.101:1935/myapp/test1
5. hls协议使用http在网页进行观看
关于hls简单介绍:HTTP Live Streaming(HLS)是苹果公司(Apple Inc.)实现的基于HTTP的流媒体传输协议,可实现流媒体的直播和点播,相对于常见的流媒体直播协议,例如RTMP协议、RTSP协议、MMS协议等,HLS直播最大的不同在于,直播客户端获取到的,并不是一个完整的数据流。HLS协议在服务器端将直播数据流存储为连续的、很短时长的媒体文件(MPEG-TS格式),而客户端则不断的下载并播放这些小文件,因为服务器端总是会将最新的直播数据生成新的小文件,这样客户端只要不停的按顺序播放从服务器获取到的文件,就实现了直播。由此可见,基本上可以认为,HLS是以点播的技术方式来实现直播。由于数据通过HTTP协议传输,所以完全不用考虑防火墙或者代理的问题,而且分段文件的时长很短,客户端可以很快的选择和切换码率,以适应不同带宽条件下的播放。不过HLS的这种技术特点,决定了它的延迟一般总是会高于普通的流媒体直播协议。
在nginx.conf http中添加下面内容
location /hls { types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } root /tmp; add_header Cache-Control no-cache; }
sudo ffmpeg -i rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov -vcodec copy -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 -f flv rtmp://192.168.1.101:1935/hls/test2 在vlc、电脑浏览器、手机浏览器中输入网址播放 http://192.168.1.101/hls/test2.m3u8
6. rtsp视频测试地址(亲测可用)
1、rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov一段动画片
2、rtsp://218.204.223.237:554/live/1/66251FC11353191F/e7ooqwcfbqjoo80j.sdp
拱北口岸珠海过澳门大厅
3、rtsp://218.204.223.237:554/live/1/0547424F573B085C/gsfp90ef4k0a6iap.sdp
好像是个车站吧
7. 参考教程
搭建nginx rtmp直播服务器,ffmpeg模拟推流ubuntu14.04安装ffmpeg
ffmpeg RTMP
==nginx搭建流媒体server==
移动流媒体综述
搭建nginx rtmp直播服务器
nginx rtmp
搭建nginx rtmp直播服务器
ngnix开发将rtmp直播流转换成hls直播流
使用Nginx搭建视频直播服务器
8. 遇到的问题和思考
apt-get install nginx 和 src 安装的nginx 会有冲突么?怎么处理?解决:apt-get命令安装的nginx开始会自启动,需要先stop再运行src安装的nginx。
nginx: [emerg] bind() to 0.0.0.0:1935 failed (98: Address already in use)
解决:pkill -9 nginx
安装nginx init 脚本
sudo wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx sudo chmod +x /etc/init.d/nginx sudo update-rc.d nginx defaults sudo service nginx start sudo service nginx stop
相关文章推荐
- nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
- 使用nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
- nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
- nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
- nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器[转]
- 使用nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
- nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
- nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器【转】
- nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
- 【转载】nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
- nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
- nginx-rtmp-module和ffmpeg搭建流媒体服务器
- nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
- nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
- nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
- LVS+Keepalived+nginx-rtmp-module搭建流媒体服务器集群
- 搭建直播服务器,使用nginx与nginx-rtmp-module搭建流媒体服务器;
- 使用nginx与nginx-rtmp-module搭建流媒体服务器
- 使用nginx与nginx-rtmp-module搭建流媒体服务器
- rtmp与hls流媒体服务器搭建:ubuntu下Nginx搭建初探与rtmp-module的添加