<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[莫问收获、敢问耕耘]]></title><description><![CDATA[相持未定各为君 秦政山河此地分 力尽乌江千载后 古沟芳草起寒云]]></description><link>https://blog.youkuaiyun.com/longlong530</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; longlong530]]></copyright><item><title><![CDATA[平台顺利通过公安部一所《GBT 28181-2011 安全防范视频监控联网系统信息传输、交换、控制技术要求》检测]]></title><link>https://blog.youkuaiyun.com/longlong530/article/details/49797843</link><guid>https://blog.youkuaiyun.com/longlong530/article/details/49797843</guid><author>longlong530</author><pubDate>Thu, 12 Nov 2015 13:29:55 +0800</pubDate><description><![CDATA[平台顺利通过公安部一所《GBT 28181-2011 安全防范视频监控联网系统信息传输、交换、控制技术要求》检测]]></description><category></category></item><item><title><![CDATA[视频存储空间计算公式]]></title><link>https://blog.youkuaiyun.com/longlong530/article/details/44308333</link><guid>https://blog.youkuaiyun.com/longlong530/article/details/44308333</guid><author>longlong530</author><pubDate>Mon, 16 Mar 2015 16:46:49 +0800</pubDate><description><![CDATA[存储空间计算公式：
单路实时视频的存储容量 (GB) (GB)(GB)＝【视频码流大小 ＝【视频码流大小 (Mb) ×60 秒× 60 分× 24 小时×存储天 数/8 】/1024 ；
我们以一路视频图像在7天、15天、30天所需要的占用空间为例：




对于已建点位 ，由于 早期 编码 技术限制，一般 1080 P需 6-8Mb 码流， 72 0P 需要 3-4Mb 码流 ，4]]></description><category></category></item><item><title><![CDATA[鼠标右键菜单清理方法]]></title><link>https://blog.youkuaiyun.com/longlong530/article/details/44302333</link><guid>https://blog.youkuaiyun.com/longlong530/article/details/44302333</guid><author>longlong530</author><pubDate>Mon, 16 Mar 2015 10:44:51 +0800</pubDate><description><![CDATA[最近电脑装了些软件后，右键打开的速度变得非常慢，严重影响工作效率。网上找了些解决方案，装了“**右键清理工具”附带了一堆垃圾软件，360安全卫士也么有响应的小工具，终于找了一个从注册表解决的方法，mark下。
电脑鼠标右键反应慢解决办法开始，
1. 运行：regedit，打开注册表
2. 目录空白处右键窗口清理： 
找到注册表：HKEY_CLASSES_ROOT/Directory/Bac]]></description><category></category></item><item><title><![CDATA[VS远程调试之Remote Debugger]]></title><link>https://blog.youkuaiyun.com/longlong530/article/details/43981961</link><guid>https://blog.youkuaiyun.com/longlong530/article/details/43981961</guid><author>longlong530</author><pubDate>Sat, 28 Feb 2015 09:12:47 +0800</pubDate><description><![CDATA[1、  拷贝Remote Debugger（对应程序在多少位机器上编译即使用多少位远程调试器）到需要调试的机器上。
2、  代码所在机器上的IDE在工程属性-调试中配置如下：


3、  将要调试机器上对应的进程关闭。打开Remote Debugger，选项中设置身份验证模式为无身份验证，最长空闲时间设置长一些。




4、  此时，在有代码的机器上按F5运行程序，即可以进入断]]></description><category></category></item><item><title><![CDATA[【Darwin学习笔记】之QTSSReflectorModule的Setup消息处理]]></title><link>https://blog.youkuaiyun.com/longlong530/article/details/43667533</link><guid>https://blog.youkuaiyun.com/longlong530/article/details/43667533</guid><author>longlong530</author><pubDate>Mon, 09 Feb 2015 10:11:09 +0800</pubDate><description><![CDATA[Setup消息进入到DoSetup函数单独处理，处理流程如下：
【转载请注明出处】：http://blog.youkuaiyun.com/longlong530

