linux下tv录制实现原理与代码
2006-10-18 17:50
323 查看
Linux下面的视频捕获,主要用的是v4l,或者v4l2.
原理:
首先调用用open打开设备,利用ioctl可以对设备进行控制,比如设置视频数据流格式,视频尺寸,访问模式等等。然后根据不同的访问模式,采用不同的 方法读取视频数据,比如一般的read方法,内存映射mmap,或者userptr。,然后将读取的数据,根据设置的不同格式进行解码,v4l定义了不同 的格式,不如RGB24,SRGB,YUMK,当然,我们最终所获取的数据都得转化为RGB24格式,不过其他格式也有各自的优点,根据不同的场合需要选 择不同的格式。当然,设备支持的数据格式,跟驱动的实现有关,驱动程序并不一定支持所有的数据格式。在使用ioctl进行设置的时候,如果设备不支持,就 会返回错误。
原理:
首先调用用open打开设备,利用ioctl可以对设备进行控制,比如设置视频数据流格式,视频尺寸,访问模式等等。然后根据不同的访问模式,采用不同的 方法读取视频数据,比如一般的read方法,内存映射mmap,或者userptr。,然后将读取的数据,根据设置的不同格式进行解码,v4l定义了不同 的格式,不如RGB24,SRGB,YUMK,当然,我们最终所获取的数据都得转化为RGB24格式,不过其他格式也有各自的优点,根据不同的场合需要选 择不同的格式。当然,设备支持的数据格式,跟驱动的实现有关,驱动程序并不一定支持所有的数据格式。在使用ioctl进行设置的时候,如果设备不支持,就 会返回错误。
相关文章推荐
- Linux下原子操作(信号量 自旋锁)的实现原理和底层代码分析
- 浅谈Linux下CPU利用率和CPU负载及其代码实现原理
- linux 系统调用中断劫持实现—原理和代码
- linux下C 线程池的原理讲解和代码实现(能自行伸缩扩展线程数)
- 浅谈Linux下CPU利用率和CPU负载及其代码实现原理
- linux下C 线程池的原理讲解和代码实现(能自行伸缩扩展线程数)
- William Stallings 《操作系统内核和设计原理》书中Linux下C语言实现读者写者问题(写者优先)代码
- Linux SYN Cookie的原理以及代码实现
- Java NIO原理图文分析及代码实现
- Java NIO原理图文分析及代码实现
- Linux 下几个文件操作命令的代码实现+myfind find 查找命令 实现
- 排序技术_各种算法原理 图解 代码实现
- 排序技术_各种算法原理 图解 代码实现
- linux 命令c语言代码实现
- Base64加密解密原理以及代码实现
- 根据Merge Sort原理, 自己实现的归并排序算法+详细注释+代码(C#,C/C++) [分享]
- PAL算法原理及代码实现
- Android中悬浮窗口的实现原理和示例代码
- Linux inotify功能及实现原理【转】
- Linux 互斥锁的实现原理(pthread_mutex_t)