首页
关于
README
Search
1
如何配置终端现代化Neovim
647 阅读
2
mdk3工具使用
520 阅读
3
关于C语言
472 阅读
4
Windows11pro 下载体验
455 阅读
5
关于Docker容器--0×01
379 阅读
默认分类
网络技术
渗透测试
编程语言
C语言
Python
Linux
搞机技巧
Termux
golang
数学
Search
标签搜索
printf
mach
sin cos tan
Toanle
累计撰写
40
篇文章
累计收到
1
条评论
首页
栏目
默认分类
网络技术
渗透测试
编程语言
C语言
Python
Linux
搞机技巧
Termux
golang
数学
页面
关于
README
搜索到
40
篇与
Toanle
的结果
2023-08-04
如何修改Linux 为设置北京时间
在 Linux 中设置北京时间,需要先设置系统的时区为 Asia/Shanghai,然后将系统时钟设置为当前时间。 以下是具体的步骤:首先,查看当前系统的时区设置:$ timedatectl如果时区设置不正确,可以使用 timedatectl 命令来修改。例如,将时区设置为 Asia/Shanghai:$ sudo timedatectl set-timezone Asia/Shanghai然后,查看当前系统时钟的时间:$ date如果时间不正确,可以使用 date 命令来修改。例如,将系统时钟设置为当前时间:$ sudo date -s "2022-01-01 12:00:00"其中,“2022-01-01 12:00:00” 是当前时间的日期和时间。请根据实际情况修改。最后,将系统时钟同步到硬件时钟:$ sudo hwclock --systohc这个命令会将当前系统时钟的时间同步到硬件时钟中,以便下次系统启动时恢复到正确的时间。通过以上步骤,就可以将 Linux 系统的时间设置为北京时间了。
2023年08月04日
23 阅读
1 评论
0 点赞
2023-08-02
关于GOlang泛型
首先,我们先了解什么泛型。在维基百科上解释如下:泛型程序设计(英文:generic programming)是程序设计语言的一种风格或范式。泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型。Go 1.18版本增加了对泛型的支持,泛型也是自 Go 语言开源以来所做的最大改变。我们来看下在1.18版本以前,我们怎么实现一个反转切片的函数func reverse(s []int) []int { l := len(s) r := make([]int, l) for i, e := range s { r[l-i-1] = e } return r } fmt.Println(reverse([]int{1, 2, 3, 4})) // [4 3 2 1]可是这个函数只能接收[]int类型的参数,如果我们想支持[]float64类型的参数,我们就需要再定义一个reverseFloat64Slice函数。func reverseFloat64Slice(s []float64) []float64 { l := len(s) r := make([]float64, l) for i, e := range s { r[l-i-1] = e } return r }可以看出,每实现一个数据类型,都需要写相应函数,一遍一遍地编写相同的功能是低效的,实际上这个反转切片的函数并不需要知道切片中元素的类型,但为了适用不同的类型我们把一段代码重复了很多遍。Go1.18之前我们可以尝试使用反射去解决上述问题,但是使用反射在运行期间获取变量类型会降低代码的执行效率并且失去编译期的类型检查,同时大量的反射代码也会让程序变得晦涩难懂。类似这样的场景就非常适合使用泛型。从Go1.18开始,使用泛型就能够编写出适用所有元素类型的“普适版”reverse函数。package main import "fmt" func reverseWithGenerics[T any](s []T) []T { l := len(s) r := make([]T, l) for i, e := range s { r[l-i-1] = e } return r } func main() { fmt.Println(reverseWithGenerics([]any{1, 2, 3, 4, "23s1", 212, 111.1})) // [4 3 2 1] } //输出结果:[111.1 212 23s1 4 3 2 1]泛型为Go语言添加了三个新的重要特性:函数和类型的类型参数。将接口类型定义为类型集,包括没有方法的类型。类型推断,它允许在调用函数时在许多情况下省略类型参数。类型参数类型形参和类型实参我们之前已经知道函数定义时可以指定形参,函数调用时需要传入实参。现在,Go语言中的函数和类型支持添加类型参数。类型参数列表看起来像普通的参数列表,只不过它使用方括号([])而不是圆括号(())。借助泛型,我们可以声明一个适用于一组类型的min函数func min[T int | float64](a, b T) T { if a <= b { return a } return b }
2023年08月02日
38 阅读
0 评论
0 点赞
2023-06-19
在Linux上使用I2c
什么是I2c? 在“Inter-Integrated Circuit” 中,“Inter-” 表示“在……之间,相互”的意思;“Integrated Circuit” 简称“IC”,表示“集成电路”的意思。 “Inter-Integrated Circuit”,直接翻译过来就是内部集成电路(DeepL翻译为互联电路,微软翻译为内部集成电路,百度翻译为内置集成电路)。德力威尔王术平认为,应该把“Inter-Integrated Circuit”翻译为集成电路互连或者芯片互连,更符合国人习惯,更为贴切。在中国正式的书面场合,全称写作Inter-Integrated Circuit,简写Inter-IC或者I2C(数字“2”书写为上标,,英文读作“I squared C”,中文读作“I平方C”)。在非正式场合或者数字“2”无法书写为上标时,有人就书写为“IIC”或者“I2C”,把“IIC”读作“I-I-C”,把“I2C”读作“I-two-C”或“I二C”。这些书写方式或叫法,其实没有对错,只是不同习惯而已,就像普通话和地方话一样。但是,我们在严谨的正式场合,还是要统一标准,规范书写为“I2C”(数字“2”书写为上标),规范读作“I平方C”。在本文中,德力威尔王术平对相关术语的中文解释做出如下约定:I2C:读作“I平方C”(尽量不读作“I方C”,避免和I3C混淆)。I2C:集成电路互连。I2C Bus:I2C总线或集成电路互连总线。I2C Specification:I2C规范或集成电路互连规范。I2C Communication Interface:I2C通信接口或集成电路互连通信接口。I2C Communication Protocol:I2C通信协议或集成电路互连通信协议。I2C:在无法书写上标数字“2”时,可书写为“IIC”或“I2C”。计算机中Bus术语的定义在计算体系结构中, 总线(Bus)是计算机内部组件之间或计算机之间传送信息的公共通信干线,它是由导线组成的传输路径。总线(Bus)是一种电路,它是cpu、RAM、ROM、输入、输出等设备传递信息的公用通道,充当数据在计算机内传输的高速公路按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据信息、地址信息和控制信号。首先,我们需要安装工具包。sudo apt install i2c-toolsi2c-tools是一个用于 Linux 与 软件/硬件 I2C 总线通信的实用工具集,其中包括了查看和修改 I2C 总线设备信息的工具。以下是一些常见的使用示例:列出I2C总线上的设备:sudo i2cdetect -y 1这将会显示以16进制格式列出I2C总线地址范围内所有已经探测到的设备。其中,第一个参数-y表示以非交互模式运行,第二个参数1表示使用1号I2C总线(对于一些系统可能是2号I2C总线)。这个命令可以帮助我们快速看到哪些设备设备与I2C总线通信连接,以及它们的I2C地址。读写设备寄存器:sudo i2cget -y 1 0x48 0x00这个命令表示从I2C地址为0x48的设备中读取寄存器地址为0x00的寄存器的值。如果想要写入一个新的值,我们可以用i2cset命令,例 如:sudo i2cset -y 1 0x48 0x00 0x10这个命令表示往I2C地址为0x48的设备中写入寄存器地址为0x00的寄存器的值为0x10。使用i2cdump命令读取设备的寄存器:sudo i2cdump -y 1 0x48如果我们想要快速查看一个设备的所有寄存器的值,我们可以使用i2cdump命令。这个命令表示从I2C地址为0x48的设备中读取所有的寄存器的值(通常有16个)。编写自定义的I2C工具:除了常用的i2cget和i2cset命令之外,我们还可以使用i2c-tools提供的APIs创建自定义的I2C工具。例如,下面是一个简单的C程序,通 过I2C通信从 EEPROM (I2C地址为0x57) 中读取两个字节的数据:#include <fcntl.h> #include <unistd.h> #include <linux/i2c-dev.h> // for I2C_SLAVE macro #include <stdio.h> #include <stdlib.h> int main(int argc, char** argv){ int fd; if ((fd = open("/dev/i2c-1", O_RDWR)) < 0){ // open I2C bus perror("open"); exit(1); } if (ioctl(fd, I2C_SLAVE, 0x57) < 0){ // select EEPROM device perror("ioctl"); exit(1); } char buffer[2]; int ret; if ((ret = read(fd, buffer, 2)) != 2){ // read 2 bytes from memory address 0x00 perror("read"); exit(1); } printf("Read: %#02x %#02x\n", buffer[0], buffer[1]); close(fd); return 0; }以上就是i2c-tools常用的几个使用示例,我们可以根据自己的需求修改。package main import ( "fmt" "log" "time" "golang.org/x/exp/io/i2c" ) func main() { // 打开I2C总线 bus, err := i2c.Open(&i2c.Devfs{Dev: "/dev/i2c-1"}, 0x57) if err != nil { log.Fatal(err) } defer bus.Close() // 模拟I2C设备地址为0x00,读取2字节数据 buffer := make([]byte, 2) if err := bus.ReadRegBytes(0x00, buffer); err != nil { log.Fatal(err) } fmt.Printf("Read: %#02x %#02x\n", buffer[0], buffer[1]) time.Sleep(time.Second) }这个程序使用了golang.org/x/exp/io/i2c包来打开I2C总线并创建I2C设备。我们可以通过调整0x57参数来改变设备的I2C地址。代码中的ReadRegBytes()方法可以使我们直接从指定设备的指定寄存器中读取数据。这个程序会读取从0x00寄存器中读取2字节的数据并在控制台 中输出。最后,代码中的time.Sleep()函数用于防止Go程序在数据读取完成后立刻退出。
2023年06月19日
68 阅读
0 评论
0 点赞
2023-02-12
Linux在命令行下拍照和录像
需要准备如下软件安装:1.sudo apt install fswebcam2.sudo apt install ffmpegffmpegffmpeg -t 20 -s 1920x1080 -r 25 -b:v 1500K -c:v libx264 -i /dev/video0 out.avi设定参数:-t 10 录制10秒:-s 1920x1080 设定分辨率-r 30 设定帧率-b:v 设定视频比特率-b:a 设定视频比特率-c:v libx264 设定视频编码器【等效 -vcodec libx264】-f video4linux2是指定框架-i 摄像头的设备节点ffmpeg -f video4linux2 -s 1280x720 -i /dev/vide--no-bannero0 test.mp4ffmpeg -codecs 可以显示ffmpeg所支持编码格式ffmpeg -f alsa -ac 2 -ar 44100 -i default out.wav参数介绍:-i 指定声卡设备名称。这里default表示选择默认声卡。out.wav 捕获的音频数据保存的文件名称-f 是指定音频驱动类型。alsa是linux下音频驱动框架。oss是另外一种音频框架。-ar <freq> 设置音频采样率,以HZ为单位-ac <channels> 设置音频通道数(单声道、双声道)(2)# ffmpeg -f alsa -ac 1 -ar 44100 -i default -t 30 out.wav参数介绍:-t 30 表示录制30秒就自动停止(3)# ffmpeg -f alsa -ac 1 -ar 16000 -i hw:0 -t 10 out.wav参数介绍:这里的hw:0 也表示选择默认的声卡设备录音。 arecord -L (列出声卡设备数量) 使用arecord -L命令列出了声卡名字之后,就可以选择指定声卡录制声音,其中front:CARD=,DEV=0 ,就是声卡的名字。# ffmpeg --help音频选项:-aframes number 设置要输出的音频帧数 -aq quality 设置音频质量(特定于编解码器) -ar rate 设置音频采样率(以Hz为单位) -ac channel 设置音频通道数 -an 禁用音频 -acodec codec 强制音频编解码器复制到流 -vol volume 更改音频音量(256=正常) -af filter_graph 设置音频过滤器 fswebcamfswebcam -d /dev/video0 -S 10 --no-banner -r 1920x1080./test.jpg设定参数:-r 设定分辨率-S 有的时候用fswebcam拍照的时候会出现黑屏,-S 10 可以改善这种现象(默认为0)--no-banner 不显示其他无用信息
2023年02月12日
93 阅读
0 评论
0 点赞
2023-02-03
在Linux系统下批量压缩图片
第一步:安装支持处理文件类型:JPG、JPEGsudo apt install jpegoptim支持处理文件类型:PNG, BMP, GIF, PNM or TIFF,这个优化效率太低了,速度奇慢无比sudo apt install optipng其中2款工具的具体使用参数如下JPEGOPTIM 名称 jpegoptim - 用于优化/压缩JPEG/JFIF文件。 概要 jpegoptim [ options ] [ filenames ] 描述 pegoptim用于优化/压缩jpeg文件。项目支持无损优化,这是基于对Huffman表的优化。所谓的“有损”优化除了优化之外。可以指定图像质量的上限。 选项 选项可以是传统的POSIX一个字母选项,也可以是。GNU风格长选项。 POSIX风格选项以一个“-”开头,而GNU的长选项以''--'开头。 jpegoptim提供的选项如下: -d<path>, --dest=<path> //设置备选目标目录,以便保存优化。文件(默认是覆盖原始文件)。 //请注意,不变的文件不会被添加到目标目录。 //这意味着如果源文件不能被压缩,就不会有文件。在目标路径中创建。 -f, --force //强制优化,即使结果大于。原始文件。 -h, --help //显示简短的使用信息并退出。 -m<quality>, --max=<quality> //设置最大图像质量因子(禁用无损优化)。mization模式是默认启用的。 //设置这个选项会降低使用更高版本保存的源文件的质量。而那些已经有较低质量的文件。设置将使用无损优化进行压缩。 -n, --noaction //不要真的优化文件,只需打印结果。 -S<size>, --size=<size> //尝试优化文件大小(禁用了无损优化mizaiont模式)。目标尺寸指定KB(1 N)或百分比(1% - 99%)的原始文件的大小。 -T<treshold>, --threshold=<treshold> //如果压缩增益低于阈值(%),则保持文件不变。传输安全有效值为:0 - 100 -o, --overwrite //覆盖目标文件,即使它存在(使用D选项)。 -p, --preserve //保存文件修改时间。 -q, --quiet //安静模式。 -t, --totals //处理完所有文件后打印总计。 -v, --verbose //启用详细模式(积极聊天). --all-normal //强制所有输出文件为非逐行扫描。可以用来转换所有输入文件的渐进式JPEG当使用--force选项。 --all-progressive //强制所有输出文件都是渐进的。可以将所有输入文件正常(非连续)当使用--force选项的JPEG文件。 --strip-all //去除所有(Comment & Exif)从输出文件删除标记。(注!默认情况下只有Comment & Exif标记保存,其他一切都是丢弃) --strip-com //从输出文件中删除Comment(COM)标记。 --strip-exif //从输出文件中删除标记。 --strip-iptc //从输出文件中删除IPTC标记。 --strip-icc //将ICC配置文件从输出文件中删除。 Bugs: 当使用size选项时,结果文件并不总是精确的请求大小。解决方法是重新运行jpegoptim在同一文件又往往会导致文件大小接近目标。OPTIPNG命令手册 NAME OptiPNG−优化便携式网络图形文件 SYNOPSIS optipng [−? | −h | −help] optipng [options...] files... DESCRIPTION OptiPNG程序将尝试优化PNG文件,即将其大小减小到最小值。失去语义信息。此外,该程序还应执行一套辅助功能。完整性检查、元数据恢复和pixmapto - png转换。 优化尝试不能保证成功。有效的PNG文件不能被这个程序优化,通常是原封不动的,它们的大小不会增长。用户可以请求重写此默认行为。 FILES 输入文件是用PNG格式(本机格式)或外部格式编码的光栅图像文件。当前支持的外部格式是GIF、BMP、PNM和TIFF。 OptiPNG处理命令行中给出的每个图像文件如下: −如果是PNG格式的图像: 试图优化给定文件的位置。如果优化是成功的,或者选择−力被激活,其优化的版本替换原来的文件。原始文件备份,如果选择−保持启用。 −如果图像是一个外部格式: 创建给定文件的优化PNG版本。输出文件名由原始文件名和PNG扩展名组成。 现有的文件不会被覆盖,除非该选项启用−clobber OPTIONS 通用选项 −?, −h, −help //显示选项的完整摘要。 −backup, −keep //对修改后的文件进行备份。 −clobber //覆盖现有的输出和备份文件。在这个选项,如果选择−backup 未启用,覆盖旧的备份文件的删除。 −dir directory //将输出文件写入目录。 −fix //启用错误恢复。此选项对有效的输入文件没有影响。 //程序将花费大量的精力在不增加输出文件大小的情况下尽可能地恢复尽可能多的数据,但不能保证成功。该程序可能会增加文件的大小,例如,重建丢失的关键数据。在此选项下,完整性应优先于文件大小。 //当此选项未被使用时,无效的输入文件将被未处理。 −force //强制编写新的输出文件。 //此选项覆盖程序的决定不写这样的文件,例如当PNG输入数字签名(使用dsig),或当PNG输出变得大于PNG输入。 −log file //将消息记录到文件。出于安全原因,文件必须有扩展名。此选项已被废弃,最终将被删除。使用shell重定向。 −out file //将输出文件写入文件。命令行必须只包含一个输入文件。 −preserve //保存(文件属性的文件访问时间邮票,在人权等)适用。 −quiet, −silent // 在安静的运行模式。 −simulate //运行模拟模式:执行测试,但不创建输出文件。 −v //启用该选项 −verbose and −version. −verbose //在详细模式运行。 −version //显示版权,版本和建立信息。 −− //选择开关停止解析。 PNG编码和优化选项。 −o level //选择优化级别 //优化level0enables一组优化操作,需要最少的努力。将不会有任何变化的图像的属性一样,比特深度或颜色的类型,并没有再压缩现有IDAT数据流。 //优化level1enables单IDAT压缩试验。试验选择的是什么,OptiPNG认为这可能是最有效的。 //优化level2和更高的使多个IDAT压缩试验;此选项的行为和默认值可能会在不同的程序版本中发生更改。使用选项−H看到有关您的特定版本。 −f filters //选择PNG增量过滤器。 //过滤器的参数被指定为一个rangeset(例如−F0−5),和默认的过滤器值取决于设置的选项−O.优化水平过滤器的值0, 1, 2,3和4显示静态滤波,和对应的标准PNG过滤代码(无,左,上,平均和Paeth,分别)。滤波值5表明自适应滤波,其作用是通过libpng的定义(3)用optipng。 −full //制作一份关于IDAT的完整报告。这种选择可能会减缓试验的速度。 −i type //选择交错类型(0−1)。 //如果交错式0被选择,输出图像应非隔行扫描(即progressivescanned)。如果交错式1被选择,输出图像应交错使用adam7方法。默认情况下,输出应具有相同的类型作为输入接口。 −nb //不要应用位深度还原。 −nc //不要使用颜色类型还原。 −np //不应用调色板还原。 −nx //不适用任何无损图像还原:启用选项−nb,-nc控和−−np。 −nz //不记录IDAT数据流 −zc levels //选择IDAT压缩中使用的zlib压缩级别。 −zm levels //选择IDAT压缩中使用的zlib内存级别。 −zs strategies //选择在IDAT压缩中使用的zlib压缩策略。 −zw size //选择zlib窗口大小(32 k,16 k、8 k、4 k,2 k,1 k,512256)中使用IDAT压缩。 Editing options −snip //从多图像、动画或视频文件中删除一个图像。 −strip objects //从PNG文件中删除元数据对象。首先我们把手机连接电脑上,找到图片目录,进行操作。# 查询大于2M的图片文件 # 查询总数量 :215535个文件 find -type f -size +2M -regex ".*\.\(jpg\|JPG\|jpeg\|JPEG\|png\|PNG\)" | wc -l # 文件大小统计,这个统计 find -type f -size +2M -regex ".*\.\(jpg\|JPG\|jpeg\|JPEG\|png\|PNG\)" | xargs du -ach # 上面文件大小统计的命令不太准确,后面因统计不太准确,所以找到了以下的命令,可以直接计算出文件的大小、文件的数量 # 查询大于2M 的所有图片数量与文件大小 # 总数量:339586个 # 总大小:1068.79G # 平均大小:3.2M find . -size +2048 -regex ".*\.\(jpg\|JPG\|jpeg\|JPEG\|png\|PNG\)" -exec ls -l {} \; |awk 'BEGIN{count=0;size=0;} \ {count = count + 1; size = size + $5/1024/1024;} \ END{print "Total count " count; \ print "Total Size " size/1024 " GB" ; \ print "Avg Size " size / count "MB"; \ print "—"}'压缩1、首先对jpg、jpeg格式的图片进行压缩测试# 对2M以上文件进行压缩,压缩品质为60,-p为保留原文件修改时间,-t为压缩完成后统计输出压缩率 find . -size +2048 -regex ".*\.\(jpg\|JPG\|jpeg\|JPEG\)" | xargs jpegoptim -m60 -p -t 以上操作会在原文件基础上进行压缩覆盖,并且保留原文件修改时间,不会覆盖为新的时间,如果有需要是要将压缩后的文件放到新的文件夹中,原文件保留的话可以使用以下命令# 文件压缩后会输出到new 文件夹,注意需要手动先新建文件夹 find . -size +2048 -regex ".*\.\(jpg\|JPG\|jpeg\|JPEG\)" | xargs jpegoptim -m60 -p -t -d new 经压缩测试总空间为59G的文件夹(包含不符合压缩条件的文件共计),压缩时间约2小时左右,共释放内存29G,压缩率为74% 左右,其中以1022G为基准进行压缩,具体压缩品质与压缩率对照如下。2、对png格式进行压缩默认压缩如下,其他参数如上述参数描述,可以视情况进行增加find -name '*.png' | xargs optipng经测试,这个压缩速度极慢无比,不知道是不是我使用方法不当,而且压缩率很低,一个10861KB的png图片,压缩之后为10858KB。有人说是因为optipng会对比各种优化方案,选择最优的方案所以比较慢。鉴于此,且系统中的png图片占相对比较小相对于jpg的1个T左右,总共9个G,故此次不对png图片进行压缩。3、如果有需要,压缩png图片的话,可以使用ImageMagick 使用这个包,然后使用以下命令进行压缩,压缩率较高,可以压缩任意格式的图片,但是速度相对于jpegoptim有点慢# ImageMagick sudo install ImageMagick # png格式的图片压缩使用optimpng 压缩效率太低了 ,使用ImageMagick测试可行,但是效率一般,150M大小10个文件左右需要35秒左右,不过可以压缩大文件,且不区分文件类型都可以压缩, 如100M以上的jpg、png都可以文件 find ./ -regex '.*\(png\|PNG\)' -size +2M -exec convert -quality 60 {} {} \;注意测试过程中发现有几点问题需要注意的,此处做一个汇总1、尽量使用root账号进行压缩,否则原拥有者为root,使用其他账号压缩之后会变更为登录账号,且压缩过程中输出详情信息会提示错误,就是因为无法变更拥有者为root,不过文件可以正常压缩。2、压缩之前尽量先对文件进行备份,避免出现意向不到的问题3、测试过程中,曾经对一个119M的jpg文件进行压缩,但是却报错了,开始以为是jpegoptim对于太大的文件压缩不支持,后续使用参数-v, --verbose //启用详细模式(积极聊天)发现错误信息为,提示:Not a JPEG file: starts with 0x89 0x50,由此可以发现,这个jpg文件为假的jpg,有可能是该文件上传之前为png或者其他格式,经过手动修改变成了jpg格式,所以造成无法处理,针对此类文件只能进行单独处理了,比如使用上述的ImageMagick进行压缩,可以将119M的文件压缩至7M左右。总结因为本身对于Linux系统不太熟悉,所以在实际过程中还是走了不少的弯路的,还在最终提供了完整的解决方案,记录学习。后续实际操作过程中发现,使用jpegoptim 后台执行,中间不知道为中断了,而且可能是系统之前对上传的图片进行了重命名,所以造成了大量图片无法进行压缩,报错信息为:Not a JPEG file: starts with 0x89 0x50,综合考虑,切换方案,使用ImageMagick后台执行,为避免报错还要加上这个>/dev/null 2>/dev/null,否则会报nohup: ignoring input and appending output to ‘nohup.out’nohup find ./ -regex '.*\(jpg\|jpeg\|JPG\|JPEG\)' -size +2M -exec convert -quality 60 {} {} \; >/dev/null 2>/dev/null &最终压缩内存800G左右,耗时18小时左右,之前压缩测试时这个ImageMagick速度不快,没想到实操过程中速度可观,且压缩品质也不错。如何使用 FFmpeg 减少视频大小视频压缩sudo ffmpeg -i 3.mp4 -vcodec libx265 -crf 25 33.mp4没有通用的方法来减小视频文件的大小,因为各种文件类型的创建并不相同。在本教程中,我们将使用 x265 编解码器。x265 编解码器,它是一个免费的库,用于视频编码为 H.254/MPEG-H HEVC 的压缩格式。CRF使用 0 到 51 之间的数字。恒定速率因子(CRF)是 x264 和 x265 编码的默认质量设置。值越高,压缩率越高,值越高这可能会导致质量损失。————————————————版权声明:本文为CSDN博主「ao123056」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/ao123056/article/details/123479736
2023年02月03日
297 阅读
0 评论
0 点赞
1
2
3
...
8