碰一碰发视频一键成片功能开发实践与技术解析
在数字化营销与内容传播领域,碰一碰发视频技术凭借便捷的交互体验,已成为实体商业引流的重要手段。而一键成片功能的融入,能够让用户在触碰 NFC 标签后,快速获取高质量的视频内容,进一步提升传播效率。本文将从功能需求分析、技术架构设计到核心模块实现,全面解析碰一碰发视频一键成片功能的开发过程。
一、功能需求分析
(一)核心需求
- 快速生成视频:用户触碰 NFC 标签后,系统能在短时间内生成完整视频,无需复杂的手动编辑操作。视频内容可根据预设模板或用户行为数据动态生成。
- 多样化模板支持:提供丰富的视频模板库,涵盖宣传推广、产品介绍、活动展示等多种场景,满足不同行业和用户的需求。用户也可以自定义模板,实现个性化的视频生成。
- 素材智能匹配:自动从素材库中筛选合适的图片、视频片段、音乐等素材,与模板进行智能匹配,确保生成的视频内容连贯、主题突出。
(二)拓展需求
- 用户数据联动:结合用户的历史触碰记录、浏览偏好等数据,生成更符合用户兴趣的视频内容,实现精准营销。
- 多平台适配:生成的视频能够适配不同的社交媒体平台和设备屏幕尺寸,如抖音、微信视频号、手机端和 PC 端等,保证视频在各平台的播放效果。
- 实时更新与推送:支持视频内容的实时更新,当有新的活动、产品信息时,用户触碰标签即可获取最新的视频。同时,可将生成的视频推送给特定用户群体,提高传播效果。
二、技术架构设计
(一)整体架构分层
一键成片功能基于碰一碰发视频系统,采用分层架构设计,主要分为用户交互层、业务逻辑层、数据处理层和基础设施层。
- 用户交互层:负责与用户进行交互,通过 NFC 标签触发一键成片功能,在前端展示视频生成进度和最终视频。使用 HTML5、CSS3 和 JavaScript 技术实现交互界面,结合移动端适配技术,确保在手机、平板等设备上的良好体验。
- 业务逻辑层:处理一键成片的核心业务逻辑,包括模板管理、素材匹配、视频生成等功能。采用微服务架构,将不同功能模块独立部署,提高系统的可扩展性和稳定性。例如,模板管理微服务负责模板的创建、编辑、删除和查询;视频生成微服务根据模板和素材生成最终视频。
- 数据处理层:负责数据的存储、处理和分析。使用关系型数据库(如 MySQL、PostgreSQL)存储模板信息、用户数据、素材元数据等结构化数据;非关系型数据库(如 MongoDB)存储视频素材、用户上传文件等非结构化数据。利用大数据处理技术(如 Hadoop、Spark)对用户行为数据进行分析,为智能推荐提供数据支持。
- 基础设施层:提供系统运行所需的基础资源,包括服务器、网络、云计算资源等。采用容器化技术(如 Docker)和容器编排工具(如 Kubernetes)实现服务的高效部署和弹性扩展,确保在高并发情况下系统的稳定运行。同时,部署 CDN(内容分发网络)加速视频素材的加载,提升用户体验。
(二)模块划分与交互
系统主要包括NFC 触发模块、模板管理模块、素材库模块、视频生成模块和智能推荐模块,各模块之间通过 API 接口进行交互。
- NFC 触发模块:负责检测用户触碰 NFC 标签的动作,获取标签携带的信息(如视频生成规则、用户标识等),并将信息传递给业务逻辑层,触发一键成片流程。
- 模板管理模块:管理视频模板库,包括模板的创建、编辑、删除、分类和检索。提供模板可视化编辑功能,允许用户自定义模板的布局、样式、动画效果等。同时,将模板信息同步给视频生成模块,作为视频生成的基础框架。
- 素材库模块:存储和管理图片、视频片段、音乐、字幕等素材资源。对素材进行分类、标签化管理,方便素材的检索和匹配。根据业务逻辑层的请求,提供相应的素材资源给视频生成模块。
- 视频生成模块:是一键成片功能的核心模块,接收模板信息和素材资源,使用视频编辑库(如 FFmpeg、OpenCV)进行视频合成。根据模板的布局和动画效果,将素材进行剪辑、拼接、添加特效和字幕等处理,生成最终的视频文件。
- 智能推荐模块:分析用户的历史触碰记录、浏览行为、兴趣偏好等数据,使用推荐算法(如协同过滤算法、基于内容的推荐算法)为用户推荐合适的模板和素材。同时,根据不同的场景和用户群体,动态调整推荐策略,提高视频生成的质量和用户满意度。
三、核心功能实现
(一)模板管理功能
- 模板创建与编辑:在前端使用可视化编辑工具(如 React - Draggable、Vue - Draggable)实现模板的可视化创建和编辑。用户可以通过拖拽、拉伸等操作添加和调整视频元素(如图片、视频、文本框)的位置和大小,设置元素的样式(如颜色、字体、透明度)和动画效果(如淡入淡出、缩放、平移)。在后端使用数据库存储模板的结构信息和样式参数,以 JSON 格式保存模板数据:
{
"template_id": "1",
"template_name": "产品宣传模板",
"description": "适用于产品推广的视频模板",
"elements": [
{
"type": "image",
"src": "https://example.com/product1.jpg",
"x": 100,
"y": 100,
"width": 200,
"height": 200,
"style": {
"opacity": 0.8,
"borderRadius": "10px"
},
"animation": {
"type": "fadeIn",
"duration": "1s",
"delay": "0.5s"
}
},
{
"type": "text",
"content": "优质产品,值得拥有",
"x": 350,
"y": 150,
"fontSize": "24px",
"color": "#000000",
"style": {
"textAlign": "center"
},
"animation": {
"type": "scaleIn",
"duration": "1s",
"delay": "1s"
}
}
]
}
- 模板检索与推荐:在后端使用 Elasticsearch 构建模板检索引擎,对模板的名称、描述、标签等信息进行全文检索。同时,结合智能推荐模块的结果,为用户推荐热门模板和符合用户需求的模板。在前端展示模板列表时,使用分页加载和懒加载技术,提高页面加载速度。
(二)素材匹配功能
- 素材分类与标签化:在素材库模块中,对素材进行分类(如图片分为产品图、风景图、人物图等;视频片段分为开场动画、产品演示、活动现场等;音乐分为欢快、抒情、激昂等),并为每个素材添加标签(如关键词、主题、适用场景等)。使用数据库的索引和查询优化技术,提高素材检索效率。
- 智能匹配算法:根据模板的主题、风格和用户需求,使用基于规则和机器学习的混合算法进行素材匹配。例如,对于一个产品宣传模板,优先选择与产品相关的图片和视频片段,同时根据模板的风格选择合适的音乐。基于规则的算法可以设置一些简单的匹配条件,如模板类型与素材分类的对应关系;机器学习算法可以通过分析历史生成数据,学习用户的偏好和素材的匹配模式,提高匹配的准确性。以下是一个简单的基于规则的素材匹配 Python 示例代码:
def match_images(template_type, image_list):
matched_images = []
if template_type == "产品宣传":
for image in image_list:
if "产品" in image.tags:
matched_images.append(image)
return matched_images
def match_videos(template_type, video_list):
matched_videos = []
if template_type == "活动展示":
for video in video_list:
if "活动" in video.tags:
matched_videos.append(video)
return matched_videos
def match_music(template_type, music_list):
matched_music = []
if template_type == "欢快风格":
for music in music_list:
if "欢快" in music.tags:
matched_music.append(music)
return matched_music
(三)视频生成功能
- 视频合成:使用 FFmpeg 库进行视频合成,在 Python 中调用 FFmpeg 命令行接口实现视频剪辑、拼接、添加音频和字幕等操作。以下是一个简单的视频合成 Python 示例代码:
import subprocess
# 视频片段列表
video_clips = ["clip1.mp4", "clip2.mp4", "clip3.mp4"]
# 拼接视频片段
input_files = "|".join(video_clips)
subprocess.call([
'ffmpeg',
'-i', f"concat:{input_files}",
'-c', 'copy',
'output_video.mp4'
])
# 添加音频
subprocess.call([
'ffmpeg',
'-i', 'output_video.mp4',
'-i','music.mp3',
'-c:v', 'copy',
'-c:a', 'aac',
'-strict', 'experimental',
'final_video.mp4'
])
# 添加字幕
subprocess.call([
'ffmpeg',
'-i', 'final_video.mp4',
'-vf', "subtitles=subtitles.srt",
'final_with_subtitles.mp4'
])
- 视频格式转换与优化:根据不同平台的要求,对生成的视频进行格式转换和优化。例如,将视频转换为 MP4 格式,调整视频分辨率、帧率、码率等参数,确保视频在各平台的兼容性和播放质量。使用 FFmpeg 库可以方便地实现视频格式转换和参数调整:
subprocess.call([
'ffmpeg',
'-i', 'original_video.mp4',
'-s', '1920x1080', # 设置分辨率
'-r', '30', # 设置帧率
'-b:v', '2M', # 设置视频码率
'-c:v', 'libx264',
'-preset','slow',
'-crf', '28',
'optimized_video.mp4'
])
四、性能优化与安全保障
(一)性能优化
- 素材缓存与预加载:在前端和后端设置素材缓存机制,将常用的素材和模板缓存到本地或内存中,减少重复的网络请求和数据库查询。同时,对可能用到的素材进行预加载,提高视频生成速度。
- 视频生成并行处理:利用多线程或多进程技术,对视频生成过程中的不同任务(如素材剪辑、音频添加、字幕渲染)进行并行处理,缩短视频生成时间。在 Python 中可以使用multiprocessing库实现多进程处理:
import multiprocessing
def process_clip(clip_path):
# 对单个视频片段进行剪辑处理
#...
return processed_clip_path
if __name__ == '__main__':
video_clips = ["clip1.mp4", "clip2.mp4", "clip3.mp4"]
pool = multiprocessing.Pool(processes=3)
processed_clips = pool.map(process_clip, video_clips)
pool.close()
pool.join()
# 继续进行视频合成
- CDN 加速:将视频素材和生成的视频文件存储在 CDN 上,通过 CDN 的节点缓存和分发功能,加速视频的加载和播放,减少用户等待时间。
(二)安全保障
- 素材版权管理:建立严格的素材版权审核机制,确保使用的素材具有合法的版权。对用户上传的素材进行版权验证,避免侵权行为。同时,与正版素材供应商合作,提供合法的素材资源。
- 数据安全保护:对用户数据和视频内容进行加密存储和传输,防止数据泄露和篡改。采用 SSL/TLS 协议保障网络通信安全,使用 AES 等加密算法对敏感数据进行加密。
- 系统安全防护:定期对系统进行安全漏洞扫描和修复,防止黑客攻击和恶意入侵。设置访问权限控制,限制用户对敏感功能和数据的访问,确保系统的安全性。
碰一碰发视频一键成片功能的开发,通过合理的需求分析、技术架构设计和核心功能实现,能够为用户提供便捷、高效的视频生成体验。在开发过程中,注重性能优化和安全保障,有助于提升系统的稳定性和用户满意度。随着技术的不断发展,该功能还可以进一步拓展和完善,为数字化营销和内容传播带来更多的可能性。
相关文章:
碰一碰发视频一键成片功能开发实践与技术解析
在数字化营销与内容传播领域,碰一碰发视频技术凭借便捷的交互体验,已成为实体商业引流的重要手段。而一键成片功能的融入,能够让用户在触碰 NFC 标签后,快速获取高质量的视频内容,进一步提升传播效率。本文将从功能需求…...
【CTFer成长之路】举足轻重的信息搜集
举足轻重的信息搜集 信息搜集 常见的搜集 题目描述: 一共3部分flag docker-compose.yml version: 3.2services:web:image: registry.cn-hangzhou.aliyuncs.com/n1book/web-information-backk:latestports:- 80:80启动方式 docker-compose up -d 题目Flag n1book{info_…...
centos搭建dokcer和vulhub
1、换源阿里云 2、安装docker与docker-compose 下载1.29.2 docker compose sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 如果下载不了,可以…...
Linux系统下使用Kafka和Zookeeper
Apache Kafka 是一个分布式流处理平台,最初由 LinkedIn 开发,后来成为 Apache 软件基金会的顶级项目。它具有高吞吐量、可扩展性、持久性、容错性等特点,主要用于处理实时数据流。 Linux系统下使用Kafka 1.安装 Java Kafka 和 Zookeeper 都是基于 Java 开发的,所以需要先…...
vscode与keil的乱码不兼容问题
都用英文注释 中文注释的话,打开vscode的自动识别格式,如下 解决VSCode中文乱码 自动识别也可以设置识别优先级,把GB2312和UTF8排在自动识别序列前面(因为keil默认就是GB2312) 4.!!!在暂存更改的时候,不要把vscode的设置给暂存了ÿ…...
C++类和对象:构造函数、析构函数、拷贝构造函数
引言 介绍:C类和对象:构造函数、析构函数、拷贝构造函数 _涂色_博主主页 C基础专栏 一、类的默认成员函数 先认识一下类中的默认成员函数: 默认成员函数就是用户没有显式实现,编译器会自动生成的成员函数称为默认成员函数。⼀个类…...
【FAQ】HarmonyOS SDK 闭源开放能力 — PDF Kit
1.问题描述: 预览PDF文件,文档上所描述的loadDocument接口,可以返回文件的状态,并无法实现PDF的预览,是否有能预览PDF相关接口? 解决方案: 1、执行loadDocument进行加载PDF文件后,…...
Spring Boot 3 + Undertow 服务器优化配置
优化背景 当你的application需要支持瞬时高并发的时候,tomcat已经不在是最优的选择,我们可以改为Undertow,并对其进行优化。 Undertow 是一个轻量级的、高性能的Java Web 服务器,由JBoss 开发并开源。它是基于非阻塞(…...
网易游戏 Flink 云原生实践
摘要:本文整理自网易游戏实时计算&数据湖平台负责人林小铂老师和网易游戏大数据开发工程师陈宇智老师,在Flink Forward Asia 2024 云原生专场的分享。主要分为四个部分: 1、背景 2、架构演进 3、实践挑战 4、总结和展望 01.背景 Flink 在…...
使用迁移学习的自动驾驶汽车信息物理系统安全策略
信息物理系统 (CPS) 是一种新兴系统,它通过信息通信基础设施,实现控制系统、传感器、执行器和周围环境等物理组件之间有效的实时通信与协作 (C&C)。自动驾驶汽车 (AV) 是大量采用 CPS 方法的领域之一,旨在通过降低能源消耗和空气污染来改善智慧城市中的人们生活。因此,…...
《算法导论(第4版)》阅读笔记:p11-p13
《算法导论(第4版)》学习第 8 天,p11-p13 总结,总计 3 页。 一、技术总结 无。 二、英语总结(生词:2) 1.precious (1)precious: pretium(“value, worth, price”) adj. of great value(宝贵,珍贵)。 (2)示例 Computing t…...
Qt 编译 sqldrivers之psql
编译postgres pgsql驱动 下载驱动源码修改配置文件编译 下载驱动源码 // 源代码下载 https://download.qt.io/archive/qt/5.15/5.15.2/submodules/驱动目录:qtbase-everywhere-src-5.15.2\src\plugins\sqldrivers 修改配置文件 打开pro文件 右键点击添加库 此处的为debu…...
查看单元测试覆盖率
文章目录 1、POM文件配置2、编写单元测试3、执行单元测试4、查看单元测试覆盖率 1、POM文件配置 pom文件配置jacoco插件 <!-- 生成JaCoCo覆盖率数据插件 --> <plugin><groupId>org.jacoco</groupId><artifactId>jacoco-maven-plugin</artif…...
ASP.NET Core 中实现 Markdown 渲染中间件
文章目录 前言一、核心功能二、实现步骤1)安装依赖包2)创建中间件类3)中间件扩展方法4)在Program.cs配置5)模板文件示例6)*.md文件示例7)缓存优化8)使用示例 三、注意事项总结 前言 …...
AI学习路径
一、AI入门与系统课程 (1)《开启AI革命:7天从小白到大神》 简介:保姆级教学,覆盖AI基础知识、机器学习、深度学习、自然语言处理(NLP)、大语言模型(LLM)等,…...
基于Kubernetes的Apache Pulsar云原生架构解析与集群部署指南(下)
文章目录 k8s安装部署Pulsar集群前期准备版本要求 安装 Pulsar Helm chart管理pulsarClustersBrokersTopic k8s安装部署Pulsar集群 前期准备 版本要求 Kubernetes 集群,版本 1.14 或更高版本Helm v3(3.0.2 或更高版本)数据持久化ÿ…...
B站搜索关键词全攻略:掌握B站搜索关键词的运作机制
在拥有超过7亿月活用户的B站,每天都有海量视频涌入平台。无论是普通用户还是内容创作者,掌握B站搜索关键词的运作机制,都能极大提升平台体验和内容价值。本文将从用户和创作者双重视角,深入解析B站搜索关键词的应用技巧和优化策略…...
Windows系统安装Cursor与远程调用本地模型QWQ32B实现AI辅助开发
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
DBeaver查询PostgreSQL的只读模式
问题 DBeaver查询PostgreSQL数据表时,注意到经常会出现“Detect unique identifiers" 这个阶段,几乎需要花费10s时间,想着挺浪费时间的。 问题解决办法 把”读取数据表元数据(唯一键)"这个复选框选项去掉,再进行查询…...
C++内存管理与模板初阶详解:从原理到实践
目录: 一、C/C内存管理1. 内存区域划分2. 动态内存管理3. 底层原理:operator new/delete4.new和delete的实现原理5. 定位new(了解即可) 二、模板初阶1. 泛型编程2. 函数模板实例化隐式实例化:编译器自动推导类型显式实…...
02-GBase 8s 事务型数据库 客户端工具dbaccess
dbaccess概述 数据库产品通常会提供一个命令行客户端工具。 数据库厂商 命令行客户端 Oracle sqlplus MySQL mysql Marladb mysql GBase 8s dbaccess Kingbase ES ksql DM8 disql dbaccess 是 GBase 8s 数…...
【kubernetes】通过Sealos 命令行工具一键部署k8s集群
一、前言 1、sealos安装k8s集群官网:K8s > Quick-start > Deploy-kubernetes | Sealos Docs 2、本文安装的k8s版本为v1.28.9 3、以下是一些基本的安装要求: 每个集群节点应该有不同的主机名。主机名不要带下划线。所有节点的时间需要同步。需要…...
【Pandas】pandas DataFrame abs
Pandas2.2 DataFrame Computations descriptive stats 方法描述DataFrame.abs()用于返回 DataFrame 中每个元素的绝对值 pandas.DataFrame.abs() pandas.DataFrame.abs() 方法用于返回 DataFrame 中每个元素的绝对值。该方法适用于包含数值型数据的 DataFrame,对…...
如何在 C# 和 .NET 中打印 DataGrid
DataGrid 是 .NET 架构中一个功能极其丰富的组件,或许也是最复杂的组件之一。写这篇文章是为了回答“我到底该如何打印 DataGrid 及其内容”这个问题。最初即兴的建议是使用我的屏幕截图文章来截取表单,但这当然无法解决打印 DataGrid 中虚拟显示的无数行…...
使用DEEPSEEK快速修改QT创建的GUI
QT的GUI,本质上是使用XML进行描述的,在QT CREATOR的界面编辑处,按CTRL2 切换到代码视图,CTRL3切换到编辑器视图。 CTRL2 切换到代码视图 CTRL3 切换到编辑器视图 鼠标左键点击代码视图中,按CTRLA → CTRLC复制XML代码…...
前端面试宝典---JavaScript import 与 Node.js require 的区别
import 和 require 来自不同的规范: import 是 ES6(ECMAScript 2015)模块系统的一部分,是 JavaScript 语言的标准语法 require 是 CommonJS 规范的一部分,最初为 Node.js 环境设计 加载方式: require() …...
C++入门小馆 :多态
嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的pa…...
极简远程革命:打破公网桎梏,重塑数字生活新体验
简远程革命:节点小宝,让家庭与职场无缝互联 ——打破公网桎梏,重塑数字生活新体验 引言:当公网IP成为过去式 在2025年的今天,80%的家庭仍因缺乏公网IP而深陷远程访问困境。NAS玩家为端口映射焦头烂额,家长…...
Linux 网络管理 的实战代码示例
涵盖网络接口配置、连接测试、防火墙管理、数据包捕获、服务监控等核心场景。每个示例均附带详细注释和操作说明,帮助您深入理解 Linux 网络管理的实战技巧。 1. 网络接口配置与管理 1.1 使用 ip 命令管理网络接口 ip 是现代 Linux 系统中管理网络的主要工具,功能比 ifcon…...
OPCUA,OPCDA与MODBUS学习笔记
MODBUS与OPC之间的关系是什么? 前言 OPC协议(OLE for Process Control,即过程控制的OLE)是一种标准化的通信协议,旨在帮助不同厂商的设备、控制系统和软件之间进行数据交换。OPC协议的目标是提供一种统一的接口&…...
千星计划小程序开发方案
千星计划小程序开发方案 (基于2025年行业实践与系统需求) 一、核心功能架构 1.用户管理模块 用户分层管理:普通用户、达人、合伙人三级身份体系,支持身份升级审核与权限配置 实名认证与资质审核:对接公安系统…...
【RAG技术全景解读】从原理到工业级应用实践
目录 🌟 前言🏗️ 技术背景与价值🚨 当前技术痛点🛠️ 解决方案概述👥 目标读者说明 🔍 一、技术原理剖析📐 核心概念图解💡 核心作用讲解⚙️ 关键技术模块说明⚖️ 技术选型对比 &…...
20250508在WIN10下使用移远的4G模块EC200A-CN直接上网
1、在WIN10/11下安装驱动程序:Quectel_Windows_USB_DriverA_Customer_V1.1.13.zip 2、使用移远的专用串口工具:QCOM_V1.8.2.7z QCOM_V1.8.2_win64.exe 3、配置串口UART42/COM42【移远会自动生成连续三个串口,最小的那一个】 AT命令…...
室内无人机自主巡检解决方案-自主方案
室内无人机自主巡检解决方案-自主方案 AIBOX-基于离线地图的LIO室内3D空间位置服务...
SpringCloud服务拆分:Nacos服务注册中心 + LoadBalancer服务负载均衡使用
SpringCloud中Nacos服务注册中心 LoadBalancer服务负载均衡使用 前言Nacos工作流程nacos安装docker安装window安装 运行nacos微服务集成nacos高级特性1.服务集群配置方法效果图模拟服务实例宕机 2.权重配置3.环境隔离 如何启动集群节点本地启动多个节点方法 LoadBalancer集成L…...
视频编解码学习9之照相机历史
照相机的发展历史可以追溯到19世纪初,至今已有200多年。以下是照相机技术演进的主要阶段和里程碑: 1. 早期探索阶段(1820s-1880s) 1826年:法国人尼埃普斯(Nicphore Nipce)用沥青感光法拍摄《窗…...
物流无人机自动化装卸技术解析!
一、自动化装卸技术模块的技术难点 1. 货物多样性适配 物流场景中货物包装类型、尺寸、材质差异大,如农产品、医疗物资、工业设备等,要求装卸模块具备高度柔性化设计。例如,单元货物需视觉识别系统进行单个抓取,而整托货物需大…...
图形渲染+事件处理最终版
基于之前做的项目图形移动处理-CSDN博客添加了相机,透视投影,鼠标控制图形旋转。虽然个人感觉这个项目用的是一个二维的三角形,给他加透视投影和相机意义不大,因为透视投影是近大远小,我这个程序设置了放大缩小的限制&…...
前端三大件---CSS
目录 一、CSS 概述 二、引入 CSS 的三种方式 2.1 内联样式 2.2 内部样式表 2.3 外部样式表 三、CSS 选择器 3.1 ID 选择器 3.2 class 选择器 3.3 标签选择器 3.4 通配选择器 3.5 分组选择器 3.6 层级选择器 3.7 属性选择器 3.8 伪类选择器 3.9 同辈选择器 四、…...
蓝桥杯FPGA赛道第二次模拟题代码
一、顶层文件 module test( input wire sys_clk, input wire sys_rst, input wire [3:0]key_in, output reg [7:0]led,output wire scl, inout wire sda,//i2c的信号output wire [7:0]sel, output wire [7:0]seg//数码管的驱动 );wire [23:0] data ; reg [31:0] dsp_dat…...
keep the pipe Just full But no fuller - BBR 与尘封 40 年的求索
推荐一部短视频 Keep the pipe just full, but no fuller,作者就是大名鼎鼎的 L. Kleinrock,现代分组交换网的奠基人,这里有关于他这个人的介绍: https://www.lk.cs.ucla.edu/index.html https://en.wikipedia.org/wiki/Leonard…...
《React Native热更新实战:用Pushy打造无缝升级体验》
《React Native热更新实战:用Pushy打造应用“空中加油”,实现无缝升级体验》 写在前面:当你的APP需要"空中加油"时… 想象一下这样的场景:凌晨2点,你的React Native应用刚上线就爆出重大BUG,用户差评如潮水般涌来,应用商店审核至少需要3天…此刻你多么希望能…...
【开源解析】基于Python的智能文件备份工具开发实战:从定时备份到托盘监控
📁【开源解析】基于Python的智能文件备份工具开发实战:从定时备份到托盘监控 🌈 个人主页:创客白泽 - CSDN博客 🔥 系列专栏:🐍《Python开源项目实战》 💡 热爱不止于代码࿰…...
第四章:基于langchain构造一个完整RAG系统
文章目录 引言一、RAG的基本原理1.1 什么是RAG?1.2 RAG的应用场景 二、RAG系统的构建步骤2.1 环境准备2.2 加载和处理文档2.2.1 文档加载2.2.2 文本分割 2.3 构建嵌入模型2.4 创建向量存储与检索器2.5 检索与生成2.5.1 检索相关文档2.5.2 生成答案 三、完整代码示例…...
uniapp|实现多终端视频弹幕组件、内容轮询、信息表情发送(自定义全屏半屏切换、弹幕启用)
基于UniApp框架实现跨终端视频弹幕组件的开发,结合CSS3动画与setInterval轮询机制,完成弹幕从右向左的动态滚动效果,针对交互需求,设计弹幕启用开关、全屏/半屏模式切换功能,并利用cover-view组件解决原生层级覆盖问题。 目录 引言视频弹幕的交互价值与多终端适配需求Un…...
数据结构(四)——栈的应用—数制转换
利用栈进行数制转换: 十进制转换八进制:先将十进制数除以八得到余数,余数入栈,然后将得到的商继续除以八,直到商为零 #include <stdio.h> #include <stdlib.h>#define MAXSIZE 100//数制转换//定义链表节…...
flinksql bug : Max aggregate function does not support type: CHAR
这个问题是flink中 CHAR 存在语义歧义,主要涉及到位数的关系,这里不做多讨论。 这个问题已经有人提了pr,新版本可以关注是否有解决 这个报错发生在 max(测试字段) ,这个测试字段如果是char 就会报错不支持 解决办法:…...
解决社区录音应用横屏状态下,录音后无法播放的bug
最近看到社区有小伙伴反映,社区录音应用横屏时,录音后无法播放的问题。现分享解决办法。 社区录音应用的来源:https://gitee.com/openharmony/applications_app_samples/tree/OpenHarmony-5.0.2-Release/code/SystemFeature/Media/Recorder …...
【MySQL】存储引擎 - InnoDB详解
📢博客主页:https://blog.csdn.net/2301_779549673 📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! &…...
软件工程之形式化说明技术深度解析
按照形式化的程度,可以把软件工程使用的方法划分成非形式化、半形式化和形式化3种。用自然语言描述需求规格说明书,是典型的非形式化方法。用数据流图或实体-联系图建立模型,是典型的半形式化方法。 所谓形式化方法,是描述系统性…...