2012年7月17日
摘要: 一、视频编码原理 视频图像数据有极强的相关性,也就是说有大量的冗余信息。其中冗余信息可分为空域冗余信息和时域冗余信息。压缩技术就是将数据中的冗余信息去掉(去除数据之间的相关性),压缩技术包含帧内图像数据压缩技术、帧间图像数据压缩技术和熵编码压缩技术。去时域冗余信息使用帧间编码技术可去除时域冗余信息,它包括以下三部分:—— 运动补偿:运动补偿是通过先前的局部图像来预测、补偿当前的局部图像,它是减少帧序列冗余信息的有效方法。—— 运动表示不同区域的图像需要使用不同的运动矢量来描述运动信息。运动矢量通过熵编码进行压缩。—— 运动估计运动估计是从视频序列中抽取运动信息的一整套技术。注:通用的压缩标准都 阅读全文
posted @ 2012-07-17 21:49 Mike_Zhang 阅读(6203) 评论(0) 推荐(0)
  2012年7月6日
摘要: 这里介绍两种产生sdp文件的方法,仅供参考,欢迎补充。1、环境操作系统 :CentOS6.2_64内核版本 :2.6.32-220.23.1.el6.x86_64Darwin Streaming Server 版本:6.0.3mpeg4ip版本:1.6.1ffmpeg版本:0.6.52、用mpeg4ip产生sdp文件这个简单,安装好mpeg4ip后,直接运行mp4live就可以了,具体如下图:3、用ffmpeg 产生sdp文件命令如下:ffmpeg -f video4linux2 -s 176*144 -r 10 -i /dev/video0 -vcodec h263 -f rtp rtp:/ 阅读全文
posted @ 2012-07-06 23:10 Mike_Zhang 阅读(2551) 评论(0) 推荐(1)
摘要: 1、环境系统:CentOS6.2_64Darwin版本:6.0.32、准备工作2.1 添加qtss组:groupadd --system qtss2.2 添加qtss用户到qtss组:adduser qtsspasswd qtssuseradd -g qtss qtss2.3 安装软件yum ins... 阅读全文
posted @ 2012-07-06 20:15 Mike_Zhang 阅读(2482) 评论(17) 推荐(0)
  2012年6月29日
摘要: 一、函数介绍1.1 函数原型:#include <stdio.h>FILE *popen(const char *command,const char *open_mode);1.2 说明 popen函数允许一个程序将另一个程序作为新进程启动,并可以传递数据给它或者通过它接收数据。command字符串是要运行的程序名和相应参数(比如:ls或ls -l),openmode必须是 r 或w。如果是r,被调用程序的输出可以被调用它的程序使用;如果是w,调用程序就可以用fwrite向被调用程序发送数据作为它在标准输入流上的输入。二、测试程序准备这里准备两个很简单的程序供下面测试使用。2.1 阅读全文
posted @ 2012-06-29 23:05 Mike_Zhang 阅读(3732) 评论(0) 推荐(0)
摘要: 一、环境1、操作系统版本CentOS 6.2 64位uname -a的输出:Linux localhost.localdomain 2.6.32-220.17.1.el6.x86_64 #1 SMP Wed May 16 00:01:37 BST 2012 x86_64 x86_64 x86_64 GNU/Linux2、mpeg4ip版本版本:1.6.1下载链接:http://people.freebsd.org/~ahze/distfiles/mpeg4ip-1.6.1.tar.gz二、编译1、编译mpeg4ip需要的库首先安装libtool库,命令如下:yum install libtoo 阅读全文
posted @ 2012-06-29 00:05 Mike_Zhang 阅读(3757) 评论(0) 推荐(0)
  2012年6月22日
摘要: CentOS自带的yum源不够丰富,为了使用方便,我经常借用第三方的yum源。每次都要重新找,嫌麻烦,这次总结下,也方便以后使用。我现在用的是64位的系统 ,只写64位的,以后遇到32位的了再加上…… 1、安装rpmforge rpm包的url: http://pkgs.repoforge.org/ 阅读全文
posted @ 2012-06-22 00:03 Mike_Zhang 阅读(1720) 评论(0) 推荐(0)
  2012年6月18日
