AX的代码已经看的差不多了,有些细节也来不及全部照顾到,总结一下:
LIVE VIEW的功能总体分为三大模块
1.网络数据收发模块,由TCP协议进行通信,关于SOCKET的代码可以自行先封装一个简单的,由于是多路摄像机的集中监控,需要封装多个connection并管理数据
2.视频数据解码模块,由于ipcam那端采用h264编码,client端采用lib_ffmpeg来解码,看代码可以decode为yuv格式的数据,匆匆翻了一下yuv的信息,样子和rgb差不多,不过所谓yuv文件只管记录相关的色彩信息,连文件头都没有,真是专业,那分辨率记在哪呢?CIF 和 QCIF 都有约定的宽高。ffmpeg貌似还能缩放yuv的宽高。
3.数据输出模块,即将yuv数据呈现到屏幕,AX工程使用的是dshow的方式,其实手段有很多,目的只有一个,即视频呈现。
注意的问题:
1.高清图像的数据接收还没有测试,因为先前的都是低清的,看分辨率就知道
2.ffmpeg的缩放api还没有搞的很清楚,需要进一步了解一下
TODO://
计划先做单个ipcam的live view功能,即 live view player