1. 根据关键字qtssRTSPReqTransportMode判断是否为推模式，具体isPush值由Setup请求中的mode值有关，

mode="receive" || mode="record"表示isPush为true。对应的解]]></description><category></category></item><item><title><![CDATA[【Darwin学习笔记】之QTSSReflectorModule的Describe消息处理]]></title><link>https://blog.youkuaiyun.com/longlong530/article/details/43564747</link><guid>https://blog.youkuaiyun.com/longlong530/article/details/43564747</guid><author>longlong530</author><pubDate>Fri, 06 Feb 2015 15:19:52 +0800</pubDate><description><![CDATA[对于QTSSReflectorModule里面的Describe消息只处理sdp类型的资源请求，其他类型的比如mov、mp4等资源会跳转到QTSSFileModule里面，其中mp4文件在Darwin源码中点播需要先hint下。如果想在增加多种视频格式那就要对FileModule进行扩展，在我们的项目中就优化了FileModule，实现了对mp4、avi等各种格式的文件的点播支持。后面的章节我们详]]></description><category></category></item><item><title><![CDATA[【Darwin学习笔记】之QTSSReflectorModule的Announce消息处理]]></title><link>https://blog.youkuaiyun.com/longlong530/article/details/43489181</link><guid>https://blog.youkuaiyun.com/longlong530/article/details/43489181</guid><author>longlong530</author><pubDate>Wed, 04 Feb 2015 17:35:33 +0800</pubDate><description><![CDATA[RTSP Announce命令是数据源向Darwin服务端主动发起的上报本地媒体sdp信息的命令，在Darwin中处理该命令的函数为QTSSReflectorModule模块的DoAnnounce()函数，下面对该函数的进行剖析：

1. 判断sAnnounceEnabled是否开启，由以下配置项确定，默认为true
true
2. 通过键值qtssRTSPReqLocalPath获取完整]]></description><category></category></item><item><title><![CDATA[【Darwin学习笔记】之RTSPSession点播流程]]></title><link>https://blog.youkuaiyun.com/longlong530/article/details/43451717</link><guid>https://blog.youkuaiyun.com/longlong530/article/details/43451717</guid><author>longlong530</author><pubDate>Tue, 03 Feb 2015 16:54:16 +0800</pubDate><description><![CDATA[今天详细的看了下RTSPSession的会话处理代码，该模块主要是Run方法内对会话的状态机进行管理，实现对RTSP会话的处理，我以点播Movie文件夹下的视频文件为例，深入的学习了（Describe、Setup、Play的点播流程），并按照状态机的处理顺序对他们进行一一解析，如下：
【转载请注明出处】：http://blog.youkuaiyun.com/longlong530

1. 状态机 kRe]]></description><category></category></item><item><title><![CDATA[Windows下生成dump文件方法]]></title><link>https://blog.youkuaiyun.com/longlong530/article/details/43307249</link><guid>https://blog.youkuaiyun.com/longlong530/article/details/43307249</guid><author>longlong530</author><pubDate>Fri, 30 Jan 2015 15:16:46 +0800</pubDate><description><![CDATA[一. 背景
       没人能保证自己的软件在各种未知环境运行下，会木有任何问题。那么如果程序崩溃了怎么办？看日志？日志不全又怎么办？日志能帮你定位的多细致呢？如果能有种方法记录程序最后工作的状态，比如堆栈调用情况等，那么我们就可以获悉“它是如何挂掉的~”


二. 调研

我们对程序bug引起的程序崩溃的五种定位方法进行了调研，并最终选择方案5为我所在项目使用的程序崩溃定位方案。]]></description><category></category></item><item><title><![CDATA[推荐两个小工具MediaInfo  和 netpersec]]></title><link>https://blog.youkuaiyun.com/longlong530/article/details/43266343</link><guid>https://blog.youkuaiyun.com/longlong530/article/details/43266343</guid><author>longlong530</author><pubDate>Thu, 29 Jan 2015 09:19:43 +0800</pubDate><description><![CDATA[流媒体服开发的时候常用的两个工具，

