基本成形 包括网页直播 和 app直播 项目原型是一个多人视频会议 所以我最先的想法是实用webrtc 但是webrtc资料太少官网被墙 用vpn都看不了大多数的文档 最大的问题是连接数的问题 p2p的连接人数太多就不行了,所以做完网页这一块 我就放弃了 移动端更麻烦 还是转向了服务器端的直播方式 也是现在最流行的 直播网站的形式 1.主要的协议 rtmp 和 hls 前者延时在1-6秒 后者10秒以上 2.浏览器插件 rtmp是adobe的所以用的插件必须是flash的插件,网上查到一个 产品 极酷阳光播放器 是可以支持rtmp播放的 但是我的功能中有支持网页中对直播截图(那个产品客户技术说不支持),所以我自己用flex开发了一个简单的支持截图的播放器。rtmp播放器本身很简单 截图用的 private function interfaceIn_getScreenshot():String { var w:Number = swidth; var h:Number = sheight;
var screenshotData:BitmapData = new BitmapData(w, h);
screenshotData.draw(this);
return Base64.encodeByteArray(
PNGEncoder.encode(screenshotData));
}
在js 中可以调用到flex中的函数 3.sock.io 所有的聊天室的即时通讯用的都是这个 ,它本身也支持room的概念 ios 安卓也有支持sock.io的实现 4.rtmp服务器 最主要的 原先使用了一个 node的实现https://github.com/nodecg,最后改成了 srs这个开源产品 大家可以百度 支持非常强大 各种格式转换 官方文档非常全 https://github.com/ossrs/srs/wiki 我用的2.0版本 5.rtmp客户端 obs studio https://obsproject.com/ 6.app ios 和 安卓 的原型往上都有现成的rtmp支持 https://github.com/yixia/VitamioBundle https://github.com/slavavdovichenko/MediaLibDemos3x/blob/master/RTMPStreamPlayer/ViewController.m
penta kill