• 23 四 2009 /  互联网技术

    首先FMS的资料在网上太少了,也许因为FMS卖得太贵,很少有人正式使用。但是Flash安装量不可忽视呀,FMS也有两个代替品Red5Wowza Media Server,前者是免费开源基于java的解决方案,后者是付费但是比FMS便宜的解决方案,因此以后这方面还是会发展,选择也会更多样化;FMS研究一下也无妨。

    研究了就会有问题,这次的问题是使用Flash自身的encoder机制和使用Flash Media Live Encode 3的机制推送到FMS服务器后声音效果不一样,后者严重的声音断续,大概6秒就断一次,基本上无法正常传送音乐,语音的话偶尔就把说话的人几个字抹掉了。一开始使用Flash自身来推送声音和视频这种现象并不常见,迁移到FMLE的原因是FMLE有更多的视频推送参数可以选择,并且支持H.264编码,推送的视频质量也比Flash自身编码的效果好,在一点发送,多点接收的直播项目中,选择FMLE可以提高用户视觉体验。

    于是问题产生了就要分析解决问题,先是由代理服务器改成直接推送,再是由外网测试到直接内网直接连接测试,Flash与FMLE比对,细调FMLE参数都无法排除这个问题,网上搜索国内外均无此问题的资源。心情极度郁闷呀,已经忙活了一个下午没有什么进展。

    忽然间,视线从FMLE转到FMS,开始检查FMS服务器的配置参数,一般来讲FMS安装好后很少动默认的参数,我也一直没有时间仔细的查看每一个参数的意思来调整,主要也是adobe的那个说明文档太粗糙,基本上都是一带而过,而且还有些错误还要自己去猜正确答案是什么。但是现在开始怀疑它了,貌似配置文件的备注比文档说明的更详细,备注、文档两个对着开始尝试一条条瞎改,最后发现了一个配置参数并且文档中有一句话大概的意思是如果直播的话建议将此参数关闭,这个参数是Queue,位于{FMSROOT}/conf/_defaultRoot_/_defaultVHost_/Application.xml文件中,这个参数以及子集参数是来设定publish的消息队列,这个队列的内容通过一些优化操作再发给订阅者,将这个参数关闭后,第一是时效性增加了,断音的情况也消失了,留下的是不太能听得清楚的一些杂音,这些杂音可能和码流设定和网络状况有关,猜测队列可以缓存后再平滑的向接收方输出,但是这中间出了些问题,也许是缓冲区不够大,还有一些类似消息数据整合的操作导致的断音。暂时不想这么多了,有太多的诡异问题等着呢,关之,原理稍后再说。FMS不开源很多东西都没有办法深究,所以走一步看一步吧。

    后记:

    上述调整只能减缓问题,但是无法根本解决问题,在稍后的几天里,我们在实际网络中运行还是发现断续的现象,无奈继续一个个尝试修改配置文件,没有效果。最后还是仔细的google了一下,结论是在直播流的这种情况下,客户端flash接收一定要设置一个缓冲时间,如果缓冲是零的话,效果就不好,于是乎设置了一个0.5秒的buffer,暂时再没有发现断音的现象了。

    Tags: , , ,

  • 12 十一 2008 /  互联网技术

    很久没有这么仔细的编写一个程序了,昨天下午出了点问题,在浏览器看着好好的内容使用Flash调用会出现问题,后来curl -i http://www.bigtoy4boy.com/测试,发现了问题。

    首先apache没有配置默认的字符集,我如果在php里面随意的输出几行的话,apache是不会在header上加上“Content-Type: text/html;charset=UTF-8”的。为此在apache配置文件中加入配置:AddDefaultCharset UTF-8,我加在httpd.conf文件中DefaultType text/plain这行下面了。

    其次,输出的内容在正式内容前会有乱码,这是因为我所有的程序、模板都是用UTF-8格式保存并且文件头有unicode标志“0xEF”,修改文本编辑器去掉这个头,一切就恢复正常了。

    标准的浏览器会兼容这个错误,过滤一些前置字符,但是用程序使用http协议通讯的时候就会有问题,flash的URLRequest也是这样。网上搜索了一下基本上没有人记录、描述这个问题,为此留下一篇文章。万一被你搜中了,要留言给我哦!

    Tags: ,

  • 30 七 2008 /  互联网技术

    Flash现在是可以调用设想头来做一些应用的,一直计划实现的什么小东西,某天忽然发现新版本的Discuz是在用户编辑头像的时候支持摄像头拍照的, 于是使用了一下,Flash提示你是否要允许使用摄像头等设备,选择允许后,发现没有反应,Macbook上的摄像头指示灯也没亮,难道是mac下的摄像 头没有办法用嘛?再继续探索,发现如果再次在Flash上点鼠标右健,然后选择设置,可以看到一个更加丰富的菜单,菜单的摄像头那栏可以看到一个下来菜 单,来选择使用那个摄像设备,默认选择了DV…,可能是选得不对,选择了USB Video的那个,再次测试,嘿嘿,好了。可以使用了。

    走了,去视频聊天去了…..

    Tags: , , ,