如果在网站上加个视频直播模块啊?
问:我想在我们的网站上加一个视频直播功能,我不是很懂,请问有没人有知道怎么弄?
答:
直播实际上有三个部分组成,编码器、流媒体服务器、播放器,根据不同的需求和应用场合灵活对这三部分进行选择和组合。
首先要看你想要直播的是什么,如果你想加入的视频直播是CCTV1啊、江苏卫视等电视台的直播,那么你可以选择嵌入CNTVCN的播放器,或者是其它已有视频直播网站上的播放器。
如果你想要直播的是自己策划的活动、某会议、教学等等自已的内容,那么你就需要搭建一个视频直播服务器并且配合活动现场的摄像机、采集卡/视频采集编码服务器等硬件进行直播。
其次,看你要选择什么样的直播技术,目前能够使用的直播技术有微软的MMS,real公司提出的rtsp,adobe公司的RTMP系列协议,不同的直播技术支持的播放器也不相同。其中mms需要安装微软的media player插件、rtsp可以被media player和realplayer支持,而rtmp能够被flash player所支持。这三个之间相比,adobe的flash player的使用率最高,已经高达98%了,也就是说几乎人人机器上都有adobe的播放器,那么使用adobe的直播协议就更有优势。
确定了直播技术之后,就可以根据直播技术来选取服务器软件,选取服务器软件之后再配上软件编码器或者是硬件编码器,就可以开始实现视频直播了。
八百里flash p2p流媒体系统可以满足你做视频直播的功能,它采用了无插件Flash P2P技术
无需安装额外的插件,直接使用浏览器即可实现视频的播放,这样不仅给观众良好的体验,同时可以覆盖绝大多数观众,包含Windows, Mac OS, Linux, Android, Air 平台的用户。
它使用了HTTP+P2P串流技术,HTTP串流和P2P串流结合,在保证最大可能的覆盖观众的同时,有效的降低服务器的带宽使用和CPU内存使用,使单台服务器可以支撑上万乃至十万级别的并发直播。
对于如何使用这款软件来实现视频直播,我在百度空间里写了一些文章专门介绍如何在网站上加上视频直播功能,你可以去参考一下。
地址是:http://hibaiducom/%CB%D5%D6%DD%B0%CB%B0%D9%C0%EF/blog/item/936e49a2c0e775d67cd92ad8html
摄像机接入直播,首先您想摄像机的SDI或者HDMI的信号接入到视频推流直播盒上,然后注册第三方直播平台,或者自主搭建直播平台,让直播平台推流地址复制到编码器后台即可。就可以实现摄像机直播。
功能模块概述
通过obs客户端推流到nginx流媒体服务器上,对流媒体用ffmpeg将流剪切为若干段ts流文件并保存到临时目录中,通过访问m3u8格式拼接ts流文件段来观看直播。
推流端
采用开源工具OBS客户端进行推流
根据项目的推流地址,填入OBS客户端(下载地址)中,并设置场景,保存后重启,便可开始推流。
为更加稳定的推流,建议使用以上链接中的v0625稳定版本,按提示安装完成后,打开设定在广播设定中,伺服器统一填写我们项目的流媒体接收流地址:
rtmp://127001:1935/hls/
以上这几个数据都是可以更改的。
127001——你的流媒体服务器ip
1935——你的rtmp端口号
hls——你的直播nginx配置模块
具体在下文中也有详细介绍
配置地址
回到主界面,右键来源,选择添加视频捕捉设备或获取窗口等(相关设置默认即可),点击开始串流,便可开始直播。
添加场景
图为添加视频捕捉设备后的直播画面:
直播中
流媒体服务器
Nginx接收推流模块
rtmp_auto_push on;
rtmp {
server {
listen 1935;
application hls {
live on;
hls on;
hls_path /tmp/hls;
on_publish 项目地址/liveOnPublish;
on_publish_done 项目地址/liveOnDone;
notify_method get;
}
}
}
配上我在word上的注解
注解1
Nginx处理直播流模块
http {
server {
listen 80;
server_name localhost;
location /hls {
secure_link $arg_st,$arg_e;
secure_link_md5 key$arg_e;
subs_filter ts 'tsst=$arg_st&e=$arg_e&clentip=$remote_addr';
subs_filter_types application/vndapplempegurl;
if ($secure_link = "") {
return 402;
}
if ($secure_link = "0") {
return 403;
}
# Serve HLS fragments
types {
application/vndapplempegurl m3u8;
video/mp2t ts;
}
root /tmp;
add_header Cache-Control no-cache;
}
}
}
注解2
项目部署服务器
流媒体服务器不通过项目服务器,整个直播过程的推流和处理流都在流媒体服务器上进行。项目服务器主要进行直播地址加密处理意见推流开始和结束触发的方法(liveOnPublish(),liveOnDone())已及对直播地址加密
播放端
直接通过HTML5中的<video>标签设置src来播放直播流。如:
<video src="pro/livem3u8st=UM/L8jdfTlY2b1j1F6XSxA==&e=1468548530
" controls="controls"></video>
存在的问题
延迟待测试(不科学的数据是安卓手机普遍在30-40s,苹果手机在20-30s)
并发待测试
掉帧待测试(网速影响大,网络好几乎不掉帧,网络差掉一半,用户体验差)
流媒体服务器的主要功能是以流式协议(RTP/RTSP、MMS、RTMP等)将视频文件传输到客户端,供用户在线观看;也可从视频采集、压缩软件接收实时视频流,再以流式协议直播给客户端。典型的流媒体服务器有微软的Windows Media Service(WMS),它采用MMS协议接收、传输视频,采用Windows Media Player(WMP)作为前端播放器;RealNetworks公司的Helix Server,采用RTP/RTSP协议接收、传输视频,采用Real Player作为播放前端;Adobe公司的Flash Media Server,采用RTMP(RTMPT/RTMPE/RTMPS)协议接收、传输视频,采用Flash Player作为播放前端。值得注意的是,随着Adobe公司的Flash播放器的普及(根据Adobe官方数据,Flash播放器装机量已高达99%以上),越来越多的网络视频开始采用Flash播放器作为播放前端,因此,越来越多的企业开始采用兼容Flash播放器的流媒体服务器,而开始淘汰其他类型的流媒体服务器。支持Flash播放器的流媒体服务器,除了Adobe Flash Media Server,还有sewise的流媒体服务器软件和Ultrant Flash Media Server流媒体服务器软件,以及基于Java语言的开源软件Red5。
所谓流媒体技术,是指将连续的影像和声音信息经过压缩处理后放在网站服务器上,让用户能够一边下载一边观看、收听(即所谓的“在线欣赏”),而不需要等整个压缩文件下载到自己的机器上才可以欣赏的网络传输技术。目前,在这个领域中的竞争者主要有微软、RealNetworks、Apple三家公司,例如微软新近发布了Windows Media Services 9、RealNetworks公司新近发布的Helix Platform、Apple新近发布的Darwin streaming server 41,意图在流媒体领域大干一场。
一般来说,一个完整的流媒体服务系统需要三个部分组成:编码器、流服务器和播放器。编码器通过对内容来源(如MP3文件或者麦克风输入)进行编码,并将编码过的内容发送到流服务器;流服务器再将它们发布到Internet,这样客户端的播放器只要连接到流服务器就可以进行在线播放了。
利用Winamp架设MP3网络电台
当我们静静地在欣赏美妙的MP3音乐时,你是否曾经考虑过将这些原本属于个人的MP3音乐通过网络在局域网内进行发布,甚至还可以通过Internet进行发布?这样就可以让遍布世界的朋友们与你一起共享MP3音乐之旅。其实,要做到这一点并不难,你只要将本机创建为一台MP3流媒体服务器,将自己所喜爱的MP3音乐不停播放,然后通知朋友们访问你的这台MP3服务器就可以了。
说起MP3的播放,使用最广泛的莫过于Winamp了。对于MP3流媒体服务这个领域,Winamp的开发者Nullsoft公司当然不会放弃,专门发布了面向MP3的流服务器SHOUTcast Server。虽然它的功能没有Windows Media Server和Real Server强大,但它不仅对硬件的要求极低,更关键的是完全免费,使用起来没有后顾之忧。另外你还需要下载一个名为SHOUTcast DSP Plug-in的插件,只有安装了这个不起眼的插件,Winamp才能支持流媒体服务。
首先打开Winamp(请注意版本号必须在222以上),切换到“Options” | “Preferences”| “DSP/Effect”标签页,选中“Nullsoft SHOUTcast Source DSP v182a[dsp_scdll]”下的“Configure”按钮。打开“SHOUTcast Source”窗口,选择“Output”标签页,如图1所示,在“Address”栏内填入本机的IP地址。如果你想在Internet上广播MP3音乐,则必须键入本机的外部IP地址,然后就可以从程序组中运行SHOUTcast DAAS(GUI)程序以启动SHOUTcast服务。这时系统会自动连接到服务器,接下来请返回图1窗口点击“Connect”按钮。如果连接成功,该按钮会变为“disconnect”字样,这样我们就完成了在本机架设MP3流服务器的全部过程。
架设REAL格式的视频点播中心
如果是架设视频点播服务器,那么选择Real格式是非常明智的。因为RealProducer Plus这款功能强大的软件操作相当简单,每次使用时会弹出一个向导对话框进行操作提示。目前最新版本是100,我们只要选择851以上的版本即可。
从“工具”菜单下选择“创建网页”命令,此时会弹出一个如图2所示的向导式对话框,点击“前进”按钮选择你希望用于创建Web页面的Real多媒体文件。随后RealProducer会询问是创建“弹出式播放器”还是“嵌入式播放器”,一般建议选择后者,因为这样所需要的系统资源更低,当然启动速度也更快。至于播放器的界面,可以选择“标准播放器”,很快就可以创建成功。
最后,RM文件对象所在的目录会增加一些文件,请将这些文件与RM对象一起上传,不过要注意保证RM文件与HTML文件在同一目录下,否则播放器可能无法找到播放对象。
架设WMP流媒体服务器
微软的手伸得很长,什么领域都要插足一下。凭借着Windows操作系统的影响力,Windows Media Player市场占有率越来越高,而微软的asf、wmv、wma、avi等格式也开始被越来越多的用户所接受。
架设WMP流媒体服务器,你需要安装Windows Media Encoder才行,目前最新版本是90简体中文版。如图3所示,我们应该在这里选择“广播实况事件”,接着选择用来编码的音频和视频设备。注意请事先将音频和视频设备与计算机正确连接,否则会无法检测到。接着你还需要指定服务和发布点,当然也可以使用现有的发布点。然后Windows Media Encoder会自动创建服务器,并给出HTTP连接地址与局域网内部地址,请记住这些内容,最后点击“开始”按钮正式启动WMP流媒体服务器。
接下来,我们就可以将刚才记下的HTTP连接地址与局域网内部地址告诉给朋友们。他们只要打开IE,输入正确的IP地址和端口号,很快就可以访问WMP流媒体服务器。
架设QT流媒体服务器
平时,我们见到的大多是打造MWF(矢量地图窗口文件,Map Window File)或RM流服务器,可是你可知道QuickTime(以下简称QT)流媒体服务器应该如何来打造吗?其实,借助苹果的QuickTime Streaming Server工具,我们可以在短时间内快速打造出一台QT流服务器。
首先我们要准备一些工具,QuickTime媒体播放工具当然是必不可少的。目前最新版本是65简体中文版,到处都可以找到,或者直接到苹果公司的网站下载,并且需要在服务器和客户端同时安装。Perl语言解析器,最低版本要求是50以上。QuickTime Streaming Server与用户见面最早是在1999年,当时以其开放源代码和基于标准的实时传输协议/实时流协议(RTP/RTSP)引擎深深地动摇了流媒体工业的基础,目前的最新版本是50,下载文件共92MB。
从地址可以免费下载,但你必须拥有Apple的注册用户名才能登录(注册是免费的),这里有Mac OS X、Red Hat、Solaris、Windows NT/2000/XP等版本可供选择。下载回来的是一个自解压文件,释放后执行Installbat运行安装程序,运行过程在命令提示符窗口中完成,最后还需要设置登录用户名、密码,如图4所示,当看到“Setup Complete!”的提示信息时即大功告成。QT流媒体服务器建设过程和RM类似,在这里就不再赘述。
如何共享音频和视频
共享音频
前面,我们利用Winamp、SHOUTcast Server将本机架设为一台MP3流服务器,那么该如何让遍布天南海北的朋友或局域网中的同事欣赏这些美妙音乐呢?
这有两种方法:一种是打开Winamp,从“Play”菜单下选择“Location”命令,或者直接键入“Ctrl-L”组合键打开一个对话框,然后在这里键入MP3流服务器的URL地址或者IP地址、端口号(缺省为8000),例如“”或者“”即可收听;另一种方法则更为简单,从IE中打开“”进入Web管理页面,如图5所示,然后点击“收听”按钮就可以在线收听MP3流音乐。
共享视频
虽然苹果的QuickTime Player的市场占有率远远不如Real或Windows Media Player,但忠实的用户依然不少。而且苹果毕竟是网络流媒体的开山鼻祖,因此许多最新大片都是采用QT格式。
首先必须在机器上启动QT服务,然后通知朋友们在远程计算机中打开QuickTime。从“文件”菜单中选择“在新的播放窗口中打开URL”命令,键入“rtsp://server/filemov”来访问QT流服务器以实现远程播放。这里的“server”是服务器的IP地址,“filemov”是媒体文件名,默认的RTSP传输端口是554端口。如果网络连接没有什么问题的话,如图6所示,那么你很快就可以连接成功。
建立播放列表或点播系统
辛辛苦苦架设了一台流媒体服务器,我们还可以建立播放列表或点播系统,甚至可以进行网络直播,反正已经用上了宽带,不用也是浪费。
配置QT流媒体服务器
打开IE,在地址栏中输入“”,这里的“server”代表服务器的IP地址。如果前面的配置没有什么问题的话,很快就会进入如图7所示的管理页面,这里以列表形式显示了当前的系统资源占用情况和相关的服务器信息。我们可以在这里查看连接到服务器的用户类型、IP地址、数据速率、数据传输量、包丢失比例、连接时间、连接文件等内容,也可以在这里设置映射文件夹、加密传输、最大连接用户数、分配带宽、重置密码、更改端口,如果你需要的话,还可以查看错误日志和操作日志。
创建播放列表
点击图7窗口右侧的“New MP3 Playlist”或“New Movie Playlist”按钮,我们可以创建一个MP3或影片的播放列表。不过这里需要说明的是,你需要将相关的媒体文件复制到C:\Program Files\Darwin Streaming Server\Movies文件夹中才行。
如图8所示,我们可以在这里通过“Weight”旁边的小三角箭头重新调整播放列表的播放顺序,可惜的是QuickTime Streaming Server对简体中文的支持十分差劲,显示的竟然是一些乱码字符。最后,点击窗口右下角的“Save Changes”按钮就可以将这份新建的播放列表保存下来,以后如果需要更改的话可以选择“Edit Playlist”重新配置。
不过,如果你希望其他用户也能访问这份播放列表文件,还必须点击“Avaliable Playlists”列表框中的“Status”下的播放按钮,也就是让“Status”列的“Stopped”变为“Playing”才行。
实现网络直播
如果你还想在播放完MP3歌曲后说上一段话,那么简单的很,只要一个话筒就行了。不过,还需要在Winamp中进行一些设置,如图9所示,在“Input Device”下拉列表框中选择“Soundcard Input”项,这样才会出现图中的SoundCard Mixer设置项。如果使用默认的设置“Winamp(Recommended)”的话就只有Input Levels一项了,下面还有“Music Level”、“BGMusic Level”、“Mic Level”几个滑块可以调节音量的大小,而“Fade Time”是用来设
置移出时间值。
现在,你无需进行其它设置,准备一番后,清清嗓子,点击“Push to Talk”按钮,然后再按下“Lock”按钮锁定当前话音输入模式。接下来就可以对着麦克风开始你的网络直播之旅了,结束请再次按下“Lock”按钮解锁。
0条评论