摘要:首先server.c中如下几行代码:signal(SIGPIPE, SIG_IGN); /* Ignore sigpipe */sa.sa_handler = sigchld_handler;sigemptyset(&sa.sa_mask);sa.sa_flags = SA_RESTART;/***********************************************************/ 当服务器close一个连接时,若client端接着发数据。 根据TCP协议的规定,会收到一个RST响应,client再向这个服务器发送数据时系统会发出一个SIGPIPE信号给进
阅读全文
随笔分类 - V4L
摘要:搞了一段时间的嵌入式网络视频采集与传输,基本上在服务器端采集视频用的是servfox程序包,它可以用arm-linux-gcc编译后移植到开发板上,我现在一直在做这方面的工作,用的是S3C2410的板子,这个开源程序十分不错,觉得有必要深入理解和学习一下它的源程序,网上一般没有对它的详细说明,只是简单介绍了它怎么用的,就如我当初刚开始学习嵌入式时一样看不懂这个程序,现在对其各个代码作个详细的解释,以备后忘,也希望对新手有所帮助。 servfox主要有server.c,spcav4l.c ,spcav4l.h,utils.c ,utils.h,tcputils.c ,tcputils.h,s..
阅读全文
摘要:Video4linux 中文解析 收藏 •Video4linux(简称V4L),是linux中关于视频设备的内核驱动。•现在已有Video4linux2,还未加入linux内核,使用需自己下载补丁•在Linux中,视频设备是设备文件,可以像访问普通文件一样对其进行读写•摄像头在/dev/video0下1.打开视频设备:2. 读取设备信息3.更改设备当前设置(如果有必要)4.进行视频采集,两种方法: (都没成功)L 1.内存映射 2.直接从设备读取5.对采集的视频进行处理(没做)6.关闭视频设备。为程序定义的数据结构typedef struct v4l_struct { int fd; stru
阅读全文
摘要:用一系列的ioctl发命令控制设备。v4l支持的ioctl命令大概有二十几个,为了尽快的编出一个简单的图象捕捉程序,让我们先来看看几个主要的命令:1. ioctl(fd,VIDIOCGCAP,&cap); 该命令主要是为了获取电视卡的功能信息。例如电视卡的名称,类型,channel等。参数cap是一个结构,当ioctl命令返回时,结构的各成员就被赋值了,结构体的定义为:struct video_capability{ char name[32]; int type; int channels; /* Num channels */ int audios; /* Num audio de
阅读全文
摘要:作者:d_south<d_south@163.com>Blog:http://hi.baidu.com/d_south写作日期:2009前言.写这篇文章的想法和思路由于毕业设计的关系,本人要做一下在linux系统中视频的相关工作比如采集和传输。由于本人是菜鸟一个,所以是需要上网搜一搜看大家都是如何做的,当然开始都是理不出一个头绪,但是很多文章都提到了video4linux(v4l),所以我觉得工作的展开可以先从这里开始,。看了网上的一些文章,其中比较重要的也是比较知名的吧,有戴小鼠写的《基于Video4Linux 的USB 摄像头图像采集实现》,有陈俊宏写的《video strea
阅读全文
摘要:一.文件目录结构如下图:二.视频设备自定义的数据结构------------------------------------------struct vdIn { int fd; char *videodevice ; //视频设备文件路径,如/dev/video0 struct video_mmap vmmap;//内存映射 struct video_capability videocap; int mmapsize; struct video_mbuf videombuf; struct video_picture videopict; struct video_window videow
阅读全文