1. MediaInfo 
   
下载路径：（http://w.x.baidu.com/alading/anquan_soft_down_all/11027）
    工具说明：可以查看视频、图片文件的文件信息，包含编码、文件格式等多个属性使用也很方便，安装后直接右键点击选择要查看的文件即可：






图片：


视频：]]></description><category></category></item><item><title><![CDATA[【Darwin学习笔记】之获取系统处理器数量的方法]]></title><link>https://blog.youkuaiyun.com/longlong530/article/details/43229305</link><guid>https://blog.youkuaiyun.com/longlong530/article/details/43229305</guid><author>longlong530</author><pubDate>Wed, 28 Jan 2015 13:48:06 +0800</pubDate><description><![CDATA[阅读Darwin源码的时候看到这个方法，感觉挺有用处，且考虑了多种平台下的实现方式，直接贴代码，以后说不定会用到~


UInt32  OS::GetNumProcessors()
{
#if (__Win32__)
    SYSTEM_INFO theSystemInfo;
    ::GetSystemInfo(&theSystemInfo);
    
    return (UIn]]></description><category></category></item><item><title><![CDATA[【Darwin学习笔记】之TaskThread]]></title><link>https://blog.youkuaiyun.com/longlong530/article/details/43226999</link><guid>https://blog.youkuaiyun.com/longlong530/article/details/43226999</guid><author>longlong530</author><pubDate>Wed, 28 Jan 2015 10:43:20 +0800</pubDate><description><![CDATA[学习TaskThread主要有三个类要关注：
TaskTreadPool： 任务线程池
TaskThread：任务线程
Task: 任务


1. TaskThreadPool
Darwin运行着一个或者多个任务（Task）线程，并将他们统一在线程池TaskThreadPool中管理。任务线程从事件线程中接收RTSP和RTP请求，然后把请求传递到恰当的服务器模块进行处理，把数据包发送]]></description><category></category></item><item><title><![CDATA[【Darwin学习笔记】之EventThread]]></title><link>https://blog.youkuaiyun.com/longlong530/article/details/43196365</link><guid>https://blog.youkuaiyun.com/longlong530/article/details/43196365</guid><author>longlong530</author><pubDate>Tue, 27 Jan 2015 16:48:02 +0800</pubDate><description><![CDATA[EventThread负责侦听Darwin系统的Socket事件，包括以下两类， 对于两类事件是分别如何处理的，我们从头开始分析。
a)   建立新的RTSP连接请求事件 
b)   已有RTSP连接上的RTSP请求消息事件
     
一.  EventThread 对象的创建
   RunServer.cpp 中StartServer函数初始化调用了 Socket::Initiali]]></description><category></category></item><item><title><![CDATA[【Darwin学习笔记】之RTSP连接监听初始化]]></title><link>https://blog.youkuaiyun.com/longlong530/article/details/43194075</link><guid>https://blog.youkuaiyun.com/longlong530/article/details/43194075</guid><author>longlong530</author><pubDate>Tue, 27 Jan 2015 14:14:33 +0800</pubDate><description><![CDATA[网上有很多大侠已经对Darwin做了详细的剖析，在下仅本着积累经验的目的，将Darwin的学习过程记录下来，同时与网友们交流学习，今天先来分析下Darwin如果根据配置文件监听RTSP连接的流程。
1. Darwin系统初始化，Bool16 QTSServer::Initialize（.....）
2. QTSServer::CreateListeners（...）根据本地xml配置文件中的地址和端口进行监听的建立，主要有两个配置项：
<PREF NAME="bind_ip_addr" >0</PREF>
]]></description><category></category></item><item><title><![CDATA[windows平台ffmpeg编译]]></title><link>https://blog.youkuaiyun.com/longlong530/article/details/41979817</link><guid>https://blog.youkuaiyun.com/longlong530/article/details/41979817</guid><author>longlong530</author><pubDate>Wed, 17 Dec 2014 11:52:24 +0800</pubDate><description><![CDATA[ffmpeg编译可参考以下网址：
    http://trac.ffmpeg.org/wiki/CompilationGuide
    http://www.cppblog.com/gaimor/archive/2012/12/29/196815.html


