摘要:IPC会将监控区域划分成多个小块,按块提供是否监控配置。这时监控客户端需要提供配置界面,显示视频时也需要在视频上画上多行多列的线,同时对告警区域填充颜色。一种办法是对转成RGB24的图像数据直接进行象素处理。 由YV12转成RGB24后图像在内存中排列顺序为BGR BGR BGR 。。。BGR而且是图像从左到右,从下到上排列。B是Blue象素的值,G是Green象素的值,R是Red象素的值。为了处理方便定义了一个BGR的宏#define BGR(b,g,r) ((COLORREF)(((BYTE)(b)|((WORD)((BYTE)(g))<<8))|(((DWORD)(BYTE) 阅读全文
视频监控---存储磁盘选择
2013-07-16 00:48 by 鉴于, 541 阅读, 0 推荐, 收藏, 编辑
摘要:通常监控客户端会安装在系统盘上,但是如果将本地录像视频也保存在系统盘上,将可能很快占用光系统盘资源而导致系统无法正常运行。安装时可以考虑枚举各个磁盘,判断剩余空间大小,将剩余空间最大的盘作为录像存储磁盘。 1. 利用GetLogicalDriveStrings列出所有盘符,如: c:\ d:\ 各个盘符之间会用null隔开。 TCHAR szDiskArray[1024... 阅读全文
Live555研究之三 RTSP Server处理请求
2013-06-20 01:52 by 鉴于, 1202 阅读, 0 推荐, 收藏, 编辑
摘要:RTSP Server会不断用select查询是否有socket连接,如果有则在(*handler->handlerProc)(handler->clientData, resultConditionSet) 进行处理。 在RTSPServer::RTSPClientConnection::incomingRequestHandler1()函数中,从socket读取客户端请求信息,然后解析R... 阅读全文
Live555研究之二Sleep实现
2013-06-17 01:48 by 鉴于, 1388 阅读, 0 推荐, 收藏, 编辑
摘要:Live555通过一个while循环来不断读取socket,判断是否有连接进来,但是Live555并没有使用Sleep函数来让线程休眠多少毫秒来降低CPU占用率。Live555是通过select函数来实现Sleep,先计算出距离下次事件的时间,然后让select超时为该时间值(tv_timeToDelay),如果有连接进来则处理,没有则等待直到超时。 int selectResult = ... 阅读全文
多线程退出优化
2013-06-15 02:11 by 鉴于, 439 阅读, 0 推荐, 收藏, 编辑
摘要:监控客户端支持同时播放最大8路视频,每个设备有个CCamera类对其进行抽象,CCamera中有工作线程进行视频收发和任务异步执行操作。如果需要退出应用程序时,首先需要对各个CCamera对象依次进行如下操作: 永久激活CloseEvent,不在接受新得任务请求。 停止接受视频数据,断开和设备的网络连接 清除队列中的帧数据 清除未完成的任务 最初设计是串行执行的... 阅读全文
Live555研究之一mediaServer主循环
2013-06-15 01:49 by 鉴于, 1756 阅读, 0 推荐, 收藏, 编辑
摘要:mediaServer工程中的live555MediaServer.cpp提供一个main函数,里面创建了一个DynamicRTSPServer对象,DynamicRTSPServer从RTSPServerSupportingHTTPStreaming派生下来,RTSPServerSupportingHTTPStreaming从RTSPServer派生下来,RTSPServerSupporting... 阅读全文
Live555调试
2013-06-15 01:38 by 鉴于, 577 阅读, 0 推荐, 收藏, 编辑
摘要:在Debug模式下,将mediaServer设置为启动项,将52.mp3文件放置在mediaServer目录下,debug方式运行mediaServer。使用VLC播放器打开串流,输入类似于 rtsp://192.168.85.1:8554/52.mp3 地址访问Live555流服务器。上述IP和端口会在mediaServer启动时输出到终端上。 阅读全文
FFMPEG编译参数
2013-06-15 01:25 by 鉴于, 507 阅读, 0 推荐, 收藏, 编辑
摘要:由于海思解码器支持的视频路数有限制,需要改用FFMPEG解码。首先需要研究FFMPEG,以下参数配置为作为研究FFMPEG之用。 ./configure --enable-shared --enable-gpl --enable-version3 --enable-doc --enable-ffmpeg --enable-ffplay --enable-ffprobe --enable-ffs... 阅读全文