- 博客(73)
- 资源 (14)
- 收藏
- 关注
转载 基于jrtplib的NAT穿透
4 基于jrtplib的NAT穿透 4.1 NAT穿透的基础只是 有关于NAT穿透的基础知识4.2 rtp/rtcp传输涉及到的NAT穿透 rtp/rtcp传输数据的时候,需要两个端口支持。即rtp端口用于传输rtp数据,即传输的多媒体数据;rtcp端口用于传输rtcp控制协议信息。rtp/rtcp协议默认的端口是rtcp
2013-10-31 12:16:54 1420
转载 rtcp协议总结
RTCP协议将控制包周期发送给所有连接者,应用与数据包相同的分发机制。低层协议提供数据与控制包的复用,如使用单独的UDP端口号。RTCP执行下列四大功能: (1) 主要是提供数据发布的质量反馈。RTCP是作为RTP传输协议的一部分,与其他传输协议的流和阻塞控制有关。反馈对自适应编码控制直接起作用,但IP多播经验表明,从发送者收到反馈对诊断发送错误是至关重要的。给所有参加者发送接收反馈报
2013-10-31 12:01:31 1491
转载 uvc摄像头代码解析7
13.uvc视频初始化13.1 uvc数据流控制[cpp] view plaincopystruct uvc_streaming_control { __u16 bmHint; __u8 bFormatIndex; //视频格式索引 __u8 bFrameIndex; //视频帧索引
2013-10-30 10:02:57 1689
转载 uvc摄像头代码解析6
10.扫描视频设备链和注册视频设备10.1 uvc视频链[cpp] view plaincopystruct uvc_video_chain { //uvc视频链 struct uvc_device *dev; //uvc设备 struct list_head list; /
2013-10-30 10:02:02 1496
转载 uvc摄像头代码解析5
8.初始化uvc控制8.1 重要结构体[cpp] view plaincopystruct uvc_control { //uvc控制 struct uvc_entity *entity; //uvc实体 struct uvc_control_info info; //uvc控制信息
2013-10-30 10:01:30 1422
转载 uvc摄像头代码解析4
7.uvc_parse_format7.1 uvc格式描述符[cpp] view plaincopystruct uvc_format_desc { //uvc格式描述符 char *name; //uvc格式描述符名字 __u8 guid[16];//全局唯一ID __u32 fcc; //压缩格式 };
2013-10-30 10:00:29 1348
转载 uvc摄像头代码解析3
6.uvc解析uvc视频流6.1 重要结构体6.1.1 uvc数据流[cpp] view plaincopystruct uvc_streaming { struct list_head list; //uvc视频流链表头 struct uvc_device *dev; //uvc设备
2013-10-30 10:00:01 1615
转载 uvc摄像头代码解析2
1.uvc驱动模块入口[cpp] view plaincopymodule_init(uvc_init); //1.模块入口 2.初始化函数[cpp] view plaincopystatic int __init uvc_init(void) // 2.初始化函数 {
2013-10-30 09:59:15 1933
转载 uvc摄像头代码解析1
一.FAQ1.判断自己的摄像头是否支持uvc标准输入lsusb //列出usb设备[cpp] view plaincopyBus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 003: ID 0c45:62f1 Microdia
2013-10-30 09:58:25 1595
原创 ubuntu支持的uvc摄像头类型
UVC官网:http://www.ideasonboard.org/uvc/0402:5606USB 2.0 Camera (VIT D2010 notebooks)ALi Corporation [12]0402:96651.3M WebCam (Acer Aspire AS7551-7442 notebooks)ALi Cor
2013-10-29 21:42:09 6727 1
原创 XP系统改变显示亮度
XP系统更改方法:【桌面】→ 【单击右键】→ 【属性】→ 【外观】→ 【高级】→ 项目选择【窗口】→ 【颜色1(L)】→ 【选择(其它)】将色调改为:85;饱和度:123;亮度:205→添加到自定义颜色→在自定义颜色选定→确定这样所有的文档都不再是『刺眼的白底黑字』,而是非常『柔和的豆沙绿』色,这个色调是『眼科专家配置』的,长时间使用会很有效的『缓解眼睛疲劳』『保护眼睛』
2013-10-29 17:36:43 827
转载 压缩xvid ffmpeg x264 对比
压缩xvid ffmpeg x264 对比Xvid是基于MPEG4协议的编解码器,x264是基于H.264协议的编码器,ffmpeg集合了各种音频,视频编解码协议,通过设置参数可以完成基于MPEG4,H.264等协议的编解码,现在将其对比结果罗列如下:1.软件版本: Xvid:1.2.1 x264:无 ffmpeg:0.5
2013-10-28 11:26:10 762
转载 live555的两个循环
我的理解是live有两个循环!一个是select()所在的主循环,它即监听连接,也接收请求。另一个是发送数据的循环,如你上面所说的在MultiFramedRTPSink类中,通过buildAndSendPacket、packFrame、afterGettingFrame、afterGettingFrame1、sendPacketIfNecessary和sendNext构成了一个循环圈,数据
2013-10-28 10:47:01 495
转载 live555中关于mpeg4的处理
http://blog.csdn.net/gavinr/article/details/7162369 live555支持mpeg4的ES(Elemental Stream)流,相关类为MPEGVideoStreamFramer、MPEG4ESVideoRTPSink。我想扩展其对avi格式的支持,将avi中的MPEG4数据包解析出来后,交给MPEGVideoStreamFrame
2013-10-23 15:04:16 808
转载 live555源码分析----mpg文件的处理(续)
前一篇文章对mpg文件处理的分析中,有个一个比较严重的错误,因为有些重要的细节没有注意到。mpg文件是音视频交错排列的,如果需要读取的是视频数据,但当前文件位置却是音频数据该怎么办?前面分析时说,将把遇到的音频数据保存到缓存中,直到读取到视频数据,live555中并非如此处理的。先简单的说明一下mpg处理过程涉及的几个类的作用MPEG1or2Demux, 对应一个session,完
2013-10-23 15:03:26 898
转载 live555 实现一个最简单的RTSP服务器
http://blog.csdn.net/gavinr/article/details/7050797用live555中的库写了一个最简单的RTSPServer程序,仅用于学习目的。从下例的代码中,可以清析的明白RTSPServer的函数调用流程。[cpp] view plaincopyprint?#include #includ
2013-10-23 15:01:51 827
转载 live555源码分析----mpg文件的处理
live555支持的文件格式多为单流的文件,仅支持*.mpg、*.mkv、*.webm几种音视频混合类型的文件。其实我的目的是扩展其支持的格式,如avi等, 所以来分析一下mpg文件的处理。 mpg文件处理涉及的类相当多,类间的关系比较复杂,对于RTP打包的过程(在RTPSink中完成)所以有的媒体类型比较相似(细节上有差异,这些都是在特定媒体相关的***RTPSink中完成的)
2013-10-23 15:00:47 755
转载 live555源码分析----H264的数据处理
http://blog.csdn.net/gavinr/article/details/7042228 现在来分析live555中关于H264的处理部分,主要包括从文件中读取数据进行并进行frame(NALU)的分割,然后对frame进行分片,这些工作都是在frame交给RTP sink之前完成的。接着上篇分析文章(RTP的打包与发送)中提到的MultiFramedRTP::pack
2013-10-23 14:55:56 909
转载 实现RTP协议的H.264视频传输系统
http://blog.csdn.net/gavinr/article/details/70359661. 引言 随着信息产业的发展,人们对信息资源的要求已经逐渐由文字和图片过渡到音频和视频,并越来越强调获取资源的实时性和互动性。但人们又面临着另外一种不可避免的尴尬,就是在网络上看到生动清晰的媒体演示的同时,不得不为等待传输文件而花费大量时间。为了解决这个矛盾
2013-10-23 14:54:29 914
转载 live555源码分析----RTP的打包与发送
http://blog.csdn.net/gavinr/article/details/7035799 这里主要分析一下,live555中关于RTP打包发送的部分。在处理完PLAY命令之后,就开始发送RTP数据包了(其实在发送PLAY命令的response包之前,就会发送一个RTP包,这里传输就已经开始了) RTP包的发送是从MediaSink::startPlayin
2013-10-23 14:53:07 760
转载 live555源码分析----RTP的打包与发送
http://blog.csdn.net/gavinr/article/details/7035799 这里主要分析一下,live555中关于RTP打包发送的部分。在处理完PLAY命令之后,就开始发送RTP数据包了(其实在发送PLAY命令的response包之前,就会发送一个RTP包,这里传输就已经开始了) RTP包的发送是从MediaSink::startPlayin
2013-10-23 14:52:01 549
转载 live555源码分析---- PLAY命令的处理
PLAY命令概述http://blog.csdn.net/gavinr/article/details/7031437PLAY命令要求在SETUP命令之后进行,此命令处理过程中就开始发送数据了,在处理PLAY命令过程中还创建了RTCPInstance实例。客户端可以通过PLAY命令的Scale头部域,指定播放速率,不过这个功能要看服务器对特定媒体的具体实现,
2013-10-23 14:51:11 912
转载 live555源码分析----SETUP命令处理流程
SETUP命令概述http://blog.csdn.net/gavinr/article/details/7029830SETUP命令,主要用于协商客户端与服务器的通信细节,如通信协议、地址等等,SETUP请求中最重要的是"Transport"头部。客户端需要对,文件中的每一个流发送一个SETUP命令。客户端还可以通过其中的"destination"属性来重定向RT
2013-10-23 14:50:04 905
转载 live555源码分析---- DESCRIBE命令处理
live555 DESCRIBE命令处理比较复杂,详细的处理过程如下 http://blog.csdn.net/gavinr/article/details/70264971.DESCRIBE处理函数[cpp] view plaincopyprint?void RTSPServer::RTSPClientSession ::ha
2013-10-23 14:48:21 752
转载 pjsip的编译及简单使用
1.下载下载地址:http://www.pjsip.org/download.htm我下载的是pjproject-1.12.zip2.编译将下载的文件解压后,目录下有pjproject-vs8.sln,可以直接使用vs2005打开,目录下的readme.txt文件中有编译说明,关于windows下的注意点如下: Building Win
2013-10-23 14:46:32 2297
转载 red5流媒体平台搭建
red5是一个开源的RTMP服务器。1.下载及安装下载 http://www.red5.org/red5-server/, 我下载的是0.6.3 Final安装过程比较简单,要注意的一点是端口号的配置,默认设置如下:安装完成后,启动red52.测试拷贝一个测试文件test.flv到webapps\oflaDemo\streams目录中打开测试页面http
2013-10-23 14:44:49 753
转载 epoll-linux提高并发服务器效率
在大家苦苦的为在线人数的增长而导致的系统资源吃紧上的问题正在发愁的时候,Linux 2.6内核中提供的System Epoll为我们提供了一套完美的解决方案。传统的select以及poll的效率会因为在线人数的线形递增而导致呈二次乃至三次方的下降,这些直接导致了网络服务器可以支持的人数有了个比较明显的限制。自从Linux提供了/dev/epoll的设备以及后来2.6内核中对/dev/e
2013-10-19 13:51:58 615
转载 epoll + 线程池 回应服务器(Linux) ---可以支持上万个连接
[cpp] view plaincopy//ptypes #include "ptime.h" #include "pinet.h" #include "ptypes.h" #include "pasync.h" #include "logfile.h" //network #include #include
2013-10-19 12:32:04 1522
转载 socket中的短连接与长连接,心跳包示例详解
TCP连接简介当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的经典的三次握手示意图:经典的四次握手关闭图:
2013-10-17 11:48:52 1352
转载 RTSP - RTP over TCP
Normally, RTSP provide streaming over UDP. By nature, UDP is a better choice as it provides robust streaming capability for media. However, it is unlikely to use UDP for streaming over the Internet.
2013-10-17 10:54:55 904
转载 ALSA交叉编译与测试-应用程观音频驱动二
软硬件平台:ARM9(S3C2410A),UDA1341, 2.6.33.1内核,arm-none-linux-gnueabi-gcc-4.3.2ASoC:ALSA为嵌入式系统提供的SOC级驱动,支持PCM,I2S和AC97。详细内容可查阅:http://www.alsa-project.org/main/index.php/ASoC (1)驱动移植
2013-10-16 23:12:19 1394
转载 ALSA交叉编译与测试-应用程观音频驱动一
情况简介ALSA 是目前 Linux 系统上大量采用的音频设备库,通过 Alsa 架构能分离驱动和应用的开发。 Alsa 为上层提供API 的同时,也为下层提供了接口,在内核配置的时候指定“支持 Alsa” 就能得到内核支持,具体位置为:Menuconfig -> Device Drivers -> Sound card support -> Advanced Linux Sound Ar
2013-10-16 23:06:35 743
转载 音频实际开发1
这两周负责了wolfson的wm8987和wm8978两款芯片的驱动,在这个过程中,遇到了一些问题,不过在team硬件工程师以及wolfson的fae工程师James的帮助下,得到了解决。这篇文章以及之后的文章大部分是从document翻译过来。 wm8987&wm8978驱动均为开源网站上下载,soc是alsa为了更好的支持嵌入式系统而出现的,其特点有: 1
2013-10-16 00:06:54 658
转载 【zz】ALSA在ARM(S3C6410)中的移植
ALSA在ARM(S3C6410)中的移植软硬件平台:ARM9(S3C2410A),UDA1341, 2.6.33.1内核,arm-none-linux-gnueabi-gcc-4.3.2ASoC:ALSA为嵌入式系统提供的SOC级驱动,支持PCM,I2S和AC97。详细内容可查阅:http://www.alsa-projec
2013-10-16 00:01:58 816
转载 socket通信的环形缓冲-TCPQQ
孙靖 2009.5.5Email:jing_sun999@126.com QQ:272964426前段时间实现了一个小型的C/S架构的多人在线即时通信工具,JIGQQ。其中对使用TCP通信有点心得。 记得在我大学时代,就用VB做过TCP的通信。当然那时候是很初级的,发送的数据量也很小的应用。当时就觉得,有时候发送的数据接收端不能接收到,有时候呢觉得一次性没有接受完毕。前段时间
2013-10-15 15:35:32 3272
转载 RTP Payload Format for Transport of MPEG-4 Elementary Streams over http
1.SDP(1)Http RequestGET /getSdpForUrl?HttpUrl=nphMpeg4/g726-640x480 HTTP/1.0/r/nHost: 58.63.71.90:8011/r/nAccept: */*/r/nAccept-Language: */r/nAccept-Encoding: */r/nAuthorization: Basic
2013-10-15 15:26:42 1018
转载 linux提升CPU性能和效率-处理器的亲和性
http://www.ibm.com/developerworks/cn/linux/l-affinity.html简单地说,CPU 亲和性(affinity) 就是进程要在某个给定的 CPU 上尽量长时间地运行而不被迁移到其他处理器的倾向性。Linux 内核进程调度器天生就具有被称为 软 CPU 亲和性(affinity) 的特性,这意味着进程通常不会在处理器之间频繁迁移
2013-10-14 16:38:57 1571
转载 三探声卡值controls
三论声卡值controls:首先我们操作control设备节点文件时候要先打开,看看打开函数做了什么?snd_ctl_open(struct inode *inode, struct file *file)err = nonseekable_open(inode, file);//设置filp->f_mode,这样内核就不会让lseek调用成功card = snd_
2013-10-12 23:21:09 588
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人