视频的帧率和码率
帧 Frame 人眼很奇怪,比如看一个快速画圆圈的燃烧的火把,会看到一个火组成的圆圈。明明只有一个火把,我们却看到了一圈火把,这种现象称为视觉暂留。
科学研究发现,人眼看到的图像会在眼中保留1/24秒,当一秒看到的图像超过24张时,就可以看到动画的效果了。这种科学现象也是我们能够制作视频的基础,播放器每秒播放的图像超过24张,看到的画面就是连续的了。
视频中的每一张图片我们就称为一帧。
帧率 FPS 每张图片是一帧,图片的个数称为帧数,每秒图片的个数称为帧率,俗称 FPS。
公式:帧率=帧数/时间
帧率对于视频很重要,为了视频连贯,一般最低是 30。帧率越大,视频看起来越流畅,但是超过一个临界点后,人眼就区分不出差异了。
游戏玩家应该对这个很清楚,一般有一个FPS与体验感的关系。
30FPS 左右,勉强能玩 60FPS 左右,普通 90FPS 左右,优良 120FPS 以上,非常良好
这样看来,我们录视频的视频,FPS 可以设置为 60 或 90 了。
为什么要设置为整数呢?而且是 30 的倍 ...
usr和opt的区别
Linux中/opt目录用来安装附加软件包,是用户级的程序目录,可以理解为D:/Software。安装到/opt目录下的程序,它所有的数据、库文件等等都是放在同个目录下面。opt有可选的意思,这里可以用于放置第三方大型软件(或游戏),当你不需要时,直接rm -rf掉即可。在硬盘容量不够时,也可将/opt单独挂载到其他磁盘上使用。
usr是Unix Software Resource的缩写,即“UNIX操作系统软件资源”所放置的目录。
linux中/usr为系统级的目录,可以理解为C:/Windows/。 linux中/usr下的/local目录为用户级的程序目录,可以理解为C:/Progrem Files/。用户自己编译的软件默认会安装到这个目录下。 这里主要存放那些手动安装的软件,即不是通过apt-get安装的软件。它和/usr目录具有相类似的目录结构。让软件包管理器来管理/usr目录,而把自定义的脚本(scripts)放到/u ...
四种基本的编程命名规范
匈牙利命令法 匈牙利命名法是早期的规范,由微软的一个匈牙利人发明的,是 IDE 还十分智障的年代的产物。那个年代,当代码量很多的时候,想要确定一个变量的类型是很麻烦的,不像现在 IDE 都会给提示,所以才产生了这样一个命名规范,估计现在已经没啥人用了吧……一个十分系统却又琐碎的命名规范。
该命名规范,要求前缀字母用变量类型的缩写,其余部分用变量的英文或英文的缩写,单词第一个字母大写。
int iMyAge; # "i": intchar cMyName[10]; # "c": charfloat fManHeight; # "f": float
前缀类型还有:
a 数组(Array)b 布尔值(Boolean)by 字节(Byte)c 有符号字符(Char)cb 无符号字符(Char Byte,并没有神马人用的)cr 颜色参考值(Color Ref)cx,cy 坐标差(长度 Short Int)dw 双字(Double W ...
GGUF文件
GGUF格式 GGUF是一种大模型文件格式,由开发者Georgi Gerganov提出。
具体来说,GGUF代表的是GPT-Generated Unified Format,这是一种针对大规模机器学习模型设计的二进制格式文件规范。它的主要优势在于能够将原始的大模型预训练结果经过特定优化后转换成这种格式,从而可以更快地被载入使用,并消耗更低的资源。以下是GGUF的一些关键特点:
紧凑的二进制编码:通过采用紧凑的二进制编码格式,GGUF能够有效地减少文件大小,使得模型数据更加高效地存储和传输。
优化的数据结构:GGUF格式利用了优化的数据结构,这有助于提高数据访问速度,尤其是在处理大规模数据集时。
内存映射:该格式支持内存映射技术,这意味着模型数据可以直接映射到内存中,从而提高了数据处理的效率。
跨硬件平台优化:GGUF旨在支持不同的硬件平台,包括CPU和GPU,使得模型能够在各种设备上高效运行。
多种模型格式:GGUF不仅限于一种特定的模型格式,它包括原始格式、exl2、finetuned模型等多种格式,每种都有其特定的应用场景和优化目标。
总的来说,GGUF是为了解 ...
实验室服务器连网
当实验室服务器无法联网时,可以将服务器流量转到个人计算机上,前提是不违反实验室规定。
使用clash4windows,Allow LAN,服务器上export http_proxy=http://...:7890和export https_proxy=http://...:7890,...是本机ip地址,如果本机和服务器处于同一以太网下,用以太网ip,如果处于校园网下,用WLAN校园网ip。7890是clash4windows的端口。
通过wget www.baidu.com查看是否连接成功。
这样就是在本次登录时(因为export仅限于本次登录修改环境变量)将服务器的流量走本机,从而连接外网。
如果在校园网中自行组件内网,处于校园网内的服务器通过此方式连接内网计算机,则需要在路由器中设置端口映射,将计算机的内网ip和端口映射到路由器ip和端口。
Linux服务器安装miniconda
# step 1: 获取安装shell脚本文件wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh# step 2: 执行脚本文件安装bash Miniconda3-latest-Linux-x86_64.sh# step 3: 激活source ~/.bashrc
Linux的export命令
Linux export 命令用于设置或显示环境变量。
在 shell 中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export 的效力仅限于该次登录操作。
语法:
export [-fnp][变量名称]=[变量设置值]
-f 代表[变量名称]中为函数名称。
-n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
-p 列出所有的shell赋予程序的环境变量。
实例:
# export -p //列出当前的环境变量值declare -x HOME=“/root“declare -x LANG=“zh_CN.UTF-8“declare -x LANGUAGE=“zh_CN:zh“declare -x LESSCLOSE=“/usr/bin/lesspipe %s %s“declare -x LESSOPEN=“| /usr/bin/lesspipe %s“declare -x LOGNAME=“root“declare -x LS_COLORS=““declare - ...
Linux中的snap
前言 通过Snap可以安装众多的软件包。需要注意的是,snap是一种全新的软件包管理方式,它类似一个容器拥有一个应用程序所有的文件和库,各个应用程序之间完全独立。所以使用snap包的好处就是它解决了应用程序之间的依赖问题,使应用程序之间更容易管理。但是由此带来的问题就是它占用更多的磁盘空间。
通过snap安装的软件默认路径为/snap/
查看已通过snap安装的snap包snap list可以查看,默认带的组件是core、lxd、snapd
可以搜索想要的snap包,例如tomcatsudo snap search tomcat
安装snap包sudo snap install tomcat-sample
删除snap包sudo snap remove tomcat
卸载snapsudo apt autoremove --purge snapd
要注意卸载会连带snap安装的所有软件
CentOS和Ubuntu区别
CentOS和Ubuntu都是流行的服务器操作系统,两者都具有强大的功能和安全性,但也有一些区别。选择哪个操作系统取决于我们特定的需求,当然也包含部分经验或着偏好。
二者都是免费的开源操作系统,可用于服务器和桌面应用。以下是它们之间的一些主要区别:
来源和支持: CentOS是基于Red Hat Enterprise Linux(RHEL)的开源版本,由社区维护,而Ubuntu是基于Debian的Linux操作系统,由Canonical Ltd.公司支持和维护。
稳定性和可靠性: CentOS是一个以稳定性和可靠性为重点的操作系统,在安全性和性能方面经过了广泛的测试和验证。Ubuntu也非常稳定,但由于其快速发展的特性,它的新版本可能会有一些bug。
软件库和软件包管理: Ubuntu具有大量的软件库和软件包,用户可以通过apt-get命令轻松安装和升级软件。CentOS具有更少的软件包,但是其软件包管理工具yum相对来说更加稳定和可靠。
内核版本: CentOS通常包含较旧的内核版本,但它们已经被证明是非常稳定和可靠的。Ubuntu则使用最新的内核版本,提供了更多新功能 ...