<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ss00_2012的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ss00_2012</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ss00_2012]]></copyright><item><title><![CDATA[ffmpeg设置视频帧率]]></title><link>https://blog.youkuaiyun.com/ss00_2012/article/details/74937447</link><guid>https://blog.youkuaiyun.com/ss00_2012/article/details/74937447</guid><author>ss00_2012</author><pubDate>Mon, 10 Jul 2017 22:47:12 +0800</pubDate><description><![CDATA[使用-r参数可以对视频的帧率进行设置，那么是写成ffmpeg -i input -r n output还是ffmpeg -r n -i input output呢?
实际上-r参数用来设置输入文件和输出文件的效果是不一样的
前者决定了文件的时长，如果总帧数为N我们设置帧率为n,那么文件的长度就是N/n。如果未指定帧率，默认为25。
后者可以用来降低码流，也就说对于一秒的n帧，我们想让输出文件]]></description><category></category></item><item><title><![CDATA[利用ffmpeg将pcma和h264合成MP4]]></title><link>https://blog.youkuaiyun.com/ss00_2012/article/details/74937014</link><guid>https://blog.youkuaiyun.com/ss00_2012/article/details/74937014</guid><author>ss00_2012</author><pubDate>Mon, 10 Jul 2017 21:45:18 +0800</pubDate><description><![CDATA[摄像头回调的音频数据大都是pcma,视频数据大都是h264,利用一条ffmpeg可以将其合成为MP4。
ffmpeg -f alaw -ar 8000 -i test.pcma -r 20 -i test.h264 -vcodec copy test.mp4
-f alaw:指定输入格式为pcma
-ar 8000:设置音频的采样率为8000
-r 20:设置视频的帧率为20
-vcod]]></description><category></category></item><item><title><![CDATA[linux/windows socket属性继承]]></title><link>https://blog.youkuaiyun.com/ss00_2012/article/details/60756464</link><guid>https://blog.youkuaiyun.com/ss00_2012/article/details/60756464</guid><author>ss00_2012</author><pubDate>Tue, 07 Mar 2017 11:08:36 +0800</pubDate><description><![CDATA[今天在开发RTSP流转发程序之后，在windows下测试ok，在linux测试不可以，感觉程序跑的非常慢。最后定位为socket使用的是阻塞的。

windows下：tcp监听套接字accept生成的套接字继承监听套接字的属性，包括阻塞、非阻塞、发送和接受缓冲区等
linux下：不继承，需要重新设置。]]></description><category></category></item><item><title><![CDATA[RTP封装H264]]></title><link>https://blog.youkuaiyun.com/ss00_2012/article/details/54943537</link><guid>https://blog.youkuaiyun.com/ss00_2012/article/details/54943537</guid><author>ss00_2012</author><pubDate>Thu, 09 Feb 2017 09:13:06 +0800</pubDate><description><![CDATA[1 H264数据结构
H264功能分为两层：视频编码层(VCL,VideoCodeing Layer)和网络提取层(NAL,Network Abstraction Layer)。VCL数据及编码处理的输出，它表示被压缩编码后的视频数据序列。在VCL数据传输或存储之前，这些编码的VCL数据，先被映射或封装仅NAL单元中。每个NAL单元包括一个原始字节序列负荷(RBSP,Raw Byte Seque]]></description><category></category></item><item><title><![CDATA[Darwin架构优化的一点想法]]></title><link>https://blog.youkuaiyun.com/ss00_2012/article/details/53161926</link><guid>https://blog.youkuaiyun.com/ss00_2012/article/details/53161926</guid><author>ss00_2012</author><pubDate>Mon, 14 Nov 2016 18:11:56 +0800</pubDate><description><![CDATA[首先说下我对Darwin架构的一些理解：
Darwin在对socket、任务、线程等对象封装的基础上，创建一个事件线程来对所有的网络事件进行监听，当监听到网络事件后就向与socket对象绑定的任务对象发送消息即将任务对象添加到Darwin根据cpu个数创建的任务线程的任务队列中，任务线程来循环获取任务队列的任务，调用其Run函数，来实现对socket事件的处理。
另外我们注意到任务线程会根据R]]></description><category></category></item><item><title><![CDATA[EasyDarwin拉流支持基本认证和摘要认证(2)]]></title><link>https://blog.youkuaiyun.com/ss00_2012/article/details/52330838</link><guid>https://blog.youkuaiyun.com/ss00_2012/article/details/52330838</guid><author>ss00_2012</author><pubDate>Fri, 26 Aug 2016 18:21:07 +0800</pubDate><description><![CDATA[在前面《EasyDarwin拉流支持基本认证和摘要认证》一文中讲述了如何通过修改qtaccess、qtusers来让EasyDarwin对我们创建的用户支持基本认证和摘要认证，之后在与群主的沟通中感觉这种方式的体验性太差，用户的需求是多方面的，可能有的想在配置文件中配置、有的想从数据库中读取、有的想在程序中写死……，我们需要提供一种便于用户自己扩展的方式，而不是与qtaccess、qtusers来]]></description><category></category></item><item><title><![CDATA[EasyDarwin拉流支持基本认证和摘要认证]]></title><link>https://blog.youkuaiyun.com/ss00_2012/article/details/52262621</link><guid>https://blog.youkuaiyun.com/ss00_2012/article/details/52262621</guid><author>ss00_2012</author><pubDate>Sat, 20 Aug 2016 18:24:38 +0800</pubDate><description><![CDATA[RTSP认证作为RTSP标准协议的一部分，其内容在网上可以找到很多，在此就不在赘述。EasyDarwin作为RTSP服务器也提供了对RTSP请求的基本认证和摘要认证。
EasyDarwin用RTSPSession对象来处理RTSP请求，在其Run函数的kAuthenticatingRequest状态和kAuthorizingRequest状态及其调用的QTSS_RTSPAuthenticate_]]></description><category></category></item><item><title><![CDATA[GBK与UTF-8的相互转化   Windows Linux]]></title><link>https://blog.youkuaiyun.com/ss00_2012/article/details/52091046</link><guid>https://blog.youkuaiyun.com/ss00_2012/article/details/52091046</guid><author>ss00_2012</author><pubDate>Tue, 02 Aug 2016 08:54:55 +0800</pubDate><description><![CDATA[在程序中经常用到GBK与UTF-8的转化，尤其是对于一些中文字符的处理，现总结如下：
windows:
std::string UTF8ToGBK(const std::string& strUtf8)//UTF-8编码转化为多字节
{ 
 std::string strGBK;
 int len=MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)strUt]]></description><category></category></item><item><title><![CDATA[2010断点失效]]></title><link>https://blog.youkuaiyun.com/ss00_2012/article/details/52063835</link><guid>https://blog.youkuaiyun.com/ss00_2012/article/details/52063835</guid><author>ss00_2012</author><pubDate>Fri, 29 Jul 2016 13:15:34 +0800</pubDate><description><![CDATA[转载，原文地址为：http://blog.youkuaiyun.com/cai6811376/article/details/52063666。
