- 博客(12)
- 资源 (30)
- 收藏
- 关注
翻译 高性能、高并发、高扩展性和可读性的网络服务器架构:StateThreads
state-threads是c实现的coroutine网络库,对于IO占多数的程序,且有复杂的状态变换,有很大的简化作用。和python的eventlet类似。
2012-11-30 11:25:57 27292 23
翻译 Internet Application (IA) architecture:网络服务器架构
以下节选自:http://state-threads.sourceforge.net/ ,描述了常见网络架构,翻译在后面。2. Existing Architectures There are a few different architectures that are commonly used by IAs. These include the Multi-Process, Mu
2012-11-30 10:09:00 214
翻译 网络服务器模型(Internet Application Architectures)
异步非阻塞socket,在读写client时可能会EAGAIN,读不全或者写不完,这时候就需要保存状态,下次能读或能写时候继续从这个状态开始工作。但较为复杂的逻辑会导致状态很多,基本上每个包成为一个状态,譬如RTMP握手部分:1. Client send C0C12. Server send S0S1S23. Client send C2若用状态模型,必须用两个状态:C0C1和
2012-11-28 16:28:55 237
原创 64位整型和32位整型,表示微妙级别的时间
若使用64位整型和32位整型,能表示微妙级别的时间多长呢?#define __STDC_FORMAT_MACROS#include #include #include #include #include using namespace std;int main(int argc, char** argv){ if(true){ u_int64_t
2012-11-18 10:49:37 4407
原创 Mp4格式分析:Adobe的sample1_1500kbps.f4v文件格式之三:mp4 to rtmp packets
上篇文章讲了解析mp4的帧序列,这篇文章讲读取帧的时间戳和类型,以及打包成rtmp packet。RTMP/FLV结构mp4的mdat的video/audio数据,需要加上5个字节的头,打上时间戳后才能以rtmp包发送出去,rtmp包和flv的格式是一样的。所以flv的包可以直接读取tag的data后发送,而mp4的数据需要在前面加5个字节的头后才能作为data发送出去。下图是fl
2012-11-18 09:01:03 3556
原创 Mp4格式分析:Adobe的sample1_1500kbps.f4v文件格式之二:moov分析
MOOV的stbl(SampleTable)包含了关于Sample(Audio/Video)如何组织的。每个audio/video track box都有个stbl,描述了chunk和sample的对应关系。stbl的结构stbl的结构如下:Mp4把mdat(存放媒体数据的box)分为Chunk,每个Chunk包含Sample,Sample即为视频的帧或音频数据。m
2012-11-16 18:50:34 3462
原创 Mp4格式分析:Adobe的sample1_1500kbps.f4v文件格式之一,文件结构
F4v是MP4的子集,由adobe定义。网上资料大多关于mp4的box,对于整体结构,特别是chunk-sample(video/audio)的关系说得很模糊。分几篇文章来说明mp4文件结构。第一篇关于mp4的整体结构,mp4的box结构请参考其他文章。mp4典型的结构如下图,由三个box组成:Adobe的sample文件,sample1_1500kbps.f4v的结构
2012-11-16 17:55:11 3966
原创 自我介绍
自我介绍:2007年毕业于中南大学信息学院。2006年出版《ASP.net程序员成长攻略》。立志成为CTO,大型复杂系统软件方向。2010年设计和实现基于插件的浪弯流媒体flash播放器。2011年基于ffmpeg的python-gearman转码集群。2012年负责组建蓝汛高负载高性能服务器团队。2013.1公司年会评为蓝汛2012年度优秀员工最佳新人奖。2013
2012-11-15 15:05:07 2127 3
转载 开源日志:关于GO语言的资料汇总
Rob Pike谈Google Go:并发,Type System,内存管理和GC概要 Rob Pike谈Google Go,内容涉及:无类OOP编程、Go的接口、采用Goroutines和Channels的并发特性,以及Go中帮助缩短GC间歇的一些特性。 个人简介 Rob Pike是Google的首席工程师。最近,他参与开发了Go语言。在此之前,Rob在贝尔实
2012-11-08 09:13:04 3139
翻译 开源日志:Linus Torvalds’s Lessons on Software Development Management
网上找到了linus的访谈,但是翻译过来的明显是机器翻译,所以我尽力而为的翻译。Linus Torvalds’s Lessons on Software Development Management If anyone knows the joys and sorrows of managing software development projects, it would be
2012-11-06 17:50:08 1529
原创 开源日志:关于IDE/源代码编辑
做c/c++开发,windows下的IDE是Microsoft visual studio;linux下也有很多,编译和调试环境主要是gcc/g++/gdb,基于它的IDE有很多。我其实是在windows下写源代码,linux开启samba共享,直接用beyond compare同步到共享目录,然后用make/gdb调试。Source Insightsource insight用得好的
2012-11-03 10:15:25 2160
原创 开源软件日志
于老师是个了不起的CTO,他给了我很多建议,有一条进入了我的心中:”现在这个阶段,代码写得够多了,就要尽量少写代码,多看多想“。我也不知道看什么,看看开源软件吧,现在开源的世界很大,看看有哪些优秀的开源软件吧,对比一下,写个日志。每周末找时间看看。
2012-11-03 09:45:30 1259
Pattern.Oriented.Software.Architecture.Volume.2
2012-11-29
mp4 file format引用文档
2012-11-04
The.Cpp.Programming.Language.Special.Edition
2012-10-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人