我的需求挺简单,现场采集视频信号,传输给服务器,再由服务器广播出去
前些年,我会毫不犹豫的选择windows media encoder + windows media services
轻车熟路,何乐而不为
不过呢,这个技术线路现在很少见,估计也在被淘汰的边缘了
作为一名进步青年,我决定尝试新技术
身边看得到的,还有个vlc
sjtu用它部署了挺大范围的视频转播系统
这是个非常好的方案,只有一个问题,它要求客户端安装软件
除此之外,我还真的很少见到vlc被部署到窄带视频应用上
(其实我也就见过sjtu的一套部署方案 – -b)
还剩下的,flash
起步于,我见过国外有网站应用这个技术转播比赛
采集编码,adobe flash media live encoder,这个是免费的,界面也很直观
flash streaming server:wowza red5 FMS
red5开源,网上评价也不错,也就选定了
这个部署的过程真是相当的费劲
这跟我对基于java的webapp不甚了解不无关系
能找到的文档,几乎都是二次开发相关的,眼睛一扫到IDE和类
就晕了,于是反复仔细研读了red5的feature list
Streaming audio/video
Live Stream Publishing
求助文档无果的情况,决定装上试试
它的安装文档倒是相当体贴,没什么挫折,就搞定了
运行起来,通过web访问下,才知觉这玩意儿是个framework
app需要二次开发的,它自带了不少demo
然后,其中的一个demo就能满足我的要求…
oflaDemo
它实现的功能,就是个发布点,完整的形式是这样
rtmp://server.ip/oflaDemo
无论是采集发布的flash encoder还是播放的player,都连接这个地址
flash encoder会指定自己发布的stream的名称
player播放时也要加上名称参数
可以是文件名,live stream的话,可以使随意的代号
最后就是flash player的选择,网上大部分文章中提到的JW flash player
其实是不好用的….估计曾经是可以的,但是两家都顾着自己升级就出了问题
JW可以装载视频,可以快速seeking,但是不能播放,服务器的log里可以看到
Method checkBandwidth with parameters [] not found的提示
这个问题让我纠结了大半天,差点就回去找mms凑合了
换了个播放器,flowplayer,搞定。
附一个flowplayer的配置代码,也帮助理解streaming的一些概念
$f("SomeDivID", "http://releases.flowplayer.org/swf/flowplayer-3.1.5.swf", { clip: { url: 'my_lifecast', //could be a file name live: true, //obviously provider: 'rtmp' }, // streaming plugins are configured under the plugins node plugins: { // here is our rtpm plugin configuration rtmp: { url: 'flowplayer.rtmp-3.1.3.swf', // netConnectionUrl defines where the streams are found netConnectionUrl: 'rtmp://cyzy7r959.rtmphost.com/flowplayer' //发布点 } } });
Tags: flash, flowplayer, red5
-
Interesting post. 我也正在研究视频直播,不知道实时streaming一台10M的托管服务器可以SERVE多少人


2 comments
Comments feed for this article
Trackback link: http://zh.siyuanhu.net/wp-trackback.php?p=111