赞
踩
再项目中需要用到简单的视频播放,想着干脆搭建一个流媒体服务器,后期做视频点播 直播包括视频服务器的负载,所以索性开始自己探索搭建视频流媒体服务器,用于存储和传输视频资源
流媒体技术包括流媒体数据采集、视/音频编解码、存储、传输、播放等领域。
流媒体系统组成
包括编码工具、流媒体数据、服务器、网络和播放器。
流媒体传输过程
如下图所示:
Real Network的Real System
服务端软件:Helix Server
平台:Windows or Linux
文件格式:RealAudio, Realvideo, RealFlash
微软的Windows Media Services
服务端软件:Windows Media Server
平台:Windows
文件格式:ASF, WMV
苹果公司的Quick Time系列
服务端软件:QuickTime Streaming Server (开源版本为Darwin Streaming Server)
平台:MacOS X, Linux, Windows
文件格式:MOV, MP4
在这三家公司的流媒体产品中,RealNetworks公司的免费服务端Helix Server Basic最大提供个流的并发,仅支持其专有编码RealAudio和RealVideo,基本上只能算是体验性的产品;微软公司的流媒体服务端Windows Media Server附带于其服务器产品Windows Server中,但只有最高版本的Windows Server Enterprice才具有完整的包括组播在内的所有流媒体服务器功能;苹果公司的Darwin Streaming Server(简称DSS)完全免费,没有任何功能限制,且符合国际标准。
ffmpeg
全平台视频转换
开源
RED5
Red5是一个采用Java开发开源的Flash流媒体服务器。它支持:把音频(MP3)和视频(FLV)转换成播放流; 录制客户端播放流(只支持FLV);共享对象;现场直播流发布;远程调用。Red5使用RSTP作为流媒体传输协议,在其自带的一些示例中演示了在线录制,flash流媒体播放,在线聊天,视频会议等一些基本功能。
开源地址:[](https://github.com/Red5/red5-server)
Darwin Streaming Server
为苹果公司视频流解决方案的开源版本。
easyDarwin
国内基于Darwin Streaming Server二次开发的流媒体服务器,有中文支持网站。
使用HTTP协议播放
./red5-debug.sh
启动red5服务器。在浏览器上输入http://[serverip]:5080/可以看到red5控制主页。功能同easyDarwin,在Linux上安装比较繁琐,所以暂时只试用easyDarwin。
使用RTSP协议播放
./easydarwin -c ./easydarwin.xml -d
。这个是以前的版本,再我自己试过以后,EasyDarwin现在有了最新的版本,不需要gcc编译,直接下载好压缩包,解压以后运行start.sh脚本就可以
下载地址:https://github.com/EasyDarwin/EasyDarwin
下载地址上也有详细的安装步骤,按着这个来就行
如图所示:
点击下载以后再linux服务器中解压;使用命令 tar zxvf EasyDarwin-linux-8.1.0-1901141151.tar.gz
进入解压好的文件:cd EasyDarwin-linux-8.1.0-1901141151
直接运行./start.sh就可让视频服务器运行起来(有些网站上说安装easydarein需要编译啊啥的,因为他们是以前的版本,您要是不嫌烦也可以在github上找到以前的版本,安装好gcc开始编译安装,现在最新版本已经将启动脚本都写好了,我还自己写了一份也是醉了)
接下来您会看到:
这就是说明启动成功了
但是由于easydarwin的后台界面默认的端口号是10008,您直接访问http://ip/10008的时候如果10008端口不开的话,需要查看端口是否开放,使用这个命令
netstat -nupl (UDP类型的端口)
netstat -ntpl (TCP类型的端口)
a 表示所有
n表示不查询dns
t表示tcp协议
u表示udp协议
p表示查询占用的程序
l表示查询正在监听的程序
如果您用的是centos6的话防火墙还是iptables 如果是centos7的话防火墙就是firewall 这个注意
我使用的是centos7,用的是firewall
我们可以输入命令查看防火墙的状态;
firewall-cmd --state ;
如果上一步处于关闭状态,输入命令:
systemctl start firewalld.service;
开启10008端口,输入命令:
firewall-cmd --zone=public --add-port=10008/tcp --permanent;
让我们来解释一下上一个命令:
--zone=public:表示作用域为公共的;
--add-port=10008/tcp:添加tcp协议的端口8080;
--permanent:永久生效,如果没有此参数,则只能维持当前服务生命周期内,重新启动后失效;
输入命令重启防火墙;
systemctl restart firewalld.service;
输入命令重新载入配置;
firewall-cmd --reload;
然后你访问http://ip/10008就可以访问到easydarwin的后台系统
这就搭建好了 视频服务器,如果您是简单的实现视频播放可以通过ffmpeg将本地的视频推流到您自己的视频服务器上
>ffmpeg -re -i C:\phpStudys\WWW\video\douying.MP4 -rtsp_transport tcp -vcodec h264 -f rtsp rtsp://ip/test
也许会报错 :
说明您没有在本地电脑安装ffmpeg
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec。
该程序只有命令行模式,因此安装到Windows下时,它与一般安装程序不同,具体安装步骤如下:
一、FFmpeg下载:http://ffmpeg.zeranoe.com/builds/
你可以根据自己的操作系统选择下载最新的32位或64位静态程序版本:
二、下载并解压FFmpeg文件夹,它会生成一个类似名为“ffmpeg-20150504-git-eb9fb50-win32-static”的新文件夹:
三、打开你想安装的任意磁盘,例如:d盘。新建一个名为“ffmpeg”的文件夹,将第二步解压生成的文件夹中的内容全部拷贝到“ffmpeg”文件夹中:
四、配置FFmpeg环境变量。
1、点击“开始菜单”,再点击“控制面板”,再点击“系统与安全”,再点击“系统”,然后点击“高级系统设置”,跳出“系统属性”窗口后,最后点击“环境变量”按钮:
2、点击“环境变量”按钮后,跳出“环境变量”窗口,找到并选中“Path”变量,点击编辑:
3、在“Path”变量原有变量值内容上加上“;d:\ffmpeg\bin”(注:;代表间隔,不可遗漏;d:\ffmpeg\bin代表FFmpeg的安装路径下的bin文件夹),一路点击“确定”即可。
五、打开命令提示符窗口。输入命令“ffmpeg –version”。如果命令提示窗口返回FFmpeg的版本信息,那么就说明安装成功了,你可以在命令提示行中任意文件夹下运行FFmpeg。
六、使用FFmpeg。你需要使用命令才能够使用FFmpeg。具体资料自行查询。
这样就可以通过ffmpeg来推流了,还有一个办法就是通过ftp将您现有的视频直接放到服务器easydarwin的解压文件中的image文件夹下
视频地址就是:http://ip:10008/images/shiping.MP
今天先分享到这里 以后我陆陆续续 会添加上来,如果各位亲有好的想法可以一起完善 一起学习
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。