我想在客户端实现与flash的视频聊天,在服务器端实现我的自定义服务器(python)。我是flash和actionscript 3的新手。我只想收集帧并将它们发送到服务器。我阅读了一些actionscript的文档,并希望以这种方式实现它:
我想控制数据结构,通过计时器收集帧并将它们存储在ByteArray中,而不是将其发送到服务器并重新发送给聊天伙伴。
然后在计时器刻度我可以快照图像并收集它们:
var cam:Camera = Camera.getCamera();
var vid:Video = new Video();
vid.attachCamera(cam);
private var fpsFrame:ByteArray = new ByteArray();
//on timer event
...
imgBD = new BitmapData(vid.width,vid.height);
imgBD.draw(vid);
imgBitmap=new Bitmap(imgBD);
imgBA = imgBitmap.bitmapData.getPixels(rect1)
//fpsFrame.writeObject(imgBD);
//append frame
fpsFrame.writeBytes(imgBA)
imgBA.clear();
//than i can add sound here and send to server
...
这样做是否合适?哪种结构更适合实施?
答案 0 :(得分:0)
如果市场上有很多选择,你为什么要这样做呢? FMS,Wowza,Red5 - 这些媒体服务器能够在几分钟内建立您的视频聊天。整个Flash媒体基础架构围绕媒体服务器工作:Camera,Video,NetStream。数据会自动编码,发送,保存,加载和解码。
你想手动将screengrabs绘制成位图,压缩它们(在AS3中有png,jpeg甚至flv编码器),抓取声音块,压缩它们,将数据发送到另一方,手动解码所有东西并放入这一切都在一起?我打赌你会遇到性能,网络流量和同步问题。
如果您现在需要可行的解决方案,请使用媒体服务器。如果你是一个黑客,并且必须知道它是否可能,你应该尝试这样做(8创建一个没有媒体服务器的文库并将其发布到GitHub。这很酷。