网站首页 > 技术教程 正文
项目中的需求是从摄像头中定期获取帧,转发到应用一侧做AI识别。选择了go1.18.3语言作为实现编程语言,gocv是opencv的go语言封装,其最终调用的还是opencv库。为了搭建开发环境,在网上找了很多资料都写得不是很详细,而且也很复杂。下面把我成功安装的经验分享给大家。
安装MinGW-w64
首先需要在windows10下安装gnu c/c++ 编译器,这里下载的是离线安装包。
下载地址
https://sourceforge.net/projects/mingw-w64/files/
下载离线包的版本 x86_64-posix-seh
下载之后解压缩并配置环境变量PATH
下载cmake
cmake是一个跨平台的构建工具。编译opencv时需要用到。
下载gocv@v0.31.0依赖
go get -u -d gocv.io/x/gocv@v0.31.0
gocv@v0.31.0 配套的opencv版本是 opencv4.6.0
下载opencv 4.6.0源代码
http://opencv.org/releases/
下载后解压缩,后面用于编译出opencv_ffmpeg460_64.dll库
执行gocv目录下的脚本
cd到路径$GOPATH/pkg/mod/gocv.io/x/gocv@v0.31.0,执行脚本
win_build_opencv.cmd
这个脚本执行的操作内容有下载opencv4.6.0.zip,opencv_contrib-4.6.0.zip两个压缩包,,执行cmake命令,make,make install。这里主要用到了前面提到的cmake和MinGW-w64软件包。命令成功执行后,添加以下目录到PATH环境变量
C:\opencv\build\install\x64\mingw\bin
之后在$GOPATH/pkg/mod/gocv.io/x/gocv@v0.31.0目录下运行测试程序
go run cmd/version/main.go
使用opencv打开rtsp视频流
完成以上操作后,还不能打开rtsp的视频流。需要opencv_ffmpeg460_64.dll库的支持。接下来使用vs2017编译出opencv_ffmpeg460_64.dll。
运行cmake-gui
配置源代码路径和build路径。Configure之后的描述中这里一定不能是NO
之后点击Generate按钮,生成Visual Studio 15 2017项目。
之后Open Project
按ALL_BUILD,INSTALL的顺序生成
在Configure过程中,有几个文件需要下载
ippicv_2020_win_intel64_20191018_general.zip
opencv_videoio_ffmpeg.dll
opencv_videoio_ffmpeg_64.dll
ffmpeg_version.cmake
以上步骤执行成功后,会编译出这个文件
opencv_videoio_ffmpeg460_64.dll
将此文件copy到步骤五编译出的bin目录下,之后就可以使用golang编码了。
代码测试
我使用的测试地址是
rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mp4
Linux环境的配置也可以按照这个思路。
参考内容:
https://sourceforge.net/projects/mingw-w64/files/
https://cmake.org/download/
https://opencv.org/releases
https://gocv.io/getting-started/windows/
https://pkg.go.dev/gocv.io/x/gocv
- 上一篇: 如何正确的使用开源物联网系统 - MIVMS
- 下一篇: 使用OBS搭建更多的贵州榕江村超视频直播点位
猜你喜欢
- 2024-11-24 2023-04-21:用go语言重写ffmpeg的metadata.c示例。
- 2024-11-24 Ubuntu20编译FFmpeg4(非常简单)
- 2024-11-24 基于 FFmpeg 的播放器 demo
- 2024-11-24 2023-02-22:请用go语言调用ffmpeg,保存mp4文件的视频帧,每帧
- 2024-11-24 2023-02-25:请用go语言调用ffmpeg,解码mp4文件并保存为YUV420S
- 2024-11-24 2023-02-24:请用go语言调用ffmpeg,解码mp4文件并保存为YUV420S
- 2024-11-24 2023-02-21:请用go语言调用ffmpeg,解码mp4文件,输出视频信息
- 2024-11-24 搭载Android11的ZidooM6预览版
- 2024-11-24 2023-03-21:音视频解混合(demuxer)为MP3和H264,用go语言编写
- 2024-11-24 3分钟快速实现Flutter当中播放视频方案 支持Android iOS 通用
你 发表评论:
欢迎- 最近发表
-
- Win10 TH2正式版官方ESD映像转换ISO镜像方法详解
- 使用iso镜像升级到Windows 10的步骤
- macOS Ventura 13.2 (22D49) Boot ISO 原版可引导镜像
- 安利一个用ISO镜像文件制作引导U盘的的小工具RUFUS
- CentOS 7使用ISO镜像配置本地yum源
- 用于x86平台的安卓9.0 ISO镜像发布下载:通吃I/A/N、完全免费
- AlmaLinux 9.6发布:升级工具、初步支持IBM Power虚拟化技术
- Rufus写入工具简洁介绍与教程(写入模式)
- 新硬件也能安装使用了,Edge版Linux Mint 21.3镜像发布
- 开源工程师:Ubuntu应该抛弃32位ISO镜像
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)