摘要: Asterisk的AMI接口已经很丰富了,如果需要扩展,可以参考本文。一、扩展Asterisk的AMI接口涉及文件:main/manager.c 1、函数注册添加 myOriginate接口在函数int __init_manager(int reload)中添加如下代码:ast_manager_register_xml("myOriginate", EVENT_FLAG_ORIGINATE,action_myOriginate); // Add by Mike2、功能实现:View Code //Add by Mikestatic int action_myOriginat 阅读全文
posted @ 2012-06-18 23:34 Mike_Zhang 阅读(2551) 评论(0) 推荐(0)
摘要: 一、复制进程映像1、fork函数介绍 此系统调用主要复制当前进程,在进程表中创建一个新的表项,新表项中的许多属性与当前进程是相同的。新进程几乎与原进程一模一样,执行的代码也完全相同,但新进程有自己的数据空间、环境和文件描述符。2、典型使用fork的代码片段:pid_t pid;pid = fork();switch(pid){case -1: // error occur perror("fork failed"); exit(1);case 0: // child break;default: // parent break;}3、示例示例... 阅读全文
posted @ 2012-06-18 22:57 Mike_Zhang 阅读(2387) 评论(0) 推荐(0)
  2012年6月13日
摘要: 定义:一个类有且仅有一个实例,并且提供一个访问它的全局访问点。要点:1、类只能有一个实例;2、必须自行创建此实例;3、必须自行向整个系统提供此实例。实现一:单例模式结构代码singleton.h:View Code #ifndef _SINGLETON_H_#define _SINGLETON_H_class Singleton{public: static Singleton* GetInstance();protected: Singleton();private: static Singleton *_instance;};#endifsingleton.cpp:Vie... 阅读全文
posted @ 2012-06-13 22:47 Mike_Zhang 阅读(983) 评论(4) 推荐(0)
  2012年6月8日
摘要: 最近在看Asterisk的源代码,收获不小,决定记录下来学习Asterisk过程中的点滴,分享给大家,也方便我以后查阅……今天让我感到意外的是Asterisk中对结构体初始化(或者说成是赋值)的使用。比如定义结构体如下:typedef struct ST { int a; int b; pFun fun;}ST;一般的初始化是这样的:ST t2; t2.a=4; t2.b=5; t2.fun=test2;而我在源码中看到的是这样的:ST t1 = {.a=1,.b=2,.fun=test1};感觉好强大。。。。。。这里是我仿照着写的完整代码: 1 #include <stdio.h> 阅读全文
posted @ 2012-06-08 00:22 Mike_Zhang 阅读(665) 评论(2) 推荐(0)
  2012年6月7日
摘要: 1、添加addons_test目录编写文件app_testApp.c和 app_testApp.exports,这里我只叙述大概过程,具体参考我的博文(http://www.cnblogs.com/MikeZhang/archive/2012/06/05/asterisk187CLIAddOns.html )2、编写addons_test目录里面的Makefile文件内容如下:-include$(ASTTOPDIR)/menuselect.makeopts $(ASTTOPDIR)/menuselect.makedepsMENUSELECT_CATEGORY=ADDONS_TESTMENUSE 阅读全文
posted @ 2012-06-07 23:34 Mike_Zhang 阅读(701) 评论(0) 推荐(0)
摘要: 我前面有一篇文章介绍了怎么扩展Asterisk 1.8.7的CLI接口(http://www.cnblogs.com/MikeZhang/archive/2012/06/05/asterisk187CLIAddOns.html ),这里说说添加Dialplan Applications的方法。具体如下:一、准备工作1、进入之前建立的addons_test目录,建立app_testApp20120607.c和app_testApp20120607.exports文件;2、仿照app_testApp.c文件进行app_testApp20120607.c的编码,仿照app_testApp2.expo 阅读全文
posted @ 2012-06-07 20:28 Mike_Zhang 阅读(1416) 评论(0) 推荐(1)
  2012年6月5日
摘要: 我之前有一篇文章(http://www.cnblogs.com/MikeZhang/archive/2012/04/14/asteriskCLIAppTest20120414.html)介绍过如何扩展asterisk的cli接口,本篇是它的继续,总结下,也方便我以后查阅。 大部分情况下,配置asterisk的拨号方案,用CLI、AMI之类的就可以满足我们的需求。可有些情况下涉及到业务的东东,需要数据库的参与(比如用sqlserve存储asterisk的录音记录等等),拨号方案那种静态的做法完全不用考虑,而原始的CLI、AMI已经不能满足需求。这时就需要考虑从源码入手,扩展asterisk... 阅读全文
posted @ 2012-06-05 23:56 Mike_Zhang 阅读(2586) 评论(0) 推荐(2)
  2012年6月4日
摘要: 安装git Linux下安装 CentOS为例: Windwos下安装 下载地址: https://git-scm.com/downloads 配置git 这里以配置全局为例: 配置user信息 配置http代理 取消配置命令: 使用git 初始化 添加本地所有文件 递交 查看日志 检验仓库 例如: 阅读全文
posted @ 2012-06-04 17:48 Mike_Zhang 阅读(2195) 评论(0) 推荐(0)
  2012年5月31日
摘要: 这段时间用到了linux下的ftp,上网搜搜问题解决了。可网上资料有点乱,决定把自己的配置过程记录下来,也方便我以后查看。一、安装并测试可用性1、安装命令yum install vsftpd2、配置防火墙3、配置服务配置开机启动启动服务:/etc/init.d/vsftpd start4、访问测试添加文件并测试:路径: /var/ftp/echo "Just a test" > /var/ftp/test.txt二、配置本地用户访问,并赋予写权限1、配置vsftpd.conf文件vi vsftpd.conf禁止匿名用户访问:anonymous_enable=NO 允许 阅读全文
posted @ 2012-05-31 15:51 Mike_Zhang 阅读(4498) 评论(3) 推荐(0)