zoukankan      html  css  js  c++  java
  • 如何在自己网站加上视频直播功能(搭建视频直播网站)

    前一段时间由于工作需要在我们的网站上搭建一个视频直播环境,所以我尝试了不同种类的视频直播搭建方式,经过这一段时间的试验我掌握了多种服务器软件的视频直播搭建方式。它们各有优缺点,针对每一种服务器软件我都写了文章,在本篇文章中我介绍到的是八百里flash p2p流媒体系统软件。

    在本文中我们首先介绍如何安装八百里flash p2p流媒体系统(P2PS系统到我们的服务器上,然后接着演示如果使用这个系统来在我们的网站上生成一个直播页面并且进行视频直播(在文章中我们以XXX.com来代替我们的网站域名),还演示了如果使用软件加摄像头/采集卡的方式进行视频直播,最后演示了与P2PS配合的硬件级视频直播解决方案。

    一、下载程序

    访问http://www.800li.net ,并且在首页上找到下载链接,把软件下载到桌面上。

    二、安装

    1、双击下载的p2ps_setup_trial.exe进入安装界面。

    2、连续点击“下一步”之后到达注册页面。

    3、点击“获取试用注册码”,跳转到苏州八百里网络科技公司的注册码申请页面,填写一些基本装料后提交。其中,有两个信息非常重要,一个是电子邮箱,这是收取注册码的用的,这个如果填写不正确,就收取不到注册码了。另一个是序列号,这个如果填写不正确,那么收到的注册码也会不正确,直接复制安装程序里序列号那一栏的那段文字填入即可。

    4、在提交申请注册码之后,等待一段时间后会收到包含注册码的邮件。

    5、将拿到的注册码拷贝至安装界面中的注册码一栏,然后继续下一步。

    6、设置域名,默认P2PS使用的是机器的名称,如果想对公网开放还是得设置成一个域名,在这里我们设置成XXX.com,然后继续下一步。

    7、跳过一系列的下一步之后,来到了配置页面。在这里可以设置服务器端口、视频目录等信息,P2PS在启动配置时会自动分配一些未被使用的端口做为服务器使用的端口,一般情况下不需要修改。在这里我们把视频存放目录(直播时会生成一些视频文件)的位置更改成D盘下面的P2PS文件夹,其它参数不做修改。

    8、如果服务器上开启了防火墙,那么需要把P2PS所需要的一些端口给加入到防火墙的允许通过端口列表中。

    在配置管理器中切换到“对外端口列表”页签,可以看到P2PS使用了两个TCP端口和3个UDP端口:

    从控制面板中打开windows防火墙设置,在“例外”页签中的“对外端口”中分别加入P2PS的对外端口列表中的TCP和UPD端口。

    设置好防火墙之后,点击配置管理器的“保存配置”,然后点击“关闭窗口”完成配置,回到安装程序点击“完成”来结束P2PS的安装。

    三、发布直播

    1、在开始菜单中可以打开P2PS的示例页面。由于远程主机上面没有摄像头,所以得到这个页面的地址之后,我们把这个地址拷贝到本地的浏览器中使用。

    2、在示例页面中,有3个链接,一个是流管理,一个是发布,还有一个是播放。其中流管理是用来管理视频的个数。我们新建一个名称为“我要直播”的流,在流名称一栏输入“我要直播”,然后点击添加即可添加一个视频流。

    3、添加视频流之后,点击发布跳转到发布管理页面,勾选中刚才添加的流,然后点击“发布选中流”按钮,点击之后,会出现发布直播的界面,在此时计算机上必须有能够使用的摄像头(如果没有摄像头,也可以安装一个新浪9158虚拟视频来代替),当发布界面左上角显示“Connection success”时表示已经连接上服务器,接下来只需要点击弹出的“Adobe flash player设置”窗口上的“允许”按钮即可进行发布。

    4、然后新打开一个浏览器页签,输入地址http://XXX.com:28100/sample重新进入此页面,在页面上选择播放,然后选中刚才新建的流,然后点击“播放选中流”按钮。

    在弹出的“Adobe Flash Player设置”窗口上,勾选住“记住”(防止每次播放时再次询问),然后点击允许进行观看。

    由于P2PS采用了flash+p2p的直播方式并且为了能充分发挥p2p网络的效果、减少服务器端负载,所以P2PS控制了播放器的延时,直播画面要比现场画面延后一分钟左右,发布之后大约一分钟才可以播放,但是这并不影响直播效果。

    四、将直播播放器嵌入到其它页面

    现在我们要把这个示例页面中的播放器移动到正式的网站XXX.com中。

    首先,我们在XXX.com的站点目录中新建一个“liveshow.html”的页面(当然也可以使用已存在的页面),然后在示例页面中的播放页面的播放器下方,点击“复制代码”或者直接复制“播放器代码”栏中的代码,把它粘贴到新建的“liveshow.html”中。

    然后在浏览器中直接访问http://XXX.com/liveshow.html,就可以看到正在直播的内容了,还可以根据自己需要把这段播放器代码放到博客、论坛等支持HTML源码的地方。

    五、停止直播

    在用户想要停止直播时,有三种选择:

    一种是直接关闭发布页面,这样下次可以还继续使用这个视频流发布直播视频,在停止发布直播后,观看者通过像后拖动播放条进行回看;

    一种是选择以“转换成点播”方式结束发布,这种方式结束的视频可以点播视频进行播放,并且此视频流不能够再用来发布直播,观看者在观看页面可以任意拖动视频进行观看;

    还有一种是选择以“转换成伪直播”方式结束发布,这种方式结束的视频在观看页面上还是被伪装成为一个直播视频,只能像后拖动,但是不能像前拖动。

    六、其它方式进行发布

    对于P2PS系统来说,不仅仅像示例页面中的那样用网页+摄像头来发布直播,还可以使用其它方式进行直播。

    一、 使用Adobe Flash Media Live Encoder   +  PC摄像头/支持DirectShow的采集卡.

    二、 使用硬件直播一体机。

    三、 使用支持RTMP协议的采集卡+采集卡自带软件进行发布。

    但是无论使用哪种方式,都需要使用示例发布页面中的FMS连接URL和FMS发布流名进行发布,可以先将发布页面中的FMS连接URL和FMS发布流名称复制到词事本或者其它地方供后续使用。(注意:在发布页面打开的时候,是不能再使用这个url进行发布,所以在进行其它方式方式时先关闭发布页面)。

    七、使用Adobe Flash Media Live Encoder进行发布

    1、在adobe网方网站https://www.adobe.com/cfusion/entitlement/index.cfm?e=fmle3上面下载最新版本的Flash Media Live Encoder ,我们现在使用的是3.2版本。

    2、安装完成之后启动程序,首先我们要做的是选择机器上的视频设备和音频设备,在下图中可以看到,我们在video一栏中选取了我机器上的摄像头“FV TouchCam VQ1”,把视频编码调整成H264,设置好合适的视频码率、视频宽度和视频高度,然后音频设备使用默认的麦克风。

    3、最重要地是在输出参数设置面板那里,把从发布页面复制的“FMS连接URL”的值复制到FMS URL一栏,“FMS发布流名”值复制到Stream一栏,然后直接点击最下面的Start,这样发布就开始了。

    4、不仅仅可以使用摄像头,还可以使用采集卡+DV的方式进行直播,这里我们采用一张USB采集卡(当然也可以使用其它种类采集卡),这张采集卡的输入端是模拟信号,采用接口是普通的莲花头,这也意味着一切与这种接口兼容设备都可以配合这张采集卡来直播,如广播级摄像机、家用DVD、电视机顶盒。

    capturecard.JPG

    5、另外我们常用的还有以HDMI方式输入视频信号的采集卡,这种采集卡能够配合数字摄像机、蓝光DVD、拥有HDMI的笔记本、平板电脑和手机等等数码产品。

    hdmicard.jpg

    6、我们使用一个带AV模拟信号输出的DV来进行直播,把采集卡连接在电脑上并且安装好驱动程序,再把DV的AV信号线接上,另一端接在采集卡的颜色相同的插口上。

    dv.jpg

    7、重启Adobe flash media live encoder,这时在Adobe flash media live encoder的视频设备和音频设备列表处就会各多出一个新的设备,分别选取这两个设备,然后参数还是像上面一样设置好FMS连接字符串和FMS流名称,点击最下方的Start按钮,DV的画面就成功地直播出去了。

    fmle.capture.jpg

    http://XXX.com/docimg/fmle.publish2.jpg

    8、发布成功了,打开播放页面进行效果观看吧。

    http://XXX.com/docimg/fmle.play.png

    八、使用一体机/视频编码服务器进行发布

    由于普通PC机+采集卡的方式不便于在特殊场合下面进行视频直播的商业实施,所以在这种情况下使用专业的直播一体机或是采集编码服务器来进行视频直播会取得更好的的效果。

    行业中并未对这种具有采集和发布直播的机器有一个标准的名称,根据附加功能的不同厂家使用过这些名称:直播一体机、导播直播一体机、网络直播一体机、采集编码服务器、视频编码服务器、录播直播一体机等、嵌入式flash编码器等等。

    而不管这些硬件的名称是什么,只要它拥有以下几点功能即可无缝接合P2PS系统:

    1、视频信号采集。

    2、视频信号压缩。

    3、支持RTMP流媒体协议输出。

    只要拥有上述三个最基本的功能,那么这个硬件就可以实现直播的需求,至于是否还拥有多路切播、混音、字幕添加等等其它功能,视用户需求来选择最合适的设备,在这里我们使用某品牌的视频编码服务器来举例。

    某品牌的视频编码服务器的功能特性中指出:

    l H.264/AVC MainProfile广播级视频编码器嵌入式平台

    l 支持H.264 Transport和Program流的编码Entropy coding (支持CAVLC/CABAC )

    l 通过以太网端口进行基于Web的远程管理和本地管理

    l 支持多种IP网络协议及直播模式: UDP,TCP,RTSP,HTTP,RTMP等。

    l 视频输入:S端子,复合,SDI(可选)

    由以上基本特性可以知道,由于此视频编码服务器支持复合信号(AV)的输入、支持H264的压缩、支持RTMP网络协议的直播,那么这台视频编码服务器就可以用来直接发布视频直播到P2PS系统上,下面是我们的操作步骤。

    1、把此视频编码服务器通过网线接入局域网,在输入端接入DV、摄像机等信号源设备。通过其它计算机登陆视频编码服务器的管理平台,首先设置它的互联网参数,使其能够连入互联网。

    http://XXX.com/docimg/ytj.setting.jpg

    2.设置视频和音频的格式,注意请将视频编码设置为H264、VP6、H263等RTMP支持的格式,而音频编码一般可选择Mp3、AAC、Nellymoser、speex等。然后根据需要设置帧率,视频宽高、视频比特率等参数。

    http://XXX.com/docimg/ytj.video.jpg

    http://XXX.com/docimg/ytj.audio.jpghttp://XXX.com/docimg/ytj.audio_biterate.jpg

    3、接下来就是要设置视频编码服务器的RTMP协议输出地址。需要注意的是,我们现在使用的这个视频编码服务器的RTMP地址没有分成连接字符串和流名称两段,所以我们把“FMS连接字符串”和“FMS流名称”中间使用“/”连接在一起填入"RTMP ADDRESS"一栏。其它品牌的设备的RTMP参数设置可见该设备的使用说明书。

    http://XXX.com/docimg/ytj.rtmp.jpg

    到此,编码器的编码已经设置好。我们点击“开始编码”系统开始运行。然后打开对应的直播页面即可观看到直播效果。

  • 相关阅读:
    例子:动能并不是特别强(2-3)后,下M5的同时,也是恢复期到期的前一天
    .NET 自带的动态代理+Expression 实现AOP
    自旋锁-SpinLock(.NET 4.0+)
    使用Nito.AsyncEx实现异步锁
    C# 两行代码实现 延迟加载的单例模式(线程安全)
    C++ 用于大型程序的工具
    C++ 模板与泛型编程
    C++ 面向对象编程
    C++ 重载操作符与转换
    C++ 复制控制
  • 原文地址:https://www.cnblogs.com/jthb/p/3450995.html
Copyright © 2011-2022 走看看