Line 46: |
Line 46: |
| [[File:Rpi github overview.jpg|alt=|center|thumb|626x626px|github 软件包概览]] | | [[File:Rpi github overview.jpg|alt=|center|thumb|626x626px|github 软件包概览]] |
| | | |
− | *软件包包括视频流软件包和视频控制软件包。i2c_cmd为视频控制接口软件包。视频流接口软件包有两个,veye_raspcam为raspcam类型,D_mipi_rpi提供了C语言的SDK并由C语言和python语言的demo。 | + | *软件包包括视频流软件包和视频控制软件包。i2c_cmd为视频控制接口软件包。视频流接口软件包有两个,veye_raspcam为raspcam type工具集。D_mipi_rpi为D-SDK软件包,提供了C语言的SDK并由C语言和python语言的demo。 |
| | | |
| *视频流软件包提供实时显示、抓拍、录像等功能,视频控制软件包通过I2C协议控制摄像机模组,提供主要的ISP参数配置等功能。 | | *视频流软件包提供实时显示、抓拍、录像等功能,视频控制软件包通过I2C协议控制摄像机模组,提供主要的ISP参数配置等功能。 |
Line 54: |
Line 54: |
| ===视频流软件包使用=== | | ===视频流软件包使用=== |
| | | |
− | ==== raspicam type工具集 ==== | + | ====raspicam type工具集==== |
| | | |
| *veye_raspipreview | | *veye_raspipreview |
Line 74: |
Line 74: |
| *veye_raspivid 网络传输(direct tcp stream with netcat) | | *veye_raspivid 网络传输(direct tcp stream with netcat) |
| | | |
− | ''树莓派一侧执行'' | + | '''''树莓派一侧执行''''' |
| | | |
| <code>./veye_raspivid -b 4000000 -t 0 -o - | nc -l -p 5000</code> | | <code>./veye_raspivid -b 4000000 -t 0 -o - | nc -l -p 5000</code> |
Line 82: |
Line 82: |
| 电脑一侧,如为windows系统,建议使用powershell。 | | 电脑一侧,如为windows系统,建议使用powershell。 |
| | | |
− | ''电脑一侧使用gstreamer'' | + | '''''电脑一侧使用gstreamer''''' |
| | | |
| <code>./gst-launch-1.0 -v tcpclientsrc host=x.x.x.x port=5000 ! decodebin ! autovideosink</code> | | <code>./gst-launch-1.0 -v tcpclientsrc host=x.x.x.x port=5000 ! decodebin ! autovideosink</code> |
Line 90: |
Line 90: |
| [https://gstreamer.freedesktop.org gstreamer]的windows版本[https://gstreamer.freedesktop.org/documentation/installing/on-windows.html?gi-language=c 下载地址]。只安装runtime files即可。 | | [https://gstreamer.freedesktop.org gstreamer]的windows版本[https://gstreamer.freedesktop.org/documentation/installing/on-windows.html?gi-language=c 下载地址]。只安装runtime files即可。 |
| | | |
− | ''电脑一侧使用mplayer'' | + | '''''电脑一侧使用mplayer''''' |
| | | |
| <code>./mplayer -x 1280 -y 720 -geometry 0:0 -fps 200 -demuxer h264es -noborder ffmpeg://tcp://x.x.x.x:5000</code> | | <code>./mplayer -x 1280 -y 720 -geometry 0:0 -fps 200 -demuxer h264es -noborder ffmpeg://tcp://x.x.x.x:5000</code> |
Line 130: |
Line 130: |
| 实现间隔50ms抓拍一张bmp图片存储到/dev/shm目录(内存文件系统),持续1秒,然后客户可以导出并查看。 | | 实现间隔50ms抓拍一张bmp图片存储到/dev/shm目录(内存文件系统),持续1秒,然后客户可以导出并查看。 |
| | | |
− | ==== D-SDK软件包 ==== | + | ====D-SDK软件包==== |
− | <br /> | + | 提供了一个C语言的SDK库libdmipicam.so,以及基于这个库的C语言sample和python语言sample。 |
| + | |
| + | ===== 安装底层支持库 ===== |
| + | <code>sudo apt-get update && sudo apt-get install libopencv-dev</code> |
| + | |
| + | <code>sudo apt-get install python-opencv</code> |
| + | |
| + | ===== SDK ===== |
| + | |
| + | * 接口: |
| + | |
| + | 开放源码,详见D_mipicam.h |
| + | |
| + | * 编译: |
| + | |
| + | <code>./build</code> |
| + | |
| + | * 安装: |
| + | |
| + | <code>sudo install -m 644 ./libdmipicam.so /usr/lib/</code> |
| + | |
| + | ===== C sample ===== |
| + | |
| + | * preview |
| + | |
| + | 实现实时视频预览 |
| + | |
| + | * preview-dualcam |
| + | |
| + | 实现两路摄像头同时视频预览(RPI CM) |
| + | |
| + | * video |
| + | |
| + | 视频压缩为H.264并保存为文件 |
| + | |
| + | * capture |
| + | |
| + | 抓拍一张jpeg图片 |
| + | |
| + | * video2stdout |
| + | |
| + | 视频压缩并输出到stdout为管道应用服务,如下命令,可达到与veye_raspivid命令类似的效果。 |
| + | |
| + | <code>./video2stdout | nc -l -p 5000</code> |
| + | |
| + | * capture_yuv |
| + | |
| + | 抓拍一张YUV图片 |
| + | |
| + | * capture-dualcam |
| + | |
| + | 两路摄像头同时抓拍jpeg图片 |
| + | |
| + | * yuv_stream |
| + | |
| + | 导出yuv格式的原始数据 |
| + | |
| + | * capture2opencv |
| + | |
| + | 连续获取YUV数据并转为opencv格式,显示。 |
| + | |
| + | * qrcode_detection |
| + | |
| + | 连续抓拍YUV数据并转为opencv格式,显示,并进行二维码检测。 |
| + | |
| + | ===== Python sample ===== |
| + | |
| + | * preview.py |
| + | |
| + | 实现实时视频预览 |
| + | |
| + | * capture.py |
| + | |
| + | 抓拍一张jpeg图片 |
| + | |
| + | * capture_yuv.py |
| + | |
| + | 抓拍一张yuv图片 |
| + | |
| + | * video.py |
| + | |
| + | 视频压缩为H.264并保存为文件 |
| + | |
| + | * capture2opencv.py |
| + | |
| + | 连续获取YUV数据并转为opencv格式,显示。 |
| ===视频控制软件包使用=== | | ===视频控制软件包使用=== |
| 由于树莓派的I2C-0作为GPU所用,为了避免冲突,我们使用I2C-1作为控制总线。我们提供了一个脚本camera_i2c_config进行总线的管脚复用配置。 | | 由于树莓派的I2C-0作为GPU所用,为了避免冲突,我们使用I2C-1作为控制总线。我们提供了一个脚本camera_i2c_config进行总线的管脚复用配置。 |