linux pthread_create 远程视频监控之应用篇(mjpg(2)

电脑杂谈  发布时间:2017-12-24 18:03:00  来源:网络整理

1.输入初始化(input_init();)

global.in.init(&global.in.param) //打开input_init()函数

input_init() //input_uvc.c

1.识别参数

2.调用init_videoIn() //设置结构体,调用init_v4l2,分配缓冲区(存放数据)

init_v4l2() //根据设置的参数,做相应的操作,这里是真正调用驱动的地方

2.输出初始化(output_init();)

global.out[i].init(&global.out[i].param)//调用output_run();

output_init() //解析参数,相应变量赋值

四.运行

从mjpg_streamer.c文件开始分析

1.输入运行(input_run();)

global.in.run(); //调用input_run();

input_run()

pthread_create(&cam, 0, cam_thread, NULL); //创建线程

void *cam_thread( void *arg )

uvcGrab(videoIn) //获得一帧数据

if (videoIn->formatIn == V4L2_PIX_FMT_YUYV) //如果YUV则压缩,否则直接拷贝buffer中

2.输出运行(output_run();)

global.out[i].run(global.out[i].param.id); //调用output_run();

output_run(int id)

indirect函数_pthread_create 参数_linux pthread_create

pthread_create(&(servers[id].threadID), NULL, server_thread, &(servers[id])); //创建线程

void *server_thread( void *arg )

pthread_create(&client, NULL, &client_thread, pcfd)

void *client_thread( void *arg ) //客户端连接服务

_readline(lcfd.fd, &iobuf, buffer, sizeof(buffer)-1, 5)

_read(fd, iobuf, &c, 1, timeout)

read(fd, &iobuf->buffer, IO_BUFFER)) //读取数据

send_stream(lcfd.fd); //发送流

pthread_cond_wait(&pglobal->db_update, &pglobal->db); //等待数据更新

memcpy(frame, pglobal->buf, frame_size); //从buf中取出数据

write(fd, frame, frame_size) //发出数据

五.命令参数

这个是我设置的参数:输入UVC,网页输出,图片输出(更详细的设置,建议去看源码)

mjpg_streamer -i "input_uvc.so -f 10 -r 320*240 -y" -o "output_http.so -c "ruoyun:liufeng" -w www -p 8888" -o "output_file.so -d 1000 -f /mnt "

-i 输入

"input_uvc.so -f 10 -r 320*240 -y"

input_uvc.so:UVC输入组件

-f 10 :表示10帧

-r 320*240 :分辨率

-y :YUV格式输入(有卡顿),不加表示MJPG输入(需要支持)

-o输出

"output_http.so -c "ruoyun:liufeng" -w www -p 8888"

output_http.so :网页输出组件

-c "ruoyun:liufeng" :用户名:ruoyun 密码:liufeng

-w www :网页输出

-p 8888 :端口 8888

"output_file.so -d 1000 -f /mnt "

output_file.so:图片输出组件


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-55583-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...