- 博客(43)
- 资源 (3)
- 收藏
- 关注
原创 rtp协议关键点
<br />RTP协议,Real-time transport protocol. 从名字可以看出是实时传输协议。那么他是怎么做到实时性的呢?根据我对spec的研究,他的实时性实现是通过RTCP来实现的。<br /> <br />RTCP通过接收报告(receipt report)对流量进行检测,从而进行拥塞控制。 并且可以根据网络的负载能力调整传输包的速率,比如正常情况下我5秒钟传输一个RTCP包。如果网络比较繁忙的时候,我可以做到10秒,15秒,25秒来传输一个RTCP包,把更多的带宽分配给RTP数据包
2011-05-18 12:55:00
1176
转载 ffmpeg使用x264编码的配置+ ffmpeg与 x264编码器参数完整对照表
<br />转载自:扶凯[http://www.php-oa.com] <br />本文链接: http://www.php-oa.com/2009/03/09/ffmpeg_x264.html<br />转帖:http://rhingheart.blogspot.com/2009/03/ffmpegx264-ffmpeg-x264.html<br />注:讲实话,有关这些使用的文章真的不错,我们在这谢谢"SV的边界"本来我自己还想总结一下的。看来没有必要了,呵呵,在次多谢"SV的边界".下面原文<br /
2010-07-13 11:31:00
9550
原创 向ffmpeg中添加librtmp库支持
1. 下载ffmpeg-checkout-2010-04-14, rtmpdump-2.2c; openssl-0.9.8k,2. 编译过程注意看rtmpdump中的README文件,里边包括了如何编译openssl的过程,也可以在我的博客中寻中3. 修改ffmpeg的configure文件: 第2621行: enabled librtmp && require l
2010-04-20 17:18:00
9280
1
原创 openssl 0.9.8k在mingw中的编译
下载地址:http://www.openssl.org/source/1 ./Configure mingw --prefix=`pwd`/win32libs -DL_ENDIAN -DOPENSSL_NO_HW2 Replace gcc, cc, ... by mingw32-* variants in Makefile and crypto/Makefile3 make && m
2010-04-20 17:02:00
1418
原创 视频、音频打时间戳的方法
1. 视频时间戳 pts = inc++ *(1000/fps); 其中inc是一个静态的,初始值为0,每次打完时间戳inc加1. 在ffmpeg,中的代码为 pkt.pts= m_nVideoTimeStamp++ * (m_VCtx->time_base.num * 1000 / m_VCtx->time_base.den); 2. 音频时间戳
2010-04-17 17:22:00
12095
6
原创 ffmpeg应用x264编码, 编码参数解析
应用X264进行H.264编码,如果编码不能成功,大部分情况是编码参数选择不正确 请看图片:这里边的编码参数大家应该看到了吧,那么如果我们用ffmpeg怎么设置这些编码参数呢?代码为证: m_VCtx->codec_type = CODEC_TYPE_VIDEO; m_VCtx->bit_rate = bitrate * 1000; m_VCtx->width = wi
2010-04-17 17:09:00
6442
1
原创 windows XP挂载NFS
在项目中遇到这样的问题:linux下开启了NFS服务,那么在windows下能不能挂到呢?我们知道windows在默认情况下是不支持NFS文件格式的,那么如何做呢? 我找到了 Microsoft Windows Services for UNIX 3.5, 大家可不要被此软件前边的Microsoft吓到了,以为这是微软出的,要收版权费的。大家可以放心使用:一下是此软件的版权声明中的节选
2010-03-24 15:27:00
19195
2
转载 H.264 RTP payload 格式
摘自:http://www.cppblog.com/czanyou/archive/2008/11/26/67940.htmlH.264 RTP payload 格式 H.264 视频 RTP 负载格式1. 网络抽象层单元类型 (NALU)NALU 头由一个字节组成, 它的语法如下: +---------------+
2010-03-22 09:49:00
1091
原创 libpcap
libpcap丢包的严重性,在默认情况下,其丢包率可以达到97%以上。这个恐怖的数值使我们感到惊讶。经过昨天对问题的分析,把解决问题的办法定位到了改变内核上。以改变libpcap的底层实现。Libpcap在底层也是通过socket来实现的。解决问题的办法是往内核中添加一种名为PF_RING的socket,这种socket在底层实现了DMA的读取方式,从而大大提高了网卡的效率。因为造成lib
2010-03-09 10:59:00
2358
原创 如何修改分辨率
在WIN SDK中修改分辨率需要用到如下2个函数WTF 06/04/04: Fixed -->9/29/2004: Changed type from function to DLLExport --><!-- PRE.clsCode { font-size:110%; } PRE.clsSyntax { font-size:100%; } TD DIV.clsBe
2010-02-08 14:52:00
1182
原创 在开发过程中界面上遇到的小问题
<!-- @page { margin: 2cm } TD P { margin-bottom: 0cm } P { margin-bottom: 0.21cm } -->1. 界面上的某个控件获得了焦点的话,如果这时候按下了Enter键,界面就会消失。 解决方案:重载PreTranlateMessage虚函数,屏蔽掉Ent
2010-02-08 14:41:00
635
原创 Wininet API总结
HTTP请求流程:a, 首先我们需要调用InternetOpen函数,获取一个session得句柄,句柄的类型为HINTERNET,注意程序执行完毕后需要调用InternetCloseHandle函数释放资源 b, 获取到session得句柄后,接着就要调用InternetConnect c, 然后根据获取到得connect的句柄,调用HttpOpenRequest
2009-11-14 16:48:00
710
原创 ATL写ActiveX的注意事项
一下都是经验之谈,仅供参考:1. OnCreate函数执行不到:在构造函数中添加 m_bWindowOnly = TRUE; 这个是有窗口的ActiveX必须有的、2. 添加属性无法执行:看看有没有实现永久化。实现永久化的主题网络上有很多。GOOGLE吧。3. 用html写测试容器,如果用了这样的写法给控件的属性赋值的话。有一个奇怪的问题。在本地执行html的时候控件可以正确加载,而
2009-11-14 16:37:00
759
转载 FFMpeg框架代码阅读
简介FFmpeg是一个集录制、转换、音/视频编码解码功能为一体的完整的开源解决方案。FFmpeg的开发是基于Linux操作系统,但是可以在大多数操作系统中编译和使用。FFmpeg支持MPEG、DivX、MPEG4、AC3、DV、FLV等40多种编码,AVI、MPEG、OGG、Matroska、
2009-10-30 10:35:00
627
原创 GTK+位图按钮的封装
由于gtk+是采用C语言写的,个人认为做界面还是用C++比较方便,可能是因为我用MFC用的多的原因吧。那么如果用GTK+开发的话,我们做一个位图按钮,怎么做呢?大家都知道在MFC下,需要自己重写一个继承自CButton得按钮类,在DrawItem虚函数中进行按钮的绘制。网上有很多人用C语言的方式实现了位图按钮,如果一个界面上按钮很多的话,代码量可想而知。好在C++的类在代码重用方面比较好。废
2009-10-29 11:54:00
1521
原创 VC2005使用GTK+(4)
1. 用glade-3制作的界面中,响应事件的时候,在运行时出现无法找到的问题: libglade-WARNING **: could not find signal handler*************查找网上的解决方案,在linux下gcc编译选项的问题,解决方案如下: 1, 在信号回调函数的前边加上G_MODULE_EXPORT 2, 在gcc编译选项中
2009-10-23 15:54:00
763
原创 VC2005使用GTK+(5)
1. GTK+界面中显示中文的问题 开始怀疑是字符集的问题。因为在gtk中默认是使用的UTF-8字符集。因此只要字符串转换成UTF-8就可以显示了吧。 于是尝试转换,使用了3中方法: 1,使用windows的API WideCharToMultiBytechar szName[100];int dwMinSize = WideCharToMultiBy
2009-10-23 15:54:00
1319
原创 VC2005使用GTK+(3)
1. 如何使用gtk+在窗体上绘图 如果要在窗体上绘图,在MFC中时使用DC来进行操作的。那么在gtk+中是怎么做的呢? 为了捕获构件的时间,我们需要使用事件盒构件。对于绘图程序,我们想知道什么时候鼠标键按下和什么时候鼠标移动,因此我们要用GDK_POINTER_MOTION_MASK和GDK_BUTTON_PRESS_MASK。我们也想知道什么时候窗口
2009-10-23 15:52:00
773
原创 VC2005使用GTK+(2)
一 些 GTK 构件没有与之相关联的 X 窗口,所以它们只在其父构件上显示其外观。由于这个原因,它们不能接收任何事件,并且,如果它们尺寸设置不正确,它们也不会自动剪裁(译者注:裁剪就是使 构件只显示一部分),这样可能会把界面弄得乱糟糟的。如果要想构件接收事件,可以使用事件盒(EventBox)。初 一看,事件盒构件好像完全没有什么用。它在屏幕上什么也不画,并且对事件也不
2009-10-23 15:51:00
865
原创 VC2005使用GTK+(1)
1. VC下配置gtk+ 首先下载了Gtk+ 2.12.9 Runtime Environment Revision 2 和 Gtk+ 2.12.9 Development Environment Revision 2 可以参看http://gladewin32.sourceforge.net/,这是别人已经编译好的GTK,一个是runtime,主要是 .dll,另一
2009-10-23 15:25:00
1165
原创 如何使用gtk+在窗体上绘图
<!-- @page { margin: 2cm } TD P { margin-bottom: 0cm } P { margin-bottom: 0.21cm } -->1. 如何使用gtk+在窗体上绘图 如果要在窗体上绘图,在MFC中时使用DC来进行操作的。那么在gtk+中是怎么做的呢? 为了捕获构件的时间,我们需要使用事件盒
2009-10-21 14:32:00
6138
1
原创 实现视频长时间播放而显示器不会关闭或者屏保出现的简单方法
在项目中遇到了一个问题,用directdraw做的播放器在系统长时间运行后,由于系统设定了省电模式等电源选项的问题,长时间运行后播放器会出现黑屏现象。 解决方案:摘自MSDNSetThreadExecutionState The SetThreadExecutionState function enables applications to inform the s
2009-09-27 16:46:00
2784
转载 H.264简单总结
(quan整理)一、视频信息和信号的特点<!--google_ad_client = "pub-2299987709779770";google_ad_width = 300;google_ad_height = 250;google_ad_format = "300x250_as";google_ad_type = "text_image";
2009-08-27 17:34:00
689
转载 H.264视频编码传输的QoS特性分析(一)
<!-- document.body.oncopy = function() { if (window.clipboardData) { setTimeout(function() { var text = clipboardData.getData("
2009-08-27 17:34:00
958
转载 H.264视频编码传输的QoS特性分析(二)
三、H.264的视频编码层的错误恢复[1,4]在H.261、H.263、MPEG-1、MPEG-2、MPEG-4中,许多错误恢复工具已经得到了很好的应用:图像分割的不同形式(片、块组),I模式宏块,片和图像的内插,参考图像选择(带有和不带反馈、图像级别、GOB/SLICE或MB级别),数据分割等。H.264标准继承了以前视频编码标准中某些优秀的错误恢复工具,同时也改进和创新了多种错误恢
2009-08-27 17:33:00
699
转载 基于IP的H.264关键技术
一、 引言 H.264是ITU-T最新的视频编码标准,被称作ISO/IEC14496-10或MPEG-4AVC,是由运动图像专家组(MPEG)和ITU的视频编码专家组共同开发的新产品。H.264分两层结构,包括视频编码层和网络适配层。视频编码层处理的是块、宏块和片的数据,并尽量做到与网络层独立,这是视频编码的核心,其中包含许多实现错误恢复的工具;网络适配层处理的是片结构以上
2009-08-27 17:32:00
560
转载 H.264视频编码传输的QoS特性分析(三)
<!-- document.body.oncopy = function() { if (window.clipboardData) { setTimeout(function() { var text = clipboardData.getData("
2009-08-27 17:32:00
692
转载 H.264码流结构
a、对照:H.263的码流结构H.263定义的码流结构是分级结构,共四层。自上而下分别为:图像层(picture layer)、块组层(GOB layer)、宏块层(macroblock layer)和块层(block layer)。 PSCTRPTYPEPQUANTCPMPSBITRB
2009-08-27 17:30:00
704
转载 H.264的技术优势及其在H.323系统中的应用
一、引言 近年来,随着我国通信网络基础设施的快速建设,视讯业务由于可以为处于多点的与会者提供音视频等多种信息,节省大量费用,提高工作效率,因而发展迅速,并有望成为NGN的主要业务。视讯会议系统从产生至今,发展了多种适于各类通信网络的系统,目前传输多媒体信息的主要有H.323、H.324和H.320等系统。IP技术的开放性特点使得它非常适合承载多种业务,随着IP的安全和QoS等问题
2009-08-27 17:29:00
2039
转载 如何解决http封包中gzip编码的html
gzip编码,最早由Jean-loup Gailly和Mark Adler创建,用于UNIX系统的文件压缩。我们在Linux中经常会用到后缀为.gz的文件,它们就是GZIP格式的。现今已经成为Internet 上使用非常普遍的一种数据压缩格式,或者说一种文件格式。HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术。大流量的WEB站点常常使用GZIP压缩技术来让用户感受更快的速度。(
2009-07-16 15:09:00
4791
4
转载 Cracking WEP and WPA Wireless Networks(破解WEP&WPA)
Written By: BryanShout out to: Jeff :: (www.lucidinteractive.ca) for using OSXs Airport to try and generate traffic on our first crackAlso would like to thank Alkaloid Networks for supp
2009-06-26 13:20:00
3420
转载 vim常用指令使用指南
http://www.phpchina.com/html/66/1366-8048.html,c4P3PR/j!D[X4I$^0``(TAB上边的点):回到光标跳转前的位置。GvJtH:g&TFM.~0dd:删除一行。%e$t;os`dOL~05dd:删除光标处以下的五行。"o/O3c%dV0按V键进入可视模式,选择要拷贝的内容,
2009-06-23 10:24:00
668
原创 socket编程之设备绑定
socket编程中,对于其步骤可能大家都耳熟能详了,但是我们在特定的环境下如何写出特定的SOCKET呢?下边就介绍一种绑定设备的socket。一般介绍socket的书籍中介绍socket的绑定都是绑定其ip地址。其对应的结构体是sockaddr_in。那么大家是否了解其它的结构体呢? sockaddr,sockaddr_ll。可能大家都知道前者,因为在绑定的时候调用bind函数都
2009-06-23 09:33:00
3944
2
转载 PF_PACKET 设备层编程接口
http://bbs.openlab.net.cn/forums/threads/167.aspx定义: #include "/usr/include/sys/socket.h" #include "/usr/includ/sys/if_packet.h" packet_socket = socket(PF_PACKET, socket_
2009-06-20 16:48:00
5360
1
转载 Fedora下集成PF_RING的详细过程(配图)
http://www.cnblogs.com/bits/archive/2009/03/25/Linux-PF_RING.html在千兆网环境下,tcpdump丢包率相当高。网上搜了很多制标不治本的方法,比如增大缓冲区,然而缓冲区再大也有塞满的时候,只能从驱动和硬件下手。好在有“零拷贝(ZeroCopy)”这个东西(说白了也就是通过DMA等方式,省掉从NPF驱动到用户程序内存空间的一次
2009-06-16 19:11:00
1517
转载 LibPcap丢包问题
http://yuzhu428.spaces.live.com/blog/cns!C75B8C7D675DDD53!207.entry这段时间查看了下LibPcap丢包率高的问题。网上也有不少朋友提及,但自己总怀疑自己的问题与他人不一样,所以钻进去看了看。环境描述:Snapgear-3.5.0 / kernel: linux-2.6.x / uClibc / Mod
2009-06-15 15:03:00
2586
2
原创 获取当前时间---使用标准C
大家可能在开发过程中经常会遇到获取当前系统时间的问题。那么除了MFC中的CTime类外,有没有其他的方法呢? 答案是肯定的。很多C/C++的初学者在学习这门语言的时候,经常是只注意其语法,而其库函数却知道的很少。有的知道一些,但是却很少应用。笔者在这里建议大家,经常去看看标准C库,标准C++库。如果能在开发过程中经常使用上这些库函数,将会使我们的开发过程变得简单不少。那么标准C中如何获取本
2009-06-11 14:26:00
1638
2
原创 总结: 名字空间
在做项目的时候,遇到了一个这样的问题,下边举了一个小例子来模拟一下: /** test.h*/#include using namespace std;class test{public: test(string str); ~test();private: string m_str;}/** test.cp
2009-06-09 16:26:00
763
转载 TCP数据包重组实现分析
转自:http://blog.sina.com.cn/s/blog_48eef8410100b1gw.html TCP重组数据包分析参照TCP/IP详解第二卷24~29章,详细论述了TCP协议的实现,大概总结一下TCP如何向应用层保证数据包的正确性、可靠性,即TCP如何实现对数据报文的重组。首先要设计两个报文队列,一个存放正常
2009-06-06 09:12:00
4864
转载 iostream、printf/wprintf和中文输出
使用C++标准库的iostream,可以方便地将控制台、文件、字符串以及其它可扩充的外部表示作为流来处理,但要处理中文,却会碰到很多问题。本人原来没怎么用过这个iostream,这几天尝试用这个写点东西,一会儿不能输出中文,一会儿不支持中文文件名的,搞得头大。网上搜了搜,没有发现适用于所有情况的解决方案。不过后来自己经过多次测试,基本解决了这些问题,现在写成文字作为一个总结,也供碰到同样问题的朋友
2009-06-03 08:42:00
951
Visual.Assist.X.V10.6.1862.0 破解补丁
2012-01-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人