一、准备环境
1.下载MinGW
官网www.mingw.org，切换到download页面下载mingw-get-se]]></description><category></category></item><item><title><![CDATA[Perl 访问FTP]]></title><link>https://blog.youkuaiyun.com/longlong530/article/details/25476929</link><guid>https://blog.youkuaiyun.com/longlong530/article/details/25476929</guid><author>longlong530</author><pubDate>Sat, 10 May 2014 14:01:31 +0800</pubDate><description><![CDATA[#ftp
#ljl

#!/usr/bin/perl
use strict;
use Net::FTP;

my $user = "anonymous";
my $passwd = "chinaunix@";
my $host = "ftp.freebsd.org";

my $ftp = Net::FTP->new("$host", Debug =>0)
or die "Can't connec]]></description><category></category></item><item><title><![CDATA[用perl对字符串进行全角转半角操作]]></title><link>https://blog.youkuaiyun.com/longlong530/article/details/24632303</link><guid>https://blog.youkuaiyun.com/longlong530/article/details/24632303</guid><author>longlong530</author><pubDate>Mon, 28 Apr 2014 11:56:49 +0800</pubDate><description><![CDATA[#全角转半角
#ljl
use Encode;

sub CheckSBC
{
	my ($name)=@_;
	my @character;
	my $tmpname=$name;
	my $headname;
	my $k=0;
	for($ii=1; $ii <= length($name); $ii++) 
	{
		if(length($tmpname)>0)
		{
			my $he]]></description><category></category></item><item><title><![CDATA[Perl生成excel文件]]></title><link>https://blog.youkuaiyun.com/longlong530/article/details/24632085</link><guid>https://blog.youkuaiyun.com/longlong530/article/details/24632085</guid><author>longlong530</author><pubDate>Mon, 28 Apr 2014 11:54:40 +0800</pubDate><description><![CDATA[#生成excel
#ljl


use Spreadsheet::WriteExcel; 
my %us;
while(($key, $value) = each %us){
	print "$key|$value\n";
}




 # 创建一个新的EXCEL文件  
  my $workbook = Spreadsheet::WriteExcel->new('poi_count_top15.]]></description><category></category></item><item><title><![CDATA[文件处理函数]]></title><link>https://blog.youkuaiyun.com/longlong530/article/details/22918317</link><guid>https://blog.youkuaiyun.com/longlong530/article/details/22918317</guid><author>longlong530</author><pubDate>Fri, 04 Apr 2014 10:41:41 +0800</pubDate><description><![CDATA[这两天在写个遍历文件批处理的小工具，碰到几个时间相关的函数，整理了下，说不定以后可能会再用到呢~
 
//判断文件是否存在
bool FileIsExists(LPCSTR filePath)
{
	WIN32_FIND_DATA FindFileData;
	HANDLE hFind;

	hFind = FindFirstFile(filePath, &FindFileData]]></description><category></category></item><item><title><![CDATA[在日志中如何打印文件、行号、方法名]]></title><link>https://blog.youkuaiyun.com/longlong530/article/details/12079425</link><guid>https://blog.youkuaiyun.com/longlong530/article/details/12079425</guid><author>longlong530</author><pubDate>Fri, 27 Sep 2013 08:48:37 +0800</pubDate><description><![CDATA[这段代码中用到了这几个宏:
　　1) __VA_ARGS__  
 是一个可变参数的宏，这个可宏是新的C99规范中新增的，目前似乎只有gcc支持（VC6.0的编译器不支持）。宏前面加上##的作用在于，当可变参数的个数为0时，这里的##起到把前面多余的","去掉的作用。
　　2) __FILE__   
 宏在预编译时会替换成当前的源文件名
　　3) __LINE__  
 宏在预编译时]]></description><category></category></item></channel></rss>