缘由
要实现实时性、跨平台性,实现机器人的视觉获取、传输、处理。查阅了一些资料,webrtc不记得了;red5也是借助flash的,跨平台特性不好,需使用flash,rtmp推流也有各种限制,在安卓手机、ios上显示不了在网页等前端不好获取,需要各种插件;所以为了保证跨平台特性、保证实时性等,总体还是原来的jpg的方案好。
存在问题
jpg方案传输的带宽有点大,如果按10fps,每张图片50kb,那每秒就有500kb,如果4个摄像头,则每秒就有2000kb,所以还是需要一个视频压缩方案。
新的构想
现在发现opencv.js可以在页面显示mat(通过canvas),跨平台性能应该不错,而且可以通过opencv做很多事情,比如以后的物体识别等。
所以构想是ffmpeg获取frame-变换成mat-压缩处理-用websocket发送到页面-页面解压-通过mat来显示。