自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Louis_815的博客

奋斗就会有收获

  • 博客(12)
  • 资源 (4)
  • 收藏
  • 关注

转载 NAT穿透原理

nat穿透原理 一直以来,说起NAT穿透,很多人都会被告知使用UDP打孔这个技术,基本上没有人会告诉你如何使用TCP协议去穿透(甚至有的人会直接告诉你TCP协议是无法实现穿透的)。但是,众所周知的是,UDP是一个无连接的数据报协议,使用它就必须自己维护收发数据包的完整性,这常常会大大增加程序的复杂度,而且一些程序由于某些原因,必须使用TCP协议,这样就常常令一些开发TCP网络程序的

2017-03-23 09:54:23 552

转载 音视频聊天开发: 7 Android下ffmpeg+x264编译

Android下视频的采集和播放直接调用sdk就行了,只是编解码麻烦一些,这里采用NDK编译ffmpeg然后通过JNI接口调用。 Android开发是麻烦了一点,不过手机倒是卖的很多,好在底层还要用的是Linux,  可以使用c/c++开源项目,比如 ffmpeg, vlc等拿上来用。否则直接就是WP7下场。再说android编译ffmpeg,随便一搜有很多文章,不过转载者不知道自己测

2017-03-21 14:29:50 703

转载 音视频聊天开发: 6 简单的stun server

说是stun server,其实只是用了一下名字,和开源的stun server不是一回事,这里还加了一些其他功能。功能: 1 用户通过客户端登录上来,返回它的公网IP和端口。2 为了开发方便,同时记录下客户端的公网IP端口,以及它提交上来的本地IP和端口,以供查询。(这部分功能正常来讲应该单独做成一个服务,比如IM Server)3 用户查询其他用户的公网IP和内网IP(用户拿到

2017-03-21 14:29:12 1874

转载 音视频聊天开发: 5 UDP发送视频数据的分包和重组

这里主要用UDP来发送视频,当发送的数据大于1500时分包发送,保证每包小于1500.发送好办,分割后循环发就可以了,关键是接收时的处理。先做一下处理的方法 :发送时每包上面加上标识,比如RTP的做法是加时间戳,SSRC,媒体类型还有结束标识。简单参考一下,我们也加上一些标识(直接拿RTP头也可以, 不过我们的目标是更简洁一些)。另外,我们的目的和RTP稍有不同,UDP库当时设计是传输

2017-03-21 14:28:46 1380

转载 音视频聊天开发: 4 UDP封装后的调用

上文提到的UDPSocket,只是一个简单的socket封装,被动地调用。本文仿照MFC的CAsyncSocket方式做一个包装调用,不过事件响应采用select,不用MFC的窗口消息。      简单接口如下:typedef void (*udp_data_cb)(int sockid, char *data, int len, int ip, int port, int times

2017-03-21 14:28:14 441

转载 音视频聊天开发: 3 UDP的简单封装

视频的采集显示以及编码解码都实现了,下一步就要考虑把数据发出去,由其他客户端播放(设计是先做网络传输,一切都正常后再做音频,虽然叫音视频聊天,其实网络才是最重要的部分)。这里使用UDP进行发送和接收。       考虑到音视频聊天,需要支持iOS,Android等多平台,所以尽可能采用公用方法,下面是简单的一个封装:///////////////////////UDPSock.h:

2017-03-21 14:27:39 1099

转载 音视频聊天开发: 2 视频编解码并显示

前面说到了视频采集和显示,显示使用的是GDI,小画面没问题,如果画面放大变失真比较严重。如果要显示的好的话,可以用dshow内置的预览功能。或者使用d3d,opengl显示。这是以后的工作,当前还是继续实现主要功能。       本文主要以实现视频的编码和解码为主。        参考ffmpeg源码中所带的例子,见:doc\examples\decoding_encoding.c。原

2017-03-21 14:27:03 689

转载 音视频聊天开发: 1 视频采集

一整套音视频聊天项目,一般包括:视频采集-->编码-->传输-->解码-->播放声音采集-->编码-->传输-->解码-->播放传输部分,还分P2P和中转。因为还要加一些指令,实时消息,相当于一个完整的IM再带上语音视频功能。最近整理一些以前做的资料,发现整理成一个完整的项目更有效,否则一堆一堆零散代码沉积下去就成泥沙了。这里以最简单的实现方式,完成一个音视

2017-03-21 14:24:20 695

转载 关于Http协议的get方法和post方法的区别和用法

(一)get方法和post方法简介   查看了MSDN,并且实际写了一番程序,才明白get方法和post方法的不同。其实二者实现的功能相同,都是客户端提交数据库给服务器端,只是实现的机制不同而已。get方法实际上就是通过网页的URL地址实现数据的传送,而服务器端实现从URL地址中解析数据;而post方法则是通过表单的方式提交,数据采取加密方式传送,服务器接到请求后解析数据。从安全角度上看,

2017-03-16 11:52:10 1042

转载 Windows消息机制详解

文章转载自:http://www.cppblog.com/suiaiguo/archive/2009/07/18/90412.html,感谢原作者。消息是指什么?     消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉。一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向 Windows发出一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改

2017-03-14 10:36:23 339

转载 GetDesktopWindow之MFC窗口全屏显示

void CFullScreenDlg::FullScreenView(void){RECT rectDesktop;WINDOWPLACEMENT wpNew;if (!IsFullScreen()){// We'll need these to restore the original state.GetWindowPlacement (&m_wpPrev)

2017-03-14 10:16:45 1557

转载 C语言如何获得精确到毫秒的时间

在做测试或性能优化时,经常要知道程序运行的时间,在Linux系统可以使用time命令来计算程序运行运行所消耗的时间,能精确到毫秒,如果要精确到代码块或某个操作运行时所消耗的时间,time命令就不给力了。如果对时间的精度要求不高的话,可以调用标准C的接口time来得到开始和结束的时间,再调用difftime接口来计算时间差,精度是秒,代码如下所示:下载: time.c#inc

2017-03-13 11:42:53 482

inttypes.h

ffmpeg需要用到的文件inttypes.h,如果不添加,有可能编译不会通过。

2018-03-20

GetLastError

2016-11-21

C语言函数大全

C语言各种函数的原型及使用方法、示例等,需要包含的各个函数头文件

2016-01-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除