开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 5707|回复: 60
收起左侧

[易语言软件开源] USB摄像头控制软件

[复制链接]
发表于 2022-7-29 14:56:04 | 显示全部楼层 |阅读模式   江苏省苏州市
分享源码
界面截图:
是否带模块: 调用了模块
备注说明: -
本帖最后由 w793586737 于 2022-7-29 15:07 编辑

*USB摄像头 使用 VideoCapX 控件 以及 H.264编码器。 能使录像能力做到最优化!{:4_255:} 附件包含 VideoCapX 控件支持库 & VideoCapX说明 &H.264编码器 & e源码! 640*480可做到录制1分钟大约2M容量。
  
窗口程序集名保 留  保 留备 注
窗口程序集   
变量名类 型数组备 注
计次整数型  
月份日期文本型  
时间日期时间型  
录制逻辑型  

子程序名返回值类型公开备 注
__启动窗口_创建完毕  
变量名类 型静态数组备 注
i整数型 
o整数型 
编码器逻辑型 
默认摄像头文本型 
' 加载皮肤 (10)
存储位置 = 读配置项 (取运行目录 ()“\IP配置.ini”, “储存地址”, “地址”, )
组合框1.内容 = 存储位置
f = 读配置项 (取运行目录 ()“\IP配置.ini”, “签名”, “站点名称”, )
状态条1.置文本 (1, 存储位置)
如果真 (f = “”)
信息框 (“系统检测到您是新用户!快给软件取一个名称吧!”, 0, , )
载入 (窗口2, , )
结束 ()
如果 (VideoCapX1.GetVideoDeviceCount () = 0)
信息框 (“无视频输入源,请检查视频输入源!”, 0, “提示:”, 0)
结束 ()
默认摄像头 = 读配置项 (取运行目录 ()“\IP配置.ini”, “摄像头”, “默认”, “0”)
计次循环首 (VideoCapX1.GetVideoDeviceCount (), i)  ' 获取所有视频设备
当前视频设备.加入项目 (VideoCapX1.GetVideoDeviceName (i - 1), )
如果真 (到整数 (默认摄像头) = i - 1)
当前视频设备.现行选中项 = i - 1

计次循环尾 ()
计次循环首 (VideoCapX1.GetVideoCodecCount (), o)  ' 获取所有编码器
当前视频设备1.加入项目 (VideoCapX1.GetVideoCodecName (o - 1), )
调试输出 (VideoCapX1.GetVideoCodecName (o - 1))
如果真 (寻找文本 (VideoCapX1.GetVideoCodecName (o - 1), “x264vfw”, , ) ≠ -1)
当前视频设备1.现行选中项 = o - 1
编码器 = 真

