1、利用nginx搭建的rtmp服务器
下载nginx-rtmp-module模块,解压
下载nginx,解压
进入nginx目录下,编译安装nginx支持rtmp流媒体配置
./configure --add-module=../nginx-rtmp-module-master
$ make
$ sudo make install
打开nginx配置文件nginx.conf,增加rtmp直播流配置
那么现在可以试着启动Nginx,命令如下:
/home/qixuan/nginx/sbin/nginx -c /home/qixuan/nginx/conf/nginx.conf
sudo /usr/local/nginx/sbin/nginx
然后在浏览器输入http://localhost 应该就能够看到nginx的欢迎首页了,这意味着nginx在我们的机器上运行正常,可以进行下一步配置了:
Nginx rtmp 配置
打开nginx.conf文件,开始配置rtmp吧:
http {
……
}
在http节点后面加上rtmp配置:
rtmp {
server {
listen 1935;
application live1 {
live on;
record off;
}
}
}
你可以在这里找到完整的配置文件
重启:
/home/qixuan/nginx/sbin/nginx -t
/home/qixuan/nginx/sbin/nginx -s reload
利用ffmpeg RTMP推流
把一个静态视频资源文件推送到rtmp服务器
推荐:ffmpeg -re -i /home/qixuan/video/ccc.mp4 -c copy -f flv rtmp://192.168.1.9:1935/live1/room
这个也可以(没有节点): ffmpeg -re -i /home/qixuan/video/ccc.mp4 -c copy -f flv rtmp://192.168.1.9:1935/live1
测试rtmp推流
这时我们可以测试推送流了,这里由于我们还没有写推送代码,就先借助软件完成吧。
测试推送流
如果你有Windows环境,且是Vista以上系统,有独立显卡,使用Open Broadcaster Software
如果你有Mac环境,使用CocoaSplit
推送流简单来说就是上传,也被称为推送、发布。想要推送流,总要有一个目标地址吧。看看之前我们建立的RTMP服务器配置,里面规定了使用1935作为监听端口,配置了一个应用live1,通过这些信息,我们就能拼出可以使用的上传地址了,例如这样:
rtmp://localhost:1935/live1/room1
live1是应用名,对应我们在nginx中配置的应用。room1是一个应用的实例(或者叫结点,我是这么理解的),这个不需要在服务器做特别的配置,我们只需要在配置好的应用中选择一个实例名字(例如room1)就能使用了。
使用之前提到的软件,简单配置下上传地址就能够发布了。
发送上去了,那么我们如何接收呢?
使用JWPlayer在网页播放
这里又要使用外部工具了:jwplayer,一个flash的播放器,利用它可以在网页播放rtmp流。
jwplayer目前能够提供试用,但是使用需要先注册以获取key。这里有一个我已经注册好并下载到本地的播放器文件,你可以直接使用它们。
找到/usr/local/nginx/html/目录,在下面新建文件player.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JW Player Example</title>
<script type="text/javascript" src="http://itony.me/"/jwplayer/jwplayer.js"></script>
</head>
<body>
<div id="'playerWRYqPNErNtRf'>test</div>
<script type='text/javascript'>
jwplayer('playerWRYqPNErNtRf').setup({
file: 'rtmp://localhost:1935/live1/room1',
image: 'http://www.longtailvideo.com/content/images/jw-player/lWMJeVvV-876.jpg',
width: '100%',
aspectratio: '16:9'
});
</script>
</body>
</html>
然后将jwplayer文件夹放在/usr/local/nginx/html/目录下,最后应该是这样:
/usr/local/nginx/html/player.html
/usr/local/nginx/html/jwplayer/jwplayer.js
/usr/local/nginx/html/jwplayer/jwplayer.flash.swf
然后重启nginx,在浏览器输入http://localhost/player.html,点击播放按钮,这时如果你正在使用软件进行推送,就应该可以看到视频了:
使用VLC软件播放
这是更简单的一种方式,找一个支持rtmp的桌面软件,恩……之前为什么我要折腾jwplayer呢……
下载后打开VLC,在菜单选择file->open network->在弹出的新窗口中选择Network标签页,填入URL:rtmp://localhost:1935/live1/room1->点击open,等待缓冲完成后,就自动开始播放了