当前位置: 首页 > news >正文

GBase 8a之视频数据存取demo

概述

在GBase8a数据库(gbase database)中视频文件如何导入,以及如何读取视频文件并播放。

实现步骤

(1)建表

CREATE TABLE "vtest" ( "v_name" varchar(50) DEFAULT NULL, "v_data" longblob ) ; 注意: longblob类型,目前最大支持64MB的存储空间

(2)视频文件数据导入数据库

gbase> INSERT INTO vtest (v_name, v_data) VALUES ('1.mp4', LOAD_FILE('/home/gbase/1.mp4') ); Query OK, 1 row affected (Elapsed: 00:00:00.21)

(3)从数据库中读取视频文件并播放

def read_video_from_mysql(host, user, password, db, table, video_name, port): try: conn = pymysql.connect( host=host, user=user, password=******, database=db, port=port, charset='utf8mb4' ) cursor = conn.cursor() sql = f"SELECT v_data FROM {table} WHERE v_name = %s" cursor.execute(sql, (video_name,)) result = cursor.fetchone() if not result or not result[0]: print("未找到对应的视频数据!") return video_blob = result[0] with tempfile.NamedTemporaryFile(suffix='.mp4', delete=False) as temp_file: temp_file.write(video_blob) temp_file_path = temp_file.name cap = cv2.VideoCapture(temp_file_path) if not cap.isOpened(): print("无法打开视频文件!") os.unlink(temp_file_path) return while cap.isOpened(): ret, frame = cap.read() if ret: cv2.imshow('Video from GBASE', frame) if cv2.waitKey(25) & 0xFF == ord('q'): break else: break cap.release() cv2.destroyAllWindows() os.unlink(temp_file_path) except pymysql.MySQLError as e: print(f"数据库操作错误:{e}") except Exception as e: print(f"程序执行错误:{e}") finally: if 'cursor' in locals(): cursor.close() if 'conn' in locals(): conn.close() if __name__ == "__main__": read_video_from_mysql( host="192.168.56.101", user="gbase", password="******", db="vc_a.test", table="vtest", video_name="1.mp4", port=5258 )

(4)验证执行播放效果

视频信息可以正常播放

http://www.jsqmd.com/news/1108680/

相关文章:

  • CVE-2023-29552漏洞修复实战:SLP协议拒绝服务漏洞原理与防护
  • 一站式 AI 电商内容生产工具易元 AI 详解:素材管理、视频脚本、信息流营销一体化解决方案
  • GPU加速创意革命:MediaPipe TouchDesigner插件如何突破实时视觉交互的边界
  • 基于HFish蜜罐与Python构建自动化威胁情报源实战指南
  • 花了三天时间,我把市面上4款网页转Figma工具全测了一遍
  • 公共安全展馆设备【触电救助体验系统】
  • 为什么1V输入,LED就是不亮?
  • 办公自动化工具 OpenClaw |Windows 与 Mac 双端部署实操手册
  • Sunshine游戏串流服务器深度解析:5大架构设计与性能优化策略
  • 3步实现游戏参数自由调整:开源增强工具全攻略
  • MediaPipe TouchDesigner插件终极指南:5步打造GPU加速视觉交互应用
  • 终极视频字幕去除指南:5分钟学会AI自动去除硬字幕
  • 上海章动厂二代接班,如何在行业中获得认可?
  • 内网环境Python Playwright自动化测试离线部署实战指南
  • 终极Steam创意工坊下载指南:WorkshopDL轻松获取1000+游戏模组
  • 公共安全教育展厅设备【艾滋病演变软件】
  • MIC1557与PIC18F4458构建高精度可调定时系统
  • KMX63与PIC32MX795F512L实现现代HMI手势交互设计
  • 网盘直链解析工具:九大平台下载地址一键获取终极指南
  • Beyond Compare 5终极激活指南:3步完成永久授权密钥生成
  • 基于STM32单片机的温度控制系统(Proteus仿真+Keil源码+设计文档)DS18B20 附下载链接!
  • KMX63与STM32L162ZE在HMI设计中的低功耗手势控制方案
  • 技术揭秘:Wand-Enhancer如何通过本地化改造重塑WeMod用户体验
  • 高德地图商户通对本地商家的获客价值,不止是“占个位置”这么简单
  • 传统SEO和品牌GEO内容策略到底有什么区别?营销人一张表看懂
  • 给比赛开个“外挂”:如何设计让人尖叫的知识竞赛锦囊?
  • 缓存方案选型_为什么企业级首选阿里云Tair而非自建Redis
  • 原神帧率解锁指南:突破60帧限制的完美解决方案
  • AD74413R与PIC18F85J50的高精度工业信号处理方案
  • 华弘数科获数千万融资,全液冷边端侧算力产品效能提升39%开辟新赛道