计次循环尾 ()
如果真 (编码器 = )
信息框 (“尚未安装[x264vfw - H.264/MPEG-4 AVC codec]编码器,请安装后在使用!”, #警告图标, , )
结束 ()
摄像头初始化 ()
透明标签1.标题 = “ing”
编辑框1.获取焦点 ()
华侨_窗口特效_加载效果 (_启动窗口, 1, 33, 11)
华侨_加载皮肤_MACOSD白 ()
子程序名返回值类型公开备 注
摄像头初始化  
变量名类 型静态数组备 注
i整数型 
o整数型 
Camera_parameters变体型 
VideoCapX1.VideoDeviceIndex = 当前视频设备.现行选中项
' VideoCapX1.ServerQuality = 90  ' 图像质量
VideoCapX1.PreviewScale = 真
VideoCapX1.CaptureRate = 16  ' 设置捕获帧数
VideoCapX1.Connected = 真
VideoCapX1.Preview = 真
VideoCapX1.CaptureAudio =   ' 关闭音频采集
VideoCapX1.VideoCodecIndex = 当前视频设备1.现行选中项  ' 设置压缩
VideoCapX1.SetVideoFormat (640, 480)  ' 设置分辨率
_启动窗口.标题 = “camera:” + 当前视频设备.取项目文本 (当前视频设备.现行选中项)“ 640*480  16FPS ”“   Zip:” + 当前视频设备1.取项目文本 (当前视频设备1.现行选中项)
子程序名返回值类型公开备 注
_画质调节_被单击  
如果 (VideoCapX1.IsCapturing = )
信息框 (“请先结束录制在尝试!”, #警告图标, , )
VideoCapX1.ShowVideoSourceDlg ()

子程序名返回值类型公开备 注
开始录像  
变量名类 型静态数组备 注
录像逻辑型 
存储位置 = 组合框1.内容
如果 (存储位置 = “”)
信息框 (“您还没有设置视频存储地址,请设置!”, #询问图标, , )
高级选择夹1.现行子夹 = 1
如果 (文件是否存在 (存储位置))
如果 (编辑框1.内容 = “”)
信息框 (“请输入正确序列号!”, #警告图标, , )
月份日期 = 到文本 (取年份 (取现行时间 ()))“-”到文本 (取月份 (取现行时间 ()))
如果真 (文件是否存在 (存储位置 + “\” + 月份日期))
创建目录 (存储位置 + “\” + 月份日期)
判断是否成功 = 文本转换 (编辑框1.内容)“_” + f + “_”到文本 (取现行时间 ()) + “.avi”
水印SN = “  /  ” + 编辑框1.内容
VideoCapX1.CapFilename = 存储位置 + “\” + 月份日期 + “\” + 判断是否成功
录像 = VideoCapX1.StartCapture ()
如果 (录像 = )
连续赋值 (真, 编辑框1.禁止, 按钮1.禁止, 录制, 图片框1.播放动画, 视频设置1.禁止, 视频设置2.禁止, 视频设置.禁止, 分组框2.禁止, 分组框3.禁止)
计时 =   ' 开始计时
透明标签1.文本颜色 = #蓝色
连续赋值 (0, 计时_S, 计时_M, 计时_H)  ' 计时时间初始0
结束录像.禁止 = 假
信息框 (“无效编码器,请重新选择编码器!”, #警告图标, , )


信息框 (“无效存储地址!,请确认” + 存储位置 + “是否存在!”, #警告图标, , )


子程序名返回值类型公开备 注
文本转换文本型 
参数名类 型参考可空数组备 注
原数据文本型
变量名类 型静态数组备 注
i整数型 
输出数据文本型 
出现次数整数型 
出现次数 = 文本_取出现次数 (原数据, “/”)
如果 (出现次数 > 0)
输出数据 = 原数据
计次循环首 (出现次数, i)
输出数据 = 文本替换 (输出数据, 寻找文本 (输出数据, “/”, , ), 1, “-”)
计次循环尾 ()
输出数据 = 原数据
调试输出 (输出数据)
返回 (输出数据)
子程序名返回值类型公开备 注
结束录像  
变量名类 型静态数组备 注
大小双精度小数型GB
局_索引整数型 
表格数量整数型 
VideoCapX1.StopCapture ()
大小 = VideoCapX1.GetCapFileSize () ÷ 1000000
如果 (文件是否存在 (存储位置 + “\” + 月份日期 + “\” + 判断是否成功) 大小 > 0)
局_索引 = 获取_列表框.插入表项 (, , , , , )
表格数量 = 获取_列表框.取表项数 ()
获取_列表框.置标题 (局_索引, 0, 到文本 (表格数量))
获取_列表框.置标题 (局_索引, 1, 删首尾空 (编辑框1.内容))
获取_列表框.置标题 (局_索引, 2, 存储位置 + “\” + 月份日期 + “\” + 判断是否成功)
获取_列表框.置标题 (局_索引, 3, 到文本 (取整 (计时_H)) + “:”到文本 (取整 (计时_M)) + “:”到文本 (取整 (计时_S)))
获取_列表框.置标题 (局_索引, 4, 取文本左边 (到文本 (大小), 4))
获取_列表框.保证显示 (表格数量 - 1)
获取_列表框.选择表项 (表格数量 - 1)
编辑框1.内容 = “”
编辑框1.获取焦点 ()
计时 = 假
水印SN = “”
透明标签1.文本颜色 = #绿色
透明标签1.标题 = “PASS”
计时 = 假
透明标签1.文本颜色 = #红色
透明标签1.标题 = “FALL”
连续赋值 (假, 编辑框1.禁止, 按钮1.禁止, 录制, 图片框1.播放动画, 视频设置1.禁止, 视频设置2.禁止, 视频设置.禁止, 分组框2.禁止, 分组框3.禁止)
编辑框1.获取焦点 ()
结束录像.禁止 = 真
状态条1.置文本 (3, “视频已拍摄完毕”)
子程序名返回值类型公开备 注
_结束录像_被单击  
结束录像 ()
子程序名返回值类型公开备 注
_时钟2_周期事件  
VideoCapX1.SetTextOverlay (1, 时间处理 () + 水印SN, 0, 0, “雅黑”, 16, 2500351, 13487565)  ' 添加水印
如果真 (计时 = )
计时_S = 计时_S + 1
如果真 (计时_S ≥ 60)
计时_S = 0
计时_M = 计时_M + 1
如果真 (计时_M ≥ 60)
计时_M = 0
计时_H = 计时_H + 1

透明标签1.标题 = 到文本 (取整 (计时_H)) + “:”到文本 (取整 (计时_M)) + “:”到文本 (取整 (计时_S))

子程序名返回值类型公开备 注
时间处理文本型 XXXX-XX-XX XX:XX:XX
变量名类 型静态数组备 注
SJ文本型 
aa日期时间型 
aa = 取现行时间 ()
SJ = 到文本 (取年份 (aa)) + “-”到文本 (取月份 (aa)) + “-”到文本 (取日 (aa)) + “  ”到文本 (取小时 (aa)) + “:”到文本 (取分钟 (aa)) + “:”到文本 (取秒 (aa))
返回 (SJ)
子程序名返回值类型公开备 注
_按钮1_被单击 
开始录像 ()
子程序名返回值类型公开备 注
_视频格式_被单击  
如果 (VideoCapX1.IsCapturing = )
信息框 (“请先结束录制在尝试!”, #警告图标, , )
VideoCapX1.ShowVideoFormatDlg ()

子程序名返回值类型公开备 注
_编辑框1_按下某键逻辑型 
参数名类 型参考可空数组备 注
键代码整数型
功能键状态整数型
如果真 (键代码 = #回车键 )
开始录像 ()

子程序名返回值类型公开备 注
_按钮2_被单击  
变量名类 型静态数组备 注
地址文本型 
如果 (VideoCapX1.IsCapturing = )
信息框 (“请先结束录制在尝试!”, #警告图标, , )
地址 = 浏览文件夹 (“设置储存地址”, )
如果真 (地址 ≠ “”)
如果 (写配置项 (取运行目录 ()“\IP配置.ini”, “储存地址”, “地址”, 地址))
信息框 (“保存失败,请稍后再试!”, #警告图标, , )
组合框1.内容 = 地址
提示框 (“保存成功!”)



子程序名返回值类型公开备 注
_按钮3_被单击  
网页_打开指定网址 (“http://wpa.qq.com/msgrd?v=3&uin=793586737”)
子程序名返回值类型公开备 注
_画质_被单击  
如果 (VideoCapX1.IsCapturing = )
信息框 (“请先结束录制在尝试!”, #警告图标, , )
VideoCapX1.ShowVideoCodecDlg ()

子程序名返回值类型公开备 注
_编辑框1_放开某键逻辑型 
参数名类 型参考可空数组备 注
键代码整数型
功能键状态整数型
如果真 (键代码 = #回车键 )
_按钮1_被单击 ()

子程序名返回值类型公开备 注
__启动窗口_将被销毁  
VideoCapX1.StopCapture ()
子程序名返回值类型公开备 注
_当前视频设备_列表项被选择  
写配置项 (取运行目录 ()“\IP配置.ini”, “摄像头”, “默认”, 到文本 (当前视频设备.现行选中项))
摄像头初始化 ()
子程序名返回值类型公开备 注
_当前视频设备1_列表项被选择  
' VideoCapX1.VideoCodecIndex = 当前视频设备1.现行选中项  ' 设置压缩
摄像头初始化 ()
子程序名返回值类型公开备 注
_获取_列表框_右键单击表项  
如果真 (获取_列表框.现行选中项 ≠ -1)
弹出菜单 (打开, 取鼠标水平位置 (), 取鼠标垂直位置 ())

子程序名返回值类型公开备 注
_预览_被选择  
变量名类 型静态数组备 注
文件地址文本型 
文件地址 = 获取_列表框.取标题 (获取_列表框.现行选中项, 2)
执行 (4, 文件地址, , , )
子程序名返回值类型公开备 注
_删除_被选择  
变量名类 型静态数组备 注
文件地址文本型 
文件地址 = 获取_列表框.取标题 (获取_列表框.现行选中项, 2)
如果真 (信息框 (“确定删除[” + 文件地址 + “]吗?请谨慎操作!”, #是否钮, “警告”, )#是钮 )
如果 (删除文件 (文件地址))
获取_列表框.删除表项 (获取_列表框.现行选中项)
信息框 (“删除失败!”, #警告图标, , )


子程序名返回值类型公开备 注
_VideoCapX1_DeviceLost  
如果真 (录制 = )
结束录像 ()
信息框 (“摄像头已拔出!”, #警告图标, , )
子程序名返回值类型公开备 注
_文件夹_被选择  
执行 (4,


i支持库列表   支持库注释   
iext扩展界面支持库一
videocapx(未知支持库)
spec特殊功能支持库
iext3扩展界面支持库三
shell操作系统界面功能支持库


      

videocapx控件.zip

580.48 KB, 下载次数: 136, 下载积分: 精币 -2 枚

支持库

e源码.zip

2.3 MB, 下载次数: 144, 下载积分: 精币 -2 枚

源码

x264vfw_full_44_2851bm_44825.zip

2.25 MB, 下载次数: 118, 下载积分: 精币 -2 枚

H.264编码器

2.png

评分

参与人数 3好评 +2 精币 +5 收起 理由
易语言资源网 + 1 + 3 开源精神必须支持~
初学易语言 + 1 开源精神必须支持~
kyo9766 + 2 感谢分享,很给力!~

查看全部评分


本帖被以下淘专辑推荐:

  • · 鱼木|主题: 1489, 订阅: 144
结帖率:40% (2/5)

签到天数: 6 天

发表于 2024-3-8 16:22:15 高大上手机用户 | 显示全部楼层   浙江省宁波市
录4k视频可以录吗
回复 支持 反对

使用道具 举报

结帖率:67% (2/3)
发表于 2024-1-31 17:21:47 | 显示全部楼层   重庆市重庆市

谢谢分享
回复 支持 反对

使用道具 举报

签到天数: 4 天

发表于 2024-1-31 17:19:11 | 显示全部楼层   辽宁省大连市

支持一下,支持一下。
回复 支持 反对

使用道具 举报

发表于 2023-12-6 11:21:23 | 显示全部楼层   四川省成都市

下来看看  一会儿评论
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)

签到天数: 4 天

发表于 2023-10-17 23:06:02 | 显示全部楼层   河南省济源市
谢谢分享
回复 支持 反对

使用道具 举报

发表于 2023-9-18 13:42:48 | 显示全部楼层   辽宁省大连市
感谢分享
回复 支持 反对

使用道具 举报

发表于 2023-8-24 11:28:52 | 显示全部楼层   浙江省杭州市
学习学习
回复 支持 反对

使用道具 举报

结帖率:97% (138/143)

签到天数: 14 天

发表于 2023-8-4 15:01:03 | 显示全部楼层   江苏省苏州市
学习学习
回复 支持 反对

使用道具 举报

签到天数: 1 天

发表于 2023-6-23 12:52:32 | 显示全部楼层   江苏省苏州市
谢谢!!!!!!!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表