代码改变世界

随笔档案-2013年06月

Inno Setup制作安装包的几个问题

2013-06-20 22:23 by 鉴于, 7144 阅读, 收藏,
摘要: Inno Setup 安装包制作问题 阅读全文

Live555研究之三 RTSP Server处理请求

2013-06-20 01:52 by 鉴于, 1250 阅读, 收藏,
摘要: RTSP Server会不断用select查询是否有socket连接,如果有则在(*handler->handlerProc)(handler->clientData, resultConditionSet) 进行处理。 在RTSPServer::RTSPClientConnection::incomingRequestHandler1()函数中,从socket读取客户端请求信息,然后解析R... 阅读全文

Live555研究之二Sleep实现

2013-06-17 01:48 by 鉴于, 1417 阅读, 收藏,
摘要: Live555通过一个while循环来不断读取socket,判断是否有连接进来,但是Live555并没有使用Sleep函数来让线程休眠多少毫秒来降低CPU占用率。Live555是通过select函数来实现Sleep,先计算出距离下次事件的时间,然后让select超时为该时间值(tv_timeToDelay),如果有连接进来则处理,没有则等待直到超时。 int selectResult = ... 阅读全文

多线程退出优化

2013-06-15 02:11 by 鉴于, 459 阅读, 收藏,
摘要: 监控客户端支持同时播放最大8路视频,每个设备有个CCamera类对其进行抽象,CCamera中有工作线程进行视频收发和任务异步执行操作。如果需要退出应用程序时,首先需要对各个CCamera对象依次进行如下操作: 永久激活CloseEvent,不在接受新得任务请求。 停止接受视频数据,断开和设备的网络连接 清除队列中的帧数据 清除未完成的任务 最初设计是串行执行的... 阅读全文

Live555研究之一mediaServer主循环

2013-06-15 01:49 by 鉴于, 1789 阅读, 收藏,
摘要: mediaServer工程中的live555MediaServer.cpp提供一个main函数,里面创建了一个DynamicRTSPServer对象,DynamicRTSPServer从RTSPServerSupportingHTTPStreaming派生下来,RTSPServerSupportingHTTPStreaming从RTSPServer派生下来,RTSPServerSupporting... 阅读全文

Live555调试

2013-06-15 01:38 by 鉴于, 609 阅读, 收藏,
摘要: 在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 鉴于, 534 阅读, 收藏,
摘要: 由于海思解码器支持的视频路数有限制,需要改用FFMPEG解码。首先需要研究FFMPEG,以下参数配置为作为研究FFMPEG之用。 ./configure --enable-shared --enable-gpl --enable-version3 --enable-doc --enable-ffmpeg --enable-ffplay --enable-ffprobe --enable-ffs... 阅读全文

监控系统播放音频断断续续的原因

2013-06-06 01:06 by 鉴于, 1340 阅读, 收藏,
摘要: 将音频帧送交海思解码器,将解码后的音频数据提交windows播放,但是效果总是断断续续的,声音时有时无。视频和音频通过和IPC一条TCP连接传输,音频数据和视频数据是分开的。尝试过对收发帧数据线程进行优化,仍然无效。 准备采用最后的办法,视音频同步。结果事情有转机,海思解码器回调返回的是short类型指针, 长度为len,len个short字节。在调用waveOutWrite播放声音时,填充数... 阅读全文