yoguz
查看yoguz的博客
金钱 | : 18255 |
Level | : 0 |
发帖数 | : 1564 |
最后登陆 | : 2019/10/24 |
注册时间 | : 2004/12/13 |
|
平滑播放FLV视频文件 一直觉得flash播放视频文件不是很理想,除需要转换常用的MPG、AVI为FLV的麻烦不说,单是播放FLV文件时那“马赛克”(实时是缩放播放时没有经过抗锯齿处理)很不舒服,曾经以为是编码的问题,下载了各类FLV的编码文件并把源文件为VCD的文件用各种码率压缩在flash中播放都显得很粗糙,没有单独用Window mediaplay全屏播放顺眼! 无意间在google video上看到一段视频在线播放感觉很好,无上述说的“马赛克”,可当下载在本地插入我的flash后马赛克出现了,很奇怪,就仔细研究,原来google video的播放器有一个选项为"Smooth video"就是平滑视频的意思,反复点选“Smooth video”发现效果很明显。因对此很感兴趣,试着破解google video的播放器没成功,搜索国内国外的网站没有提到这是怎么实现的,在某一网站有人猜想是用flash8新的滤镜BlurFilter实现,后就试着用BlurFilter做,做完后播放发现确实可以,但有一个问题跟google video player的不一样,就是在视频被放大得很大时,用BlurFilter影响速度,而google video player播放打开“Smooth video”不会影响播放速度。 最后在翻看flash8的帮助文档时无意间发现video本身就有一个属性“smoothing”,但此属性默认是false,所以视频在缩放时没抗锯齿(smooth平滑)处理,下面介绍用“smoothing”属性平滑播放视频的方法,用的是帮助文档中的一个例子: 1.新建flash文档(例800X600),在库中新建视频,拖到舞台上(放大为800X600),取名为:my_video 2.新建一按钮如“平滑视频”实例名为:smoothing_btn 3.在第一帧输入如下as: this.createTextField("smoothing_txt", this.getNextHighestDepth(), 0, 0, 100, 22); smoothing_txt.autoSize = true; var my_nc:NetConnection = new NetConnection(); my_nc.connect(null); var my_ns:NetStream = new NetStream(my_nc); my_video.attachVideo(my_ns); my_ns.play("test1.flv"); my_ns.onStatus = function(infoObject:Object) { updateSmoothing(); }; smoothing_btn.onRelease = function() { my_video.smoothing = !my_video.smoothing; updateSmoothing(); }; function updateSmoothing():Void { smoothing_txt.text = "smoothing = "+my_video.smoothing; } 4.保存文档 5.测试影片(当然文档的相同目录下得有test1.flv文件) 6.你可反复按“平滑视频”的按钮比较效果。 小结:A为什么这么有用的属性在讲解“动态播放FLV文件”的任何文档和书中都没有?B以后遇到问题先搜索帮助文档免走弯路C若有不对请高手同行多指教 源程序下载:test_smooth_video.rar
|