新建
上传
首页
助手
最?/div>
资料?/div>
工具

Linux

?/p>

V4L2

编程小结

 

  

一.设置采集方式,格式

 

常用命令标志

 

  

    

打开视频设备后,可以设置该视频设备的属性,例如裁剪、缩放等。这一步是可选的?/p>

?/p>

Linux

编程中,一般使?/p>

ioctl

函数来对设备?/p>

I/O

通道进行管理?/p>

 

extern int ioctl (int __fd, unsigned long int __request, ? __THROW;

 

__fd

:设备的

ID

,例如刚才用

open

函数打开视频通道后返回的

cameraFd

?/p>

 

__request

:具体的命令标志符?/p>

 

在进?/p>

V4L2

开发中,一般会用到以下的命令标志符?/p>

 

1.

 

VIDIOC_REQBUFS

:分配内?/p>

 

2.

 

VIDIOC_QUERYBUF

:把

VIDIOC_REQBUFS

中分配的数据缓存转换成物理地址

 

3.

 

VIDIOC_QUERYCAP

:查询驱动功?/p>

 

4.

 

VIDIOC_ENUM_FMT

:获取当前驱动支持的视频格式

 

5.

 

VIDIOC_S_FMT

:设置当前驱动的频捕获格?/p>

 

6.

 

VIDIOC_G_FMT

:读取当前驱动的频捕获格?/p>

 

7.

 

VIDIOC_TRY_FMT

:验证当前驱动的显示格式

 

8.

 

VIDIOC_CROPCAP

:查询驱动的修剪能力

 

9.

 

VIDIOC_S_CROP

:设置视频信号的边框

 

10.

 

V

IDIOC_G_CROP

:读取视频信号的边框

 

11.

 

V

IDIOC_QBUF

:把数据从缓存中读取出来

 

12.

 

V

IDIOC_DQBUF

:把数据放回缓存队列

 

13.

 

V

IDIOC_STREAMON

:开始视频显示函?/p>

 

14.

 

V

IDIOC_STREAMOFF

:结束视频显示函?/p>

 

15.

 

V

IDIOC_QUERYSTD

:检查当前视频设备支持的标准,例?/p>

PAL

?/p>

NTSC

?/p>

 

这些

IO

调用,有些是必须的,有些是可选择的?/p>

 

  

?/p>

.

一般操作流程(视频设备?/p>

 

1. 

打开设备文件?/p>

 

int fd=open(?dev/video0?O_RDWR);

 

 

2. 

取得设备?/p>

capability

?/p>

看看设备具有什么功能,

比如是否具有视频输入

,

或者音频输?/p>

输出等?/p>

VIDIOC_QUERYCAP,struct v4l2_capability 

 

 

  

v4l2_std_id std; 

  

do { 

Ͼλ
新建
上传
首页
助手
最?/div>
资料?/div>
工具

Linux

?/p>

V4L2

编程小结

 

  

一.设置采集方式,格式

 

常用命令标志

 

  

    

打开视频设备后,可以设置该视频设备的属性,例如裁剪、缩放等。这一步是可选的?/p>

?/p>

Linux

编程中,一般使?/p>

ioctl

函数来对设备?/p>

I/O

通道进行管理?/p>

 

extern int ioctl (int __fd, unsigned long int __request, ? __THROW;

 

__fd

:设备的

ID

,例如刚才用

open

函数打开视频通道后返回的

cameraFd

?/p>

 

__request

:具体的命令标志符?/p>

 

在进?/p>

V4L2

开发中,一般会用到以下的命令标志符?/p>

 

1.

 

VIDIOC_REQBUFS

:分配内?/p>

 

2.

 

VIDIOC_QUERYBUF

:把

VIDIOC_REQBUFS

中分配的数据缓存转换成物理地址

 

3.

 

VIDIOC_QUERYCAP

:查询驱动功?/p>

 

4.

 

VIDIOC_ENUM_FMT

:获取当前驱动支持的视频格式

 

5.

 

VIDIOC_S_FMT

:设置当前驱动的频捕获格?/p>

 

6.

 

VIDIOC_G_FMT

:读取当前驱动的频捕获格?/p>

 

7.

 

VIDIOC_TRY_FMT

:验证当前驱动的显示格式

 

8.

 

VIDIOC_CROPCAP

:查询驱动的修剪能力

 

9.

 

VIDIOC_S_CROP

:设置视频信号的边框

 

10.

 

V

IDIOC_G_CROP

:读取视频信号的边框

 

11.

 

V

IDIOC_QBUF

:把数据从缓存中读取出来

 

12.

 

V

IDIOC_DQBUF

:把数据放回缓存队列

 

13.

 

V

IDIOC_STREAMON

:开始视频显示函?/p>

 

14.

 

V

IDIOC_STREAMOFF

:结束视频显示函?/p>

 

15.

 

V

IDIOC_QUERYSTD

:检查当前视频设备支持的标准,例?/p>

PAL

?/p>

NTSC

?/p>

 

这些

IO

调用,有些是必须的,有些是可选择的?/p>

 

  

?/p>

.

一般操作流程(视频设备?/p>

 

1. 

打开设备文件?/p>

 

int fd=open(?dev/video0?O_RDWR);

 

 

2. 

取得设备?/p>

capability

?/p>

看看设备具有什么功能,

比如是否具有视频输入

,

或者音频输?/p>

输出等?/p>

VIDIOC_QUERYCAP,struct v4l2_capability 

 

 

  

v4l2_std_id std; 

  

do { 

">
新建
上传
首页
助手
最?/div>
资料?/div>
工具

Linux

?/p>

V4L2

编程小结

 

  

一.设置采集方式,格式

 

常用命令标志

 

  

    

打开视频设备后,可以设置该视频设备的属性,例如裁剪、缩放等。这一步是可选的?/p>

?/p>

Linux

编程中,一般使?/p>

ioctl

函数来对设备?/p>

I/O

通道进行管理?/p>

 

extern int ioctl (int __fd, unsigned long int __request, ? __THROW;

 

__fd

:设备的

ID

,例如刚才用

open

函数打开视频通道后返回的

cameraFd

?/p>

 

__request

:具体的命令标志符?/p>

 

在进?/p>

V4L2

开发中,一般会用到以下的命令标志符?/p>

 

1.

 

VIDIOC_REQBUFS

:分配内?/p>

 

2.

 

VIDIOC_QUERYBUF

:把

VIDIOC_REQBUFS

中分配的数据缓存转换成物理地址

 

3.

 

VIDIOC_QUERYCAP

:查询驱动功?/p>

 

4.

 

VIDIOC_ENUM_FMT

:获取当前驱动支持的视频格式

 

5.

 

VIDIOC_S_FMT

:设置当前驱动的频捕获格?/p>

 

6.

 

VIDIOC_G_FMT

:读取当前驱动的频捕获格?/p>

 

7.

 

VIDIOC_TRY_FMT

:验证当前驱动的显示格式

 

8.

 

VIDIOC_CROPCAP

:查询驱动的修剪能力

 

9.

 

VIDIOC_S_CROP

:设置视频信号的边框

 

10.

 

V

IDIOC_G_CROP

:读取视频信号的边框

 

11.

 

V

IDIOC_QBUF

:把数据从缓存中读取出来

 

12.

 

V

IDIOC_DQBUF

:把数据放回缓存队列

 

13.

 

V

IDIOC_STREAMON

:开始视频显示函?/p>

 

14.

 

V

IDIOC_STREAMOFF

:结束视频显示函?/p>

 

15.

 

V

IDIOC_QUERYSTD

:检查当前视频设备支持的标准,例?/p>

PAL

?/p>

NTSC

?/p>

 

这些

IO

调用,有些是必须的,有些是可选择的?/p>

 

  

?/p>

.

一般操作流程(视频设备?/p>

 

1. 

打开设备文件?/p>

 

int fd=open(?dev/video0?O_RDWR);

 

 

2. 

取得设备?/p>

capability

?/p>

看看设备具有什么功能,

比如是否具有视频输入

,

或者音频输?/p>

输出等?/p>

VIDIOC_QUERYCAP,struct v4l2_capability 

 

 

  

v4l2_std_id std; 

  

do { 

Ͼλ">
Ͼλ
Ŀ

Linux下V4L2编程小结 - 百度文库
新建
上传
首页
助手
最?/div>
资料?/div>
工具

Linux

?/p>

V4L2

编程小结

 

  

一.设置采集方式,格式

 

常用命令标志

 

  

    

打开视频设备后,可以设置该视频设备的属性,例如裁剪、缩放等。这一步是可选的?/p>

?/p>

Linux

编程中,一般使?/p>

ioctl

函数来对设备?/p>

I/O

通道进行管理?/p>

 

extern int ioctl (int __fd, unsigned long int __request, ? __THROW;

 

__fd

:设备的

ID

,例如刚才用

open

函数打开视频通道后返回的

cameraFd

?/p>

 

__request

:具体的命令标志符?/p>

 

在进?/p>

V4L2

开发中,一般会用到以下的命令标志符?/p>

 

1.

 

VIDIOC_REQBUFS

:分配内?/p>

 

2.

 

VIDIOC_QUERYBUF

:把

VIDIOC_REQBUFS

中分配的数据缓存转换成物理地址

 

3.

 

VIDIOC_QUERYCAP

:查询驱动功?/p>

 

4.

 

VIDIOC_ENUM_FMT

:获取当前驱动支持的视频格式

 

5.

 

VIDIOC_S_FMT

:设置当前驱动的频捕获格?/p>

 

6.

 

VIDIOC_G_FMT

:读取当前驱动的频捕获格?/p>

 

7.

 

VIDIOC_TRY_FMT

:验证当前驱动的显示格式

 

8.

 

VIDIOC_CROPCAP

:查询驱动的修剪能力

 

9.

 

VIDIOC_S_CROP

:设置视频信号的边框

 

10.

 

V

IDIOC_G_CROP

:读取视频信号的边框

 

11.

 

V

IDIOC_QBUF

:把数据从缓存中读取出来

 

12.

 

V

IDIOC_DQBUF

:把数据放回缓存队列

 

13.

 

V

IDIOC_STREAMON

:开始视频显示函?/p>

 

14.

 

V

IDIOC_STREAMOFF

:结束视频显示函?/p>

 

15.

 

V

IDIOC_QUERYSTD

:检查当前视频设备支持的标准,例?/p>

PAL

?/p>

NTSC

?/p>

 

这些

IO

调用,有些是必须的,有些是可选择的?/p>

 

  

?/p>

.

一般操作流程(视频设备?/p>

 

1. 

打开设备文件?/p>

 

int fd=open(?dev/video0?O_RDWR);

 

 

2. 

取得设备?/p>

capability

?/p>

看看设备具有什么功能,

比如是否具有视频输入

,

或者音频输?/p>

输出等?/p>

VIDIOC_QUERYCAP,struct v4l2_capability 

 

 

  

v4l2_std_id std; 

  

do { 



ļ׺.doc޸Ϊ.docĶ

  • ƥı˯ָ(PSQI)(ֱ׼)
  • ɳӡ
  • ʦ˽2020йѧѧԺѧо顢רҵָ
  • 2010ϺչЧͼԼȫ
  • 2013ʿ9
  • 2018-2024йֻۺϲгмչԤⱨ
  • ߵȴҵ ڶʽ
  • 2017-2022йάг̬о棨Ŀ¼ - ͼ
  • г¼Ӧʲô
  • U5嵥Ԫ

վ

԰ Ͼλ
ϵͷ779662525#qq.com(#滻Ϊ@)