近日，我们EasyDarwin团队在调试EasyDarwin的时候遇到有些C++源文件无法命中断点，提示“当前不会命中断点。还没有为该文档加载任何符号”。
这里是因为，有些源文件的调试信息被禁用了，生成不了调试符号。只需要将源文件的“调试信息格式”设置一下就可以]]></description><category></category></item><item><title><![CDATA[EasyDarwin自动停止推流]]></title><link>https://blog.youkuaiyun.com/ss00_2012/article/details/51441753</link><guid>https://blog.youkuaiyun.com/ss00_2012/article/details/51441753</guid><author>ss00_2012</author><pubDate>Wed, 18 May 2016 10:49:30 +0800</pubDate><description><![CDATA[我们使用EasyDarWIn的推流转发来进行媒体直播的时候，有时会有这样一个需求，当推流端推送的媒体没有客户端观看时，就希望推流端不再推送,也就是实现按需推送，当推流端使用4G网络时这个需求会更加强烈。
需求明确，那么说下实现。实现分为两步：触发和通知。


触发，EasyDarWin为每一路推流转发维护一个ReflectorSession对象，该对象的fNumOutputs属性用来指示当]]></description><category></category></item><item><title><![CDATA[WSAAsyncSelect模型实例讲解]]></title><link>https://blog.youkuaiyun.com/ss00_2012/article/details/50554966</link><guid>https://blog.youkuaiyun.com/ss00_2012/article/details/50554966</guid><author>ss00_2012</author><pubDate>Thu, 21 Jan 2016 14:18:45 +0800</pubDate><description><![CDATA[WSAAsyncSelect]]></description><category></category></item><item><title><![CDATA[以STL::map实现引用表的一种方式]]></title><link>https://blog.youkuaiyun.com/ss00_2012/article/details/50525257</link><guid>https://blog.youkuaiyun.com/ss00_2012/article/details/50525257</guid><author>ss00_2012</author><pubDate>Fri, 15 Jan 2016 18:28:05 +0800</pubDate><description><![CDATA[引用表 map]]></description><category></category></item><item><title><![CDATA[MFC多国语言实现]]></title><link>https://blog.youkuaiyun.com/ss00_2012/article/details/38707387</link><guid>https://blog.youkuaiyun.com/ss00_2012/article/details/38707387</guid><author>ss00_2012</author><pubDate>Wed, 20 Aug 2014 15:51:41 +0800</pubDate><description><![CDATA[http://www.cnblogs.com/xianyunhe/archive/2011/09/02/2163842.html]]></description><category></category></item><item><title><![CDATA[利用二层交换机来隔离冲突域]]></title><link>https://blog.youkuaiyun.com/ss00_2012/article/details/38437285</link><guid>https://blog.youkuaiyun.com/ss00_2012/article/details/38437285</guid><author>ss00_2012</author><pubDate>Fri, 08 Aug 2014 11:53:12 +0800</pubDate><description><![CDATA[http://blog.chinaunix.net/uid-24504987-id-122488.html

如现在有一台交换机连着四台主机，分别为A、B、C、D。假设现在主机A要发一个数据包给主机D。当交换机收到主机A发过来的数据帧之后，该如何处理呢?

1、若交换机中没有主机A或者主机D的MAC地址信息

如果这个网络是刚刚组建，又或则出于某种原因，网络管理员把交换机重置后，则交换]]></description><category></category></item><item><title><![CDATA[一种快速编辑电子电路图形的方法]]></title><link>https://blog.youkuaiyun.com/ss00_2012/article/details/37563797</link><guid>https://blog.youkuaiyun.com/ss00_2012/article/details/37563797</guid><author>ss00_2012</author><pubDate>Tue, 08 Jul 2014 14:09:20 +0800</pubDate><description><![CDATA[一种快速编辑电子电路图形的方法




南京航空航天大学信息科学与技术学院(南京 210016) 郑步生




1 引言写论文、编写产品资料等等，都离不开电原理图的绘制。与文档的输入相比，电路图形的输入要复杂得多。
目前，常见的电路图形绘制的方法大致有以下几种： 
（1）采用专业绘图软件绘制，如AutoCAD、CorelDRAW等〔1〕〔2〕。专业绘图软件绘图功能强大，所]]></description><category></category></item><item><title><![CDATA[截取窗口的最小化消息]]></title><link>https://blog.youkuaiyun.com/ss00_2012/article/details/24471941</link><guid>https://blog.youkuaiyun.com/ss00_2012/article/details/24471941</guid><author>ss00_2012</author><pubDate>Fri, 25 Apr 2014 14:40:16 +0800</pubDate><description><![CDATA[1.  WindowProc 函数：
LRESULT C***Dlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
    // TODO: Add your specialized code here and/or call the base class
     if(message == WM_SYSCOMMAND]]></description><category></category></item><item><title><![CDATA[C++ 结构体内存对齐]]></title><link>https://blog.youkuaiyun.com/ss00_2012/article/details/23856257</link><guid>https://blog.youkuaiyun.com/ss00_2012/article/details/23856257</guid><author>ss00_2012</author><pubDate>Wed, 16 Apr 2014 17:23:06 +0800</pubDate><description><![CDATA[最近工作时需要用到内存对齐，查了资料。发现比较乱且观点不一，因此验证并总结。下面所写都是在实际中得到验证。
环境：XP，VC6.0.
内存对齐又称字节对齐，可以加快系统的处理速度。在结构体中的存储中尤其重要，那么系统对齐是按照什么方式呢？


每个特定平台上的编译器都有自己的默认“对齐系数”(也叫对齐模数)。比如32位windows平台下，VC默认是按照8bytes对齐的(VC->Pro]]></description><category></category></item><item><title><![CDATA[字符串常量]]></title><link>https://blog.youkuaiyun.com/ss00_2012/article/details/22914405</link><guid>https://blog.youkuaiyun.com/ss00_2012/article/details/22914405</guid><author>ss00_2012</author><pubDate>Fri, 04 Apr 2014 09:28:54 +0800</pubDate><description><![CDATA[字符串常量，之所以称之为常量，因为它可一看作是一个没有命名的字符串且为常量，存放在静态数据区。
这里说的静态数据区，是相对于堆、栈等动态数据区而言的。
静态数据区存放的是全局变量和静态变量，从这一点上来说，字符串常量又可以称之为一个无名的静态变量，
因为"Hello world!"这个字符串在函数 s1和s2 中都引用了，但在内存中却只有一份拷贝，这与静态变量性质相当神似。
char *c]]></description><category></category></item><item><title><![CDATA[const]]></title><link>https://blog.youkuaiyun.com/ss00_2012/article/details/22873507</link><guid>https://blog.youkuaiyun.com/ss00_2012/article/details/22873507</guid><author>ss00_2012</author><pubDate>Thu, 03 Apr 2014 15:20:42 +0800</pubDate><description><![CDATA[C++中的const关键字的用法非常灵活，而使用const将大大改善程序的健壮性 ，所以我们要尽可能的多使用const。
一、const使用情况：
1、const常量
  如const int max = 100; 
优点：const常量有数据类型，而宏常量没有数据类型。编译器可以对前者进行类型安全检查，而对后者只进行字符替换，没有类型安全检查，并且在字符替换时可能会产生意料不到的错误（边]]></description><category></category></item><item><title><![CDATA[引用]]></title><link>https://blog.youkuaiyun.com/ss00_2012/article/details/22872931</link><guid>https://blog.youkuaiyun.com/ss00_2012/article/details/22872931</guid><author>ss00_2012</author><pubDate>Thu, 03 Apr 2014 15:14:33 +0800</pubDate><description><![CDATA[引用是给变量取一个别名，所以引用传递会直接进行变量本身的传递。它的最大好处是可以把别处对变量的改变保留下来，第二好处是它提高了性能：如果函数的返回值是一个引用，那么，如上文所说，它会节约一组构造、赋值和析构过程。但是，函数返回引用往往会带来一些意想不到的错误：比如返回临时变量的引用。
//一个错误的函数
int &Max(int i, int j)
{
　　return i>j ? i :]]></description><category></category></item></channel></rss>