JZ2440 Mjpg-streamer
殷忆枫
这个作者很懒,什么都没留下…
展开
-
JZ2440 mjpg-streamer学习笔记1----mjpg-streamer移植
1、什么是mjpg-streamer MJPG-streamer是一款免费基于IP地址的视频流服务器,它的输入插件从摄像头读取视频数据,这个输入插件产生视频数据并将视频数据复制到内存中,它有多个输出插件将这些视频数据经过处理,其中最重要的输出插件是网站服务器插件,它将视频数据传送到用户浏览器中,MJPG-streamer的工作就是将其中的一个输入插件和多个输出插件绑定在一起,所有...转载 2019-02-26 08:29:30 · 379 阅读 · 0 评论 -
JZ2440 mjpg-streamer学习笔记2----框架分析
1、输入---仓库-----输出(mjpg-streamer.h)(1)global结构体输入对应的是input结构体(输入插件)仓库对应的是buf指针,仓库的大小是size.输出对应的是output结构体(输出插件)outcnt表示当前输出通道中有几种方式(2)mjpg-streamer-r63文件 .so文件是插件,可能是输入...转载 2019-02-26 08:30:15 · 215 阅读 · 0 评论 -
JZ2440 mjpg-streamer学习笔记3----主进程
1、主进程框架图2、主函数分析int main(int argc, char *argv[]){input指针未能赋值时使用默认值input_uvc.so --resolution 640x480 --fps 5 --device /dev/video0char *input = "input_uvc.so --resolution 640x480 --fps 5 --de...转载 2019-02-26 08:30:49 · 386 阅读 · 0 评论 -
JZ2440 mjpg-streamer学习笔记4----主进程--关键函数详解
1、getopt_long_only()函数(1)函数作用根据传入的参数,一个一个的在struct option 数组里面进行匹配,当匹配到相同的参数,返回在数组中的下标(2)相关内容 ...转载 2019-02-26 08:31:27 · 119 阅读 · 0 评论 -
J2440 mjpg-streamer学习笔记5----输入通道
input_uvc.c1、input_init函数int input_init(input_parameter *param)设置默认参数{char *argv[MAX_ARGUMENTS]={NULL}, *dev = "/dev/video0", *s;int argc=1, width=640, height=480, fps=5, format=V4L2_PIX_FMT_MJPEG...转载 2019-02-26 08:32:08 · 126 阅读 · 0 评论 -
JZ2440 mjpg-streamer学习笔记6----输入通道--主要涉及函数
1、init_videoIn函数int init_videoIn(struct vdIn *vd, char *device, int width, int height, int fps, int format, int grabmethod){各种参数判断(设备节点是否为空,分辨率是否为0,如果不符合要求,直接返回)if (vd == NULL || device == NULL)ret...转载 2019-02-27 08:17:49 · 280 阅读 · 0 评论 -
J2440 mjpg-streamer学习笔记7------输出通道
output_http.c里面 1、output_init()函数/*该函数只是解析参数,然后给相应的变量赋值*/2、 output_run()函数int output_run(int id){DBG("launching server thread #%02d\n", id);// 打印出一个调试信息/* create thread and pass context...转载 2019-02-27 08:18:36 · 168 阅读 · 0 评论 -
J2440 mjpg-streamer学习笔记8------输出通道--相关函数
1、_readline函数对于_readline函数,有一个容器iobuf->buffer,iobuf还有一个level,第一次运行while语句的时候,在没有执行read函数前,我们的iobuf->level等于0.然后执行read函数从客户端读取一串数据,假设客户端发送的是abcd\n一共5个字节,读到的数据是存到iobuf->buffer,容器里依次存放a、b、c、d、\...转载 2019-02-27 08:19:15 · 112 阅读 · 0 评论 -
JZ2440 mjpg-streamer学习笔记9---自己写客户端
0.自己写客服端(流程)(1).发送一个请求字符串"GET /?action=snapshot\n""GET /?action=stream\n""GET /?action=command\n"(2).再发送一次字符串如果我们不使用密码功能!则只需发送任意长度为小于2字节的字符串,比如:"f\n"如果发送的请求是:"GET /?action=snapshot\n"(3).需要接收一次字符...转载 2019-02-27 08:20:14 · 262 阅读 · 0 评论 -
JZ2440 mjpg-streamer学习笔记10-----自己写客服端_编译调试
1、编译调试(1)将客户端程序上传到服务器(2)进入到客户端目录,进行make操作(3)出现错误解决错误我们用到线程相关的结构体,所以要包含pthread.h这个头文件。没有声明函数atol看使用这个函数需要包含什么头文件没有定义函数pthread_create,但我们明明包含了相关的头文件,用到创建线程,依赖于一个库,因而需要在顶层makefile中,添加一个依赖的库文件...转载 2019-02-27 08:21:07 · 179 阅读 · 0 评论