RTMP局域网直播环境搭建(ffmpeg+crtmpserver+xampp+jwplayer7)

来源:互联网 发布:淘宝网晚礼服 编辑:程序博客网 时间:2024/05/16 19:25

相关文章链接:

【1】ffmpeg处理RTMP流媒体的命令大全

【2】Win7(Windows 7)下用VS2013(Visual Studio 2013)编译crtmpserver

【3】xampp的安装及使用

【4】JWPlayer 7的正确使用方法及Flash plugin failed to load解决方法

【5】Adobe Media Server 5(AMS)的安装及使用

【6】Adobe Media Server 5(AMS)的简单配置

服务器端:笔记本,Win7 64位,IP—192.168.2.189,需安装IE浏览器(我的是IE11)和ffmpeg+crtmpserver+xampp+jwplayer7,并关闭防火墙,WiFi开不开无所谓。

客户端:台式机,Win7 32位,IP—192.168.2.173,需关闭防火墙。


问题一.Setup took longer than 30 seconds to complete

之前【4】中只是在笔记本上做了本机测试,通过360浏览器地址栏输入http://localhost/jwplayer-7.7.1或者http://127.0.0.1/jwplayer-7.7.1可以调用jwplayer实现点播和直播,但是通360输入http://192.168.2.189/jwplayer-7.7.1却不能播放。后来换了谷歌浏览器,这三个地址都能正常播放。

现在设置jwplayer-7.7.1播放本机视频,即将index.html中的file设置为file:'sample.flv',在台式机浏览器中输入http://192.168.2.189/jwplayer-7.7.1,不管是谷歌还是IE浏览器都会出现提示Setup Timeout Error:Setup took longer than 30 seconds to complete,这是因为JavaScript代码长时间没有响应,导致jwplayer加载失败。

关于这个问题“烈火君”做了优化,不过他优化的是jwplayer-7.0.0,详见链接:JW Player 7 烈火优化版下载。下载后解压到E:\xampp\htdocs,重命名为jwplayer-7.0.0,并将jwplayer-7.7.1中的index.html和sample.flv拷贝到E:\xampp\htdocs\jwplayer-7.0.0中,再次在台式机浏览器中输入http://192.168.2.189/jwplayer-7.0.0,播放成功。需要注意的是,这时只有IE浏览器测试成功。


问题二.Could not connect to server

现在设置jwplayer-7.0.0播放rtmp流,即将index.html中的file设置为file:'rtmp://localhost/vod/sample.flv',此sample.flv的位置参考【2】。在台式机IE浏览器中输入http://192.168.2.189/jwplayer-7.0.0,播放失败,提示Error loading stream:Could not connect to server。

关于这个问题,很可能是防火墙封堵了rtmp服务器的默认端口1935,但是现在防火墙已经关闭,用netstat -ano查看也并未发现端口被其他进程占用。联想到之前搭建web服务器时,出现过本机可以访问,但是其他机器无法访问的情况,应该是xampp没有配置好。

打开xampp中Apache的配置文件E:\xampp\apache\conf\httpd.conf,找到如下两处,做图中所示修改。



然后将index.html中的file设置为file:'rtmp://192.168.2.189/vod/sample.flv',此时完整的index.html代码如下所示。

<html><head><script src="jwplayer.js"></script><script src="jwplayer.flash.swf"></script><script>jwplayer.key="iP+vLYU9H5KyhZeGt5eVuJJIoULUjltoaMeHXg==";</script></head><body><div style="left:0;top:0;width:100%;height:100%;position:absolute;" id='myplayer'></div> <script type='text/javascript'>     jwplayer('myplayer').setup({        file: 'rtmp://192.168.2.189/vod/sample.flv',  image: 'Logo.jpg', width: '100%',         height: '100%', autostart: 'false', }); <!--播放停止后,重新开始-->jwplayer().onIdle(function(){       jwplayer().play(true) });</script></body></html>
再次在台式机IE浏览器中输入http://192.168.2.189/jwplayer-7.0.0,播放成功。

现在来试试笔记本上用ffmpeg向rtmp服务器推流,台式机进行播放。如何使用ffmpeg推流,【5】中有说明,这里只记录步骤。

1.将index.html中的file设置为rtmp://192.168.2.189/live/livestream。

2.cd到ffmpeg.exe 所在目录,输入指令ffmpeg -re -i 800600.264 -c copy -f flv rtmp://192.168.2.189/live/livestream,回车。

3.台式机IE浏览器中依然输入http://192.168.2.189/jwplayer-7.0.0,播放成功。

步骤2和3对调也行,只不过此时浏览器中的jwplayer会一直等待,直到ffmpeg开始推流,才有视频画面。


有图有真相

ffmpeg


crtmpserver


xampp


IE浏览器




2 0
原创粉丝点击