Windows 软件之 FFmpeg
文章目录
- 前言
- 1 FFmpeg 视频处理
- 1.1 编解码
- 1.2 其它视频编辑命令
- 1.3 视频抽帧
- 2 FFmpeg 音频处理
- 3 FFmpeg 图片处理
- 3.1 编解码
- 3.2 拼接图片
- 3.3 图片合成视频
- 附录1:mediainfo.ps1
前言
FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。
1 FFmpeg 视频处理
为方便测试,我们首先使用 winget install MediaArea.MediaInfo 命令安装一下 mediainfo 命令(可以方便地查看视频信息),然后创建 mediainfo.ps1 文件,并输入附录1中的内容。
这里我以周董稻香 mv 视频为例。视频信息如下:
1.1 编解码
可通过转换分辨率、视频编码转换为 H265 等方式来压缩视频大小。
- 1)转换编码(压缩)
ffmpeg -hwaccel cuda -i .\周杰伦-稻香.mp4 -vf scale=720:480 -c:v libx265 -crf 18 .\周杰伦-稻香C.mp4-hwaccel 可选择 cpu 或 gpu 加速-i 输入的视频文件-vf scale 视频分辨率(宽x高)-c:v libx265 选择视频编码为 H265-crf Constant Rate Factor, 0~51,默认 28,20 以下时视觉上无损
- 2)转换结果:大小减少 20.8%。
当然,原视频分辨率为 720x480,也可以指定为 2560×1440 的 2K 分辨率,不过视频大小就会大大增加了。
- 参考:https://zhuanlan.zhihu.com/p/582654225
1.2 其它视频编辑命令
# (1)调整视频的分辨率
ffmpeg -i input.mp4 -vf scale=640:360 output.mp4
# (2)调整视频的码率
ffmpeg -i input.mp4 -b:v 512k output.mp4
# (3)使用更高效的视频编码格式
ffmpeg -i input.mp4 -c:v libx265 -crf 28 output.mp4
# (4)截取前 10 秒视频
ffmpeg -i input.mp4 -ss 00:00:00 -to 00:00:10 -c copy output.mp4# (5)视频合并(fps、分辨率不同的视频合并会出现问题)
# 5.1 创建文件 1.txt 后输入以下内容(有多少视频就输入多少行):
file '视频名'
# 5.2 命令行执行以下命令进行合并
ffmpeg.exe -f concat -safe 0 -i .\1.txt -c copy -y '1.mp4'# (6)将图片设置为视频封面
ffmpeg -i input_video.mp4 -i input_image.png \-map 0 -map 1 \-c copy -c:v:1 png \-disposition:v:1 attached_pic \output_video.mp4
- 参考:
- https://blog.csdn.net/xindoo/article/details/130186891
- https://www.zhihu.com/question/323211391
1.3 视频抽帧
# (1)抽取视频关键帧(IPB)
ffmpeg -i video.mp4 -vf select="eq(pict_type\,PICT_TYPE_I)" -vsync 2 -s 320x240 thumb-%02d.png# (2)抽取视频场景转换帧
ffmpeg -i video.mp4 -f image2 -vf "select=gt(scene\,.4)" -vsync vfr %03d.png# (3)均匀抽帧:-r 指定抽取的帧率,即从视频中每秒钟抽取图片的数量。1代表每秒抽取一帧。
ffmpeg -i video.mp4 -r 1 -q:v 2 -f image2 ./%08d.000000.jpg# (4)抽取指定时间帧
ffmpeg -ss 00:00:30 -i video.mp4 -vframes 1 0.jpg # 耗时短(使用关键帧进行索引)
ffmpeg -i video.mp4 -ss 00:00:30 -vframes 1 0.jpg # 耗时长# (5)抽帧制作缩略图
ffmpeg -i video.mp4 -vf 'fps=1/95:round=zero,scale=480x360,tile=8x6' M%03d.jpg# -vf 表示指定过滤器。多个过滤器用 ',' 隔开;一个过滤器的多个参数使用 ':' 分开# fps=1/95 表示 95 秒输出一张图# round=zero 表示时间戳向 0 取整# scale=480x360 表示图片分辨率大小# tile=5x5 表示将截图使用 8x6 组合起来
制作缩略图:ffmpeg -i .\周杰伦-稻香C.mp4 -vf ‘fps=1/11:round=zero,scale=720x480,tile=5x4’ M%03d.jpg
也可以使用 PotPlayer 来创建缩略图:右键 -> 视频 -> 图像截取 -> 创建缩略图
- 参考:
- FFmpeg视频抽帧那些事:https://zhuanlan.zhihu.com/p/85895180
- FFmpeg 制作视频预览缩略图:https://zhuanlan.zhihu.com/p/570453447
- https://www.coder.work/article/3458321
2 FFmpeg 音频处理
# 1 提取音频 mp3
ffmpeg.exe -i .\周杰伦-稻香.mp4 -vn -c:a libmp3lame -q:a 1 .\周杰伦-稻香.mp3# 2 音频格式由 mp3 转换为 ogg
ffmpeg.exe -i .\周杰伦-稻香.mp3 .\周杰伦-稻香.ogg
批量转换批处理见:
audio-converter.bat: https://gitee.com/luyaocf/dev_ops_scripts.git
官方说明:https://ffmpeg.org/ffmpeg.html#Audio-Options
3 FFmpeg 图片处理
3.1 编解码
- 1)批量转换编码
# ffmpeg -i in.jpg -vf scale=width:height out.pngset a=!cd!
for /f "delims=" %%i in ('dir /b /s "%a%\*png*"') do (echo %%~nxi %%~ni_c.pngffmpeg -i %%~nxi -vf scale=iw/2:ih/2 %%~ni_c.png
)
3.2 拼接图片
ffmpeg -i 1.jpg -i 2.jpg -filter_complex vstack out.jpg
- 参考:https://juejin.cn/post/7229636745578627130
3.3 图片合成视频
ffmpeg -r 1 -f image2 -i '(%d).jpg' -c:v libx265 -vf scale=-1:1280 -crf 17 -y o.mp4
-
-r 调整帧率:默认 25 帧,即每秒拼接 25 张图片。
-
-b:v 4M 调整视频码率:码率指每秒播放的数据量(bit)。如果图片比较大,则生成的视频较大;改变码率会影响到视频清晰度;h265 编码可以用更小的码率生成 h264 同等的视频质量。
-
-crf 调整视频质量:用来平衡视频质量和文件大小的参数。取值范围 0~51,默认 23,建议 17~28。
-
-c:v libx265 调整视频的编码格式:默认 h264。可以使用 h265 生成更小的。
- 可以使用 -c:v libvpx 或 -c:v libvpx-vp9 生成 v8 和 v9 编码的 webm 文件(默认低质量)
-
-vf scale=宽x高 调整视频分辨率:将宽或高设置为 -1 可以将其等比例缩放。
-
参考:https://blog.csdn.net/xindoo/article/details/121451318
附录1:mediainfo.ps1
<### 通过 ffmpeg 查看视频信息#># Clear-Variable 删除变量的值。
# Compare-object 比较两组对象。
# ForEach-Object 对输入对象集合中的每个项目执行操作。
# Get-childItem 在一个或多个指定位置获取项目和子项目。
# Invoke-commands 在本地和远程计算机上执行命令。
# Set-variable 设置变量的值。
# Start-Job 启动 Windows PowerShell 的后台作业。# [Math] | Get-Member -Static 获取 Math 类中的静态方法<### 安装 mediainfo 命令:# winget search mediainfo# winget install MediaArea.MediaInfo#># $arg 表示命令行参数集合
foreach($arg in $args) {# Write-Host $arg$param = "
General; \n
Complete name : '%CompleteName%' \n
File size : %FileSize/String4%
"$param = $param -replace '\r?\n?'mediainfo --Inform=$param "$arg"$param = "
Video;
Codec ID : %CodecID% \n
Codec ID/Info : %CodecID/Info% \n
Aspect ratio : %DisplayAspectRatio/String% \n
Width : %Width% \n
Height : %Height% \n
Frame rate : %FrameRate% \n
Duration : %Duration% \n
Duration : %Duration/String1%; \n
"$param = $param -replace '\r?\n?'mediainfo --Inform=$param "$arg"$duration = mediainfo --Inform="Video;%Duration%" "$arg"$frame_rt = mediainfo --Inform="Video;%FrameRate%" "$arg"$frame = [Math]::Floor($duration / 1000 * $frame_rt)Write-Host "Frame : $frame"
}
相关文章:
Windows 软件之 FFmpeg
文章目录 前言1 FFmpeg 视频处理1.1 编解码1.2 其它视频编辑命令1.3 视频抽帧 2 FFmpeg 音频处理3 FFmpeg 图片处理3.1 编解码3.2 拼接图片3.3 图片合成视频 附录1:mediainfo.ps1 前言 FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的…...
接口的扩展
1. 接口中新增的方法 JDK7之前接口中只能定义抽象方法。 JDK8的新特性:接口中可以定义有方法体的方法。(默认、静态) JDK9的新特性:接口中可以定义有私有方法体的方法。 有方法体的方法:接口升级时,为了兼容…...
Vue ECharts 基本数据图表绘制详解:让数据飞起来
1. 引言 1.1 什么是数据可视化 大家好,欢迎来到数据可视化的世界!如果你以为数据就是冷冰冰的数字,那你就大错特错了。数据,可是有灵魂的!只要给它一副好看的外衣,比如我们今天要聊的图表,它们…...
目录遍历漏洞-CVE-2021-41773
目录 简介 原理 例子 Apache路径穿越漏洞 环境搭建 漏洞原理 漏洞利用 简介 目录遍历漏洞(也称为路径遍历漏洞)是一种由于Web服务器或Web应用程序对用户输入的文件名称的安全性验证不足而导致的安全漏洞。 原理 目录遍历漏洞允许攻击者在未授权…...
ajax (一)
什么是 AJAX [ˈeɪdʒks] ? 概念:AJAX是浏览器与服务器进行 数据通信 的技术,动态数据交互 怎么用AJAX? 1. 先使用 axios [k‘sio ʊ s] 库, 与服务器进行 数据通信 ⚫ 基于 XMLHttpRequest 封装、代码简单、月下载量在 1…...
cocos creator 3.8 物理碰撞器Collider+刚体RigidBody 8
遇到一个朋友,你来就行的朋友,我过去了,管吃管住,这样的朋友真的很难求。 最近离职了,很难想象,一份策划书一天能给你改n次,一周能郁闷,上一个功能没搞完,让你搞下一个功…...
[Python3学习笔记-基础语法] Python3 基础语法
本篇文章详细介绍Python3的基础语法,主要包括编码、标识符、Python保留字、注释、行缩进、多行语句、Number类型、字符串、空行、print打印等。 这些是Python最基础的东西,掌握好了才能更好的学习后续的内容。 有兴趣共同结伴学习Python的朋友࿰…...
自制游戏:监狱逃亡
第一个游戏,不喜勿喷: #include<bits/stdc.h> #include<windows.h> using namespace std; int xz; int ruond_1(int n){if(xz1){printf("撬开了,但站在你面前的是俄罗斯内务部特种部队的奥摩大帝,你被九把加…...
Linux的开发工具(三)
条件编译 预处理本质:对代码进行裁剪 像网易云音乐有vip和普通用户,可以通过条件编译来,这样只用写一份代码,也只用维护一份代码,是vip就走vip代码,不是就普通用户代码,条件编译来动态裁剪。 …...
飞书会话消息左右排列
飞书会话消息左右排列 1. 飞书登录后,点击头像,弹出菜单有个按钮设置 2. 3....
【数据结构-表达式解析】力扣227. 基本计算器 II
给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。 整数除法仅保留整数部分。 你可以假设给定的表达式总是有效的。所有中间结果将在 [-231, 231 - 1] 的范围内。 注意:不允许使用任何将字符串作为数学表达式计算的内置函数&#…...
vue2面试题10|[2024-11-24]
问题1:vue设置代理 如果你的前端应用和后端API服务器没有运行在同一个主机上,你需要在开发环境下将API请求代理到API服务器。这个问题可以通过vue.config.js中的devServer.proxy选项来配置。 1.devServer.proxy可以是一个指向开发环境API服务器的字符串&…...
列表和字典索引的区别
对于 列表: 索引是自动生成的,由 Python 内部管理。你不能直接为列表中的某个元素设置“自定义索引”。 对于 字典: 键是完全由用户定义的。你可以通过 字典【键】 值 的方式主动创建或更新键值对。 lst [a, b, c] lst[0] x # 修改已…...
【源码】Sharding-JDBC源码分析之SQL中分片键路由ShardingSQLRouter的原理
Sharding-JDBC系列 1、Sharding-JDBC分库分表的基本使用 2、Sharding-JDBC分库分表之SpringBoot分片策略 3、Sharding-JDBC分库分表之SpringBoot主从配置 4、SpringBoot集成Sharding-JDBC-5.3.0分库分表 5、SpringBoot集成Sharding-JDBC-5.3.0实现按月动态建表分表 6、【…...
JavaFX 实现 Loading 效果的组件与案例详解
JavaFX 中的 Loading 组件概述 JavaFX 提供了两个用于显示任务进度的核心组件: ProgressIndicator:以圆形动画的形式展示任务进度,适用于未定义进度的任务。ProgressBar:以水平条的形式展示任务进度,适用于可以量化进…...
Elasticsearch:如何部署文本嵌入模型并将其用于语义搜索
你可以按照这些说明在 Elasticsearch 中部署文本嵌入模型,测试模型并将其添加到推理提取管道。它使你能够生成文本的向量表示并对生成的向量执行向量相似性搜索。示例中使用的模型在 HuggingFace上公开可用。 该示例使用来自 MS MARCO Passage Ranking Task 的公共…...
李继刚:提示词(Prompt)的本质是表达的艺术
看了李继刚在 AI 创新者大会的演讲《提示词的道与术》,收获很大,我分享一下学习笔记。 李继刚:提示词(Prompt)的本质是表达的艺术 一、提示词的本质是表达 本意、文意和解意的概念: 本意:指…...
10 —— Webpack打包模式
开发模式:development ;场景:本地开发 生产模式:production ; 场景:打包上线 这两种模式如何设置给webpack: 方式1.webpack.config.js 配置文件设置mode选项 module.exports { mode:produc…...
OpenSSH 安装
OpenSSH windows安装 启用可选功能安装 OpenSSH(推荐方法) 步骤一:打开 “设置” 应用 点击 “开始” 菜单,选择 “设置” 图标(看起来像一个齿轮)。 步骤二:进入 “应用” 部分 在设置窗口中&…...
国标GB28181设备管理软件EasyGBS国标GB28181视频平台:RTMP和GB28181两种视频上云协议的区别
在当今信息化高速发展的社会中,视频监控技术已经成为各行各业不可或缺的一部分。无论是城市安全、交通管理,还是企业安全、智能家居,视频监控都发挥着至关重要的作用。然而,随着监控点数量的急剧增加,海量视频数据的存…...
Image fusion meets deep learning: A survey and perspective译文
摘要 图像融合是指从不同的源图像中提取和组合最有意义的信息,旨在生成一个更有信息量和有利于后续应用的单图像。深度学习的发展极大地推动了图像融合的发展,而神经网络强大的特征提取和重建能力使融合结果充满希望。最近,几种最新的深度学…...
多维高斯分布的信息熵和KL散度计算
多维高斯分布是一种特殊的多维随机分布,应用非常广泛,很多现实问题的原始特征分布都可以看作多维高斯分布。本文以数据特征服从多维高斯分布的多分类任务这一理想场景为例,从理论层面分析数据特征和分类问题难度的关系注意,本文分…...
物体网格弹性变形---Unity中实现
在游戏引擎场景中的3D物体是由一定数量的点、面组成的,如下图: 要使这些物体变形就是改变3D物体每个顶点状态。 1.首先在Unity场景中增加一个球体,如下图 3D组件默认拥有MeshFilter、meshRenderer、Collider组件,分别用来获取Mes…...
什么是Sass,有什么特点
Sass 概述 什么是 Sass? Sass(Syntactically Awesome Style Sheets)是一种 CSS 预处理器,它扩展了 CSS 的功能,使其更加强大和灵活。Sass 允许开发者使用变量、嵌套规则、混合宏、继承等高级特性,从而编写…...
Spring注入Map学习
Spring注入Map学习 在Spring中 在策略模式中, 会经常用到 根据Bean名称获取Bean的实例 有2个方法很好用 1. 使用Autowired注入 2. 使用构造方法注入 但是奇怪的一点是: 日志打印并没有看到结果, 第一行的 Autowired的结果 是个null 那是因为 注入时机 的问题 注入时机&…...
Java 基础知识 (集合框架 + 并发编程 + JVM 原理 + 数据结构与算法)
文章目录 一.集合框架1. 常见集合接口及其特点List 接口Set 接口Map 接口 2. ArrayList 和 LinkedList 的区别和适用场景ArrayListLinkedList 3. HashSet 和 TreeSet 的特点和用法HashSetTreeSet 4. HashMap 和 TreeMap 的实现原理和使用注意事项HashMapTreeMap 5. 集合遍历方式…...
数据脱敏工具:基于 FFmpeg 的视频批量裁剪
在数据处理和隐私保护领域,数据脱敏是一项重要的任务,尤其是在处理包含敏感信息的视频数据时。本文介绍了一种使用 Python 和 FFmpeg 实现的视频批量裁剪工具,该工具可以将视频中的敏感区域裁剪掉,从而实现数据脱敏。通过使用 PyI…...
从零开始:使用 Spring Boot 开发图书管理系统
如何利用是springboot搭建一个简单的图书管理系统,下面让我们一起来看看吧 文章目录 项目结构1. 主类 LibraryApplication.java功能与注意事项: 2. 模型类 Book.java功能与注意事项: 3. 数据仓库接口 BookRepository.java功能与注意事项&…...
深入浅出:大数据架构中的流处理与实时分析
1. 引言 随着数据产生速度的不断加快,传统的批处理架构已经无法满足实时数据处理和快速响应的需求。流处理成为解决这一问题的关键技术之一,广泛应用于金融、互联网、物联网等领域。流处理技术能够处理不断到来的数据流,实时分析和反馈,使得系统能够迅速做出反应,提供实时…...
基于Multisim的汽车尾灯控制电路设计与仿真
1、电路由四个按键控制,分别对应左转、右转、刹车和检查。 2、当左转或右转键按下时,左侧或右侧的 3个汽车尾灯按照左循环或右循环的顺!2/3 点亮,点亮时间为 1秒。 3、当刹车时,所有的尾灯同时闪烁,闪烁时间为1秒。 4、当检查时…...
WebStorm 2024.3/IntelliJ IDEA 2024.3出现elementUI提示未知 HTML 标记、组件引用爆红等问题处理
WebStorm 2024.3/IntelliJ IDEA 2024.3出现elementUI提示未知 HTML 标记、组件引用爆红等问题处理 1. 标题识别elementUI组件爆红 这个原因是: 在官网说明里,才版本2024.1开始,默认启用的 Vue Language Server,但是在 Vue 2 项目…...
【大数据学习 | Spark-Core】详解分区个数
RDD默认带有分区的,那么创建完毕rdd以后他的分区数量是多少? 从hdfs读取文件的方式是最正规的方式,我们通过计算原理可以推出blk的个数和分区数量是一致的,本地化计算。 我们可以发现数据的读取使用的是textInputFormatÿ…...
(二)Sping Boot学习——Sping Boot注意事项
1.springboot默认是扫描的类是在启动类的当前包或者下级包。 2.运行报错 ERROR:An incompatible version [1.2.33] of the Apache Tomcat Native library is installed, while Tomcat requires version [1.2.34] 网上试了很多方法,直接重新安装更新版…...
深入浅出,快速安装并了解汇编语言
1.什么是汇编语言 了解汇编语言需要先从了解机器语言开始,在计算机发展的初期阶段,机器语言是计算机直接理解和执行的二进制代码语言,其核心特点包括直接执行性、资源高效性、学习难度大以及平台依赖性。它主要由指令码构成,这些…...
LLM的原理理解6-10:6、前馈步骤7、使用向量运算进行前馈网络的推理8、注意力层和前馈层有不同的功能9、语言模型的训练方式10、GPT-3的惊人性能
目录 LLM的原理理解6-10: 6、前馈步骤 7、使用向量运算进行前馈网络的推理 8、注意力层和前馈层有不同的功能 注意力:特征提取 前馈层:数据库 9、语言模型的训练方式 10、GPT-3的惊人性能 一个原因是规模 大模型GPT-1。它使用了768维的词向量,共有12层,总共有1.…...
JavaScript中的箭头函数以及编写优化
箭头函数 1.1.1 箭头函数的概念 箭头函数时ES 6之后增加一种编写函数的方法,并且它比函数的表达式要更加简洁 箭头函数不会绑定this,arguments属性箭头函数不能作为构造函数来使用(不能和new一起来使用,会出现错误) //1.之前的方…...
Thymeleaf模板引擎生成的html字符串转换成pdf
依赖引入implementation("org.springframework.boot:spring-boot-starter-thymeleaf")implementation("org.xhtmlrenderer:flying-saucer-pdf")将ITemplateEngine注入到spring管理的类中, Context context new Context(); context.setVariable…...
Android 实现双列图片瀑布流式布局
Android 实现双列图片瀑布流式布局 实现双列图片瀑布流布局,关键在于 RecyclerView 的 StaggeredGridLayoutManager 和图片的动态加载。以下是实现步骤: 1. 添加必要依赖 使用 Glide 加载图片。确保在 build.gradle 中添加依赖: implement…...
运维Tips:Docker或K8s集群拉取Harbor私有容器镜像仓库配置指南
[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ] Docker与Kubernetes集群拉取Harbor私有容器镜像仓库配置 描述:在现在微服务、云原生的环境下,通常我们会在企业中部署Docker和Kubernetes集群,并且会在企业内部搭建Harbor私有镜像仓库以保证开发源码安全,以及加快…...
显示类控件
文章目录 1 QLabel1.1 常用属性1.2 例子1,设置文本 (textFormat)1.3 例子2,设置widget背景图片 (pixmap和scaledContents)1.4 例子3,设置对齐方式 (alignment)1.5 例子4,设置自动换行,缩进和边距1.5.1 设置换行 (wordW…...
AOC显示器915Sw按键失灵维修记
大家好,我是 程序员码递夫 今天给大家分享的是自己维修老古董AOC液晶显示器按键失灵的的过程,实属DIY记录。 1、引子 家里有台老古董的19寸AOC液晶显示器(型号915Sw), 一直作为我的副显示器陪伴着左右,显示还正常&a…...
PyQt学习笔记
一.PyQt5的安装 当我们安装好开发环境后,打开pycharm在其设置里面点击按钮自动安装即可。 安装完成后我们会在这里面看到这几个东西说明安装成功了。 二.PyQt5 GUI程序框架 1.一个简单的PyQt5应用程序 首先我们用pycharm创建一个demo.py的文件。 我们创建文件为s…...
LLMops产品介绍
文章目录 字节跳动的扣子优点低代码开发丰富的插件与能力扩展强大的记忆与数据交互能力应用场景广泛 不足模型选择相对受限定制化程度受限输出效果有待提高应用部署范围有限市场认知度和用户基础不足 开悟大模型运营管理系统(LLMOPS)优点全生命周期管理降…...
【GPTs】Front-end Expert:助力前端开发的智能工具
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: AIGC | GPTs应用实例 文章目录 💯GPTs指令💯前言💯 Front-end Expert主要功能适用场景优点缺点 💯小结 💯GPTs指令 中文翻译: 使用Dalle生成用户…...
一篇保姆式centos/ubuntu安装docker
前言: 本章节分别演示centos虚拟机,ubuntu虚拟机进行安装docker。 上一篇介绍:docker一键部署springboot项目 一:centos 1.卸载旧版本 yum remove docker docker-client docker-client-latest docker-common docker-latest doc…...
人工智能大趋势下软件开发的未来
随着人工智能(AI)技术的不断演进,软件开发领域正经历着深刻的变革。中国电信推出的星辰大模型软件工厂,作为国内首款破局性AI开发工具,其全自动流水线的特性——自动生成前后端代码、自主测试和纠错等,为软…...
string的模拟实现
string的模拟实现 一.string的模拟实现1.1构造函数和析构函数,以及一些简单函数1.2迭代器1.3增删查改 二.运算符重载三.流插入和流提取 一.string的模拟实现 string本质上是是一种char类型的顺序表,结构上和顺序表相似。 namespace Mystring {class st…...
Qt桌面应用开发 第七天(绘图事件 绘图设备)
目录 1.绘图事件paintEvent 2.高级绘图 3.图片绘制 4.绘图设备 4.1QPixmap 4.2QBitmap 4.3QImage 4.4QPicture 1.绘图事件paintEvent paintEvent——绘图事件 需求:利用QPainter绘制点、线、圆、矩形、文字;设置画笔改为红色,宽度为…...
PDF内容提取,MinerU使用
准备环境 # python 3.10 python3 -m pip install huggingface_hub python3 -m pip install modelscope python3 -m pip install -U magic-pdf[full] --extra-index-url https://wheels.myhloli.com下载需要的模型 import json import osimport requests from huggingface_hub…...
基于lora的llama2二次预训练
基于lora的llama2二次预训练 一、为什么需要对llama2做基于lora的二次预训练? 加入中文训练语料进行llama2的二次预训练,这样模型就可以增加支持中文输出的能力。 二、基于lora的llama2二次预训练的目标是什么? 在保持预训练模型权重不变的情况下&a…...