ARM的视频采集以及jpeg压缩

本文介绍了一位开发者在ARM Linux系统上进行视频采集和JPEG压缩的过程,遇到的问题及解决方案。程序涉及打开视频设备、内存映射、线程创建、JPEG编码等步骤,最终实现从摄像头捕获视频帧并压缩为JPEG图片。需要注意的是,程序不应放在/usr目录下,否则可能引发问题。
摘要由CSDN通过智能技术生成

这个程序耗费我一天的时间,才得以解决一个问题!原来在arm linux上的程序最好不要放在/usr目录下,我这个程序就是,开始我就把程序放在这个目录下,摄像头采集一会就不采集数据了,一直找不到原因所在,开始还以为内存耗尽了, 但是始终找不到耗尽的原因!郁闷了我好久!今天得以解决,解决了我毕业设计的一大隐患!就担心这个地方出问题,造成毕业设计失败!

 

明天开始写网络传输模块的程序!

以后有时间会把这个程序进一步封装,更加模块化!

头文件:capture.h

#ifndef _CAPTURE_H_
#define _CAPTURE_H_


#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

#include <linux/videodev.h>
#include <sys/ioctl.h>

#include <fcntl.h>
#include <linux/fb.h>
#include <sys/mman.h>

#include <linux/types.h>
#include <jpeglib.h>
#include <setjmp.h>


#define bool int
#define true 1
#define false 0
//#include <sys/times.h>
int errno;


bool open_video() ;//open video
char *NextFrame() ;//capture one frame data
void close_video() ;//close video and free resource
bool capture_run() ;//create capture thread
void *thread_capture() ;//capture thread function
bool encode_jpeg(char *lpbuf,int width ,int height) ;//jpeg encode
#endif

 

程序文件capture.c

#include "capture.h"


//定义视频扑捉相应的结构体
struct video_mbuf v_bufferproperty ;//此结构体利用mmap进行映射帧信息
//实际上是输入到摄像头存储器缓冲区的帧信息
struct video_mmap *v_memorymap ;//用于内存映射
struct video_picture v_imageproperty ;//采集图像的各种属性
struct video_capability v_capability ;//摄像头的基本信息
char *memorymap ;
int bufferIndex=0 ;


//define the variable
char* deviceName = "/dev/v4l/video0";  
char *fname="temp.jpg" ;
int deviceHandle = 0;
int width = 320;  
int height = 240;  
int depth=16;  
int palette=VIDEO_PALETTE_RGB565;  
 
 
//conrresponding to thread
pthread_t hthread_capture ;//capture thread!

bool open_video()
{
 int ret =-1 ;
 //open device
 deviceHandle=open(deviceName,O

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值