麦思实验室 - 软件
type: channel
link: https://blog.wiseidc.com/category/software/
items: Windows 7镜像手动注入NVMe和USB 3.0驱动
items: Beszel（轻量级开源服务器监控平台）搭建与配置指南
items: Apache安装与配置详解
items: git从入门到掌握
items: nginx安装与配置详解
items: php安装与配置详解
items: certbot自动签发ssl证书
items: LibreOffice安装与使用详解
items: FFmpeg安装与使用详解
items: SoX（Sound eXchange）安装与使用详解

Windows 7镜像手动注入NVMe和USB 3.0驱动
type: item
date: 2026-08-29T12:03:00+00:00
description: 修改boot.wim获取wim索引信息D:\windows_7>dism /Get-ImageInfo /imagefile:src\sources\boot.wim 部署映像服务和管理工具 版本: 10.0.17763.5830 映像详细信息: src\sources\boot.wim 索引: 1 名称: Microsoft Windows PE (x64) 描述: Microsoft Windows PE (x64) 大小: 1,158,437,921 字节 索引: 2 名称: Microsoft Windows Setup (x64) 描述: Microsoft Windows Setup (x64) 大小: 1,257,727,060 字节 操作成功完成。挂载boot.wim第一个映像D:\windows_7>dism /Mount-Image /ImageFile:src\sources\boot.wim /Index:1 /MountDir:"mount" 部署映像服务和管理工具 版本: 10.0.17763.5830 正在安装映像 [==========================100.0%==========================] 操作成功完成。 /MountDir:"mount"：挂载到当前工作目录下的mount文件夹。添加NVMe支持D:\windows_7>dism /Image:"mount" /Add-Package /PackagePath:nvme\hotfix 部署映像服务和管理工具 版本: 10.0.17763.5830 映像版本: 6.1.7601.17514 正在处理 1 (共 2) - 正在添加程序包 D:\windows_7\nvme\hotfix\Windows6.1-KB2990941-v3-x64.msu [==========================100.0%==========================] 正在处理 2 (共 2) - 正在添加程序包 D:\windows_7\nvme\hotfix\Windows6.1-KB3087873-v2-x64.msu [===========================99.6%========================= ] 操作成功完成。 D:\windows_7>dism /Image:mount /Add-Driver /Driver:nvme /Recurse /ForceUnsigned 部署映像服务和管理工具 版本: 10.0.17763.5830 映像版本: 6.1.7601.17514 正在搜索要安装的驱动程序包... 找到 2 个要安装的驱动程序包。 正在安装第 1 个，共有 2 个 - D:\windows_7\nvme\intel\IaNVMe.inf: 驱动程序包已成功安装。 正在安装第 2 个，共有 2 个 - D:\windows_7\nvme\samsung\secnvme.inf: 驱动程序包已成功安装。 操作成功完成。 /Driver:nvme：加载当前工作目录下nvme目录下的驱动程序。添加USB3.1驱动D:\windows_7>dism /Image:mount /Add-Driver /Driver:usb /Recurse /ForceUnsigned 部署映像服务和管理工具 版本: 10.0.17763.5830 映像版本: 6.1.7601.17514 正在搜索要安装的驱动程序包... 找到 13 个要安装的驱动程序包。 正在安装第 1 个，共有 13 个 - D:\windows_7\usb\amd\bolton\amdhub\amdhub30.inf: 驱动程序包已成功安装。 正在安装第 2 个，共有 13 个 - D:\windows_7\usb\amd\bolton\amdxhc\amdxhc.inf: 驱动程序包已成功安装。 正在安装第 3 个，共有 13 个 - D:\windows_7\usb\amd\usb30_zp\amdhub\amdhub3.INF: 驱动程序包已成功安装。 正在安装第 4 个，共有 13 个 - D:\windows_7\usb\amd\usb30_zp\amdxhc\amdxhc.INF: 驱动程序包已成功安装。 正在安装第 5 个，共有 13 个 - D:\windows_7\usb\amd\usb31_pt\amdhub\amdhub31.INF: 驱动程序包已成功安装。 正在安装第 6 个，共有 13 个 - D:\windows_7\usb\amd\usb31_pt\amdxhc\amdx…

Beszel（轻量级开源服务器监控平台）搭建与配置指南
type: item
date: 2026-08-28T15:12:00+00:00
description: 项目地址：https://www.github.com/henrygd/beszel安装Hub测试运行beszel hub[root@ecs ~]# cd /usr/local/beszel [root@ecs beszel]# chmod a+x beszel [root@ecs beszel]# ./beszel serve --http 0.0.0.0:8090 2026/08/29 11:03:09 Server started at http://0.0.0.0:8090 ├─ REST API: http://0.0.0.0:8090/api/ └─ Dashboard: http://0.0.0.0:8090/_Server started at http://0.0.0.0:8090表明beszel hub已经启动成功，ctrl + c结束进程，以便接下来通过服务方式启动。注册服务[root@ecs ~]# cat > /etc/systemd/system/beszel.service << EOF [Unit] Description=Beszel Hub After=network.target [Service] Type=simple Restart=always RestartSec=3 User=root WorkingDirectory=/usr/local/beszel ExecStart=/usr/local/beszel/beszel serve --http "0.0.0.0:8090" [Install] WantedBy=multi-user.target EOF启动服务[root@ecs ~]# systemctl enable --now beszel测试访问：http://192.168.1.100:8090/反向代理nginxhttp { server { listen 80; server_name beszel.dev.wiseidc.com; location / { proxy_pass http://127.0.0.1:8090; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } } }必须设置Upgrade，否则Windows客户端WebSocket连接会失败，报400错误。添加agenthub端添加系统登录beszel hub端，点击右上角的“添加系统”，弹出“添加系统”对话框，切换到“二进制”标签页，填写“名称”和“主机/IP”，“公钥”和“令牌”会自动生成，接下来的步骤要用到。agent端测试运行beszel agent[root@ecs ~]# cd /usr/local/beszel [root@ecs beszel]# chmod a+x beszel-agent [root@ecs beszel]# ./beszel-agent -key "<公钥>" -token "<令牌>" -url "http://beszel.dev.wiseidc.com"-key：为第一步获取的公钥。-token：为第一步获取的令牌。http://beszel.dev.wiseidc.com：是做了反向代理的域名地址，也可以使用IP:45876。当配置了url或HUB_URL后，agent会主动连接hub（WebSocket），这种方式数据传输是实时双向的，性能更好。这种方式要求hub必须处于公网环境（或做内网穿透）。在没做反向代理的情况下，必须开放hub的8090端口。当去掉url或HUB_URL后，hub会主动连接agent（ssh），这种方式数据传输采用轮训模式，开销较大。这种方式要求agent必须处于公网环境且开放45876端口。注册服务[root@ecs ~]# cat > /etc/systemd/system/beszel-agent.service << EOF [Unit] Description=Beszel Agent Service After=network-online.target Wants=network-online.target [Service] ExecStart=/usr/local/beszel/beszel-agent Environment="LISTEN=45876" Environment="KEY=<公钥>" Environment="TOKEN=<令牌>" Environment="HUB_URL=http://beszel.dev.wiseidc.com…

Apache安装与配置详解
type: item
date: 2026-08-23T04:48:00+00:00
description: 安装CentOS 7.9源码安装安装apr[root@ecs ~]# yum install -y bzip2 gcc [root@ecs ~]# cd /usr/local/src && tar -jxvf apr-1.7.6.tar.bz2 && cd apr-1.7.6 [root@ecs apr-1.7.6]# ./configure --prefix=/usr/local/apr [root@ecs apr-1.7.6]# make && make install安装apr-util[root@ecs ~]# yum install -y expat-devel [root@ecs ~]# cd /usr/local/src && tar -jxvf apr-util-1.6.5.tar.bz2 && cd apr-util-1.6.5 [root@ecs apr-util-1.6.5]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr [root@ecs apr-util-1.6.5]# make && make installapr-util（Apache Portable Runtime Utility）从1.6.0开始依赖Expat库（xml解析器）。apr-util从1.6.0开始要求gcc不能低于5.0（必须支持__has_attribute ），而CentOS 7.9默认gcc版本为4.8.5，因此必须升级gcc，否则只能安装1.6以下的版本（最高版本1.5.4）。安装apr-util 1.5.4[root@ecs ~]# cd /usr/local/src && tar -jxvf apr-util-1.5.4.tar.bz2 && cd apr-util-1.5.4 [root@ecs apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr [root@ecs apr-util-1.5.4]# make && make install安装pcre[root@ecs ~]# yum install -y gcc-c++ [root@ecs ~]# cd /usr/local/src && tar -jxvf pcre-8.45.tar.bz2 && cd pcre-8.45 [root@ecs pcre-8.45]# ./configure --prefix=/usr/local/pcre [root@ecs pcre-8.45]# make && make install [root@ecs pcre-8.45]# echo "export PATH=\$PATH:/usr/local/pcre/bin" >> /etc/profile [root@ecs pcre-8.45]# source /etc/profile需要将pcre加入PATH环境变量，否则编译apache时会因找不到pcre-config而报错：configure: error: Did not find working script at pcre-config。pcre已停止维护，最后一个版本为8.45，2015年发布了新构版本pcre2，pcre2当前最新版为10.47。安装openssl[root@ecs ~]# yum install -y perl perl-IPC-Cmd perl-Time-Piece [root@ecs ~]# cd /usr/local/src && tar xzvf openssl-3.5.7.tar.gz && cd openssl-3.5.7 [root@ecs openssl-3.5.7]# ./config --prefix=/usr/local/openssl -fPIC no-gost [root@ecs openssl-3.5.7]# make depend && make installOpenSSL在3.0.0之前，版本格式为主版本.次版本.补丁版本[字母]，字母代表补丁级别。如1.0.2表示1.0.2系列的首个版本，1.0.2q则表示1.0.2系列的第17个补丁版本。从3.0.0开始改为标准语义化版本，即Major（主版本）.Minor（次版本）.Patch（补丁版本）。3.5系列为LTS版，此系列当前（2026年8月）最高版为：3.5.7，3.0之前的最高版为：1.1.1w。OpenSSL 3.0之前仅依赖perl，从3.0开始除了依赖perl，还依赖IPC::Cmd和Time…

git从入门到掌握
type: item
date: 2026-08-18T02:09:13+00:00

nginx安装与配置详解
type: item
date: 2026-08-07T09:54:00+00:00
description: 安装CentOS 7.9安装依赖[root@ecs ~]# yum install -y gcc pcre-devel openssl-devel安装nginx[root@ecs ~]# groupadd www && useradd -g www www -s /sbin/nologin [root@ecs ~]# cd /usr/local/src [root@ecs src]# tar -zxvf nginx-1.30.1.tar.gz && cd nginx-1.30.1 [root@ecs src]# ./configure --prefix=/usr/local/nginx \ --with-http_ssl_module \ --with-http_stub_status_module \ --with-http_gzip_static_module \ --user=www --group=www [root@ecs src]# make && make installnginx安装时依赖pcre、openssl和zlib模块。使用yum install -y pcre-devel openssl-devel安装这3个模块（安装openssl-devel会安装依赖zlib-devel），nginx会自动查找依赖模块。如果不想安装这些依赖模块，可以使用--with-pcre=、--with-openssl=和--with-zlib=指定模块源码路径。模块说明：模块说明pcre提供正则表达式支持，rewrite模块依赖PCRE库，编译pcre依赖gcc-c++。下载地址：https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.bz2/downloadopenssl--with-http_ssl_module启用ssl模块，依赖openssl。下载地址：https://www.openssl.org/source/openssl-1.1.1v.tar.gzzlib文件压缩和解压缩的库，使用zlib对http数据包进行gzip压缩和解压缩。下载地址：https://zlib.net/fossils/zlib-1.3.1.tar.gz模块源码安装[root@ecs ~]# yum install -y bzip2 gcc-c++ [root@ecs ~]# cd /usr/local/src [root@ecs src]# tar -jxvf pcre-8.45.tar.bz2 [root@ecs src]# tar -zxvf openssl-1.1.1v.tar.gz [root@ecs src]# tar -zxvf zlib-1.3.1.tar.gz [root@ecs src]# groupadd www && useradd -g www www -s /sbin/nologin [root@ecs src]# tar -zxvf nginx-1.30.4.tar.gz && cd nginx-1.30.4 [root@ecs src]# ./configure --prefix=/usr/local/nginx \ --with-http_ssl_module \ --with-http_stub_status_module \ --with-http_gzip_static_module \ --with-pcre=/usr/local/src/pcre-8.45 \ --with-zlib=/usr/local/src/zlib-1.3.1 \ --with-openssl=/usr/local/src/openssl-1.1.1v \ --user=www --group=www [root@ecs src]# make && make install开放防火墙端口[root@ecs ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent [root@ecs ~]# firewall-cmd --zone=public --add-port=443/tcp --permanent [root@ecs ~]# firewall-cmd --reload开机自启动[root@ecs ~]# sed -i '/#pid/apid logs/nginx.pid;' /usr/local/nginx/conf/nginx.conf [root@ecs ~]# cat > /usr/lib/systemd/system/nginx.service <<EOF [Unit…

php安装与配置详解
type: item
date: 2026-08-07T09:52:00+00:00
description: CentOS 7.9php-fpm 5.6.40安装php[root@ecs ~]# cd /usr/local/src && tar -jxvf freetype-2.4.0.tar.bz2 && cd freetype-2.4.0 [root@ecs freetype-2.4.0]# ./configure --prefix=/usr/local/freetype [root@ecs freetype-2.4.0]# make && make install [root@ecs freetype-2.4.0]# yum install -y bzip2 gcc libxml2-devel bzip2-devel curl-devel libjpeg-devel libpng-devel libmcrypt-devel php-gd [root@ecs freetype-2.4.0]# cd /usr/local/src && tar -jxvf php-5.6.40.tar.bz2 && cd php-5.6.40 [root@ecs php-5.6.40]# ./configure --prefix=/usr/local/php \ --enable-fpm \ --with-mcrypt \ --enable-mbstring \ --disable-pdo \ --with-curl \ --disable-debug \ --disable-rpath \ --enable-inline-optimization \ --with-bz2 \ --with-zlib \ --enable-sockets \ --enable-sysvsem \ --enable-sysvshm \ --enable-pcntl \ --enable-mbregex \ --with-mhash \ --enable-zip \ --with-pcre-regex \ --with-mysql \ --with-mysqli \ --with-gd \ --with-jpeg-dir \ --with-freetype-dir=/usr/local/freetype [root@ecs php-5.6.40]# make && make install配置php[root@ecs ~]# cd /usr/local/php/etc/ [root@ecs etc]# cp php-fpm.conf.default php-fpm.conf [root@ecs etc]# sed -i -e '/^;pid =/c\pid = /usr/local/php/var/run/php-fpm.pid' \ -e '/^;daemonize =/c\daemonize = yes' \ -e '/^user =/c\user = www' \ -e '/^group =/c\group = www' \ -e '/^pm.max_children =/c\pm.max_children = 100' php-fpm.conf开机自启动[root@ecs ~]# cat > /usr/lib/systemd/system/php-fpm.service <<EOF [Unit] Description=The PHP FastCGI Process Manager After=syslog.target network.target [Service] Type=simple PIDFile=/usr/local/php/var/run/php-fpm.pid EnvironmentFile=/usr/local/php/etc/php-fpm.conf ExecStart=/usr/local/php/sbin/php-fpm --daemonize ExecReload=/bin/kill -USR2 $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target EOF [root@ecs ~]# systemctl daemon-reload [root@ecs ~]# systemctl enable --now php-fpm [root@ecs ~]# ps aux | grep php-fpm添加到PATH[root@ecs ~]# echo "export PATH=\$PATH:/usr/local/php/bin" >> /etc/profile [root@ecs ~]# source /etc/profile [root@ecs ~]# php -mUbunt…

certbot自动签发ssl证书
type: item
date: 2026-08-07T08:25:00+00:00
description: 安装certbot[root@ecs ~]# yum install -y certbot证书操作http-01验证签发证书[root@ecs ~]# certbot certonly -d wiseidc.com -d www.wiseidc.com --webroot -w /data/wwwroot/wiseidc注：使用http-01验证方式，必须保证http://www.wiseidc.com和http://wiseidc.com能够正常访问。续签证书[root@ecs ~]# certbot renew --deploy-hook "systemctl restart nginx" [root@ecs ~]# certbot renew --renew-hook "/usr/local/nginx/sbin/nginx -s reload"删除证书[root@ecs ~]# certbot delete --cert-name wiseidc.comdns-01验证安装aliyun-cli[root@ecs ~]# cd /usr/local/src [root@ecs src]# wget https://aliyuncli.alicdn.com/aliyun-cli-linux-latest-amd64.tgz [root@ecs src]# tar xzvf aliyun-cli-linux-latest-amd64.tgz [root@ecs src]# mv aliyun /usr/local/bin [root@ecs src]# aliyun version 3.4.11配置凭证[root@ecs ~]# aliyun configure set --profile default --mode AK \ --access-key-id ****** \ --access-key-secret ****** \ --region cn-shanghai--profile default：配置profile名称为default，cat ~/.aliyun/config.json可以看到有多个profiles，通过描述名区分不同的profile。验证ak凭证是否生效，查看当前region区域内的ecs列表：[root@ecs ~]# aliyun ecs DescribeInstances --profile default安装certbot-dns-aliyun[root@ecs ~]# cd /usr/local/src [root@ecs ~]# wget http://cdn.jsdelivr.net/gh/justjavac/certbot-dns-aliyun@main/alidns.sh [root@ecs ~]# mv alidns.sh /usr/local/bin [root@ecs ~]# chmod +x /usr/local/bin/alidns.sh [root@ecs ~]# ln -s /usr/local/bin/alidns.sh /usr/local/bin/alidns签发证书[root@ecs ~]# certbot certonly -d wiseidc.com -d *.wiseidc.com \ --manual --preferred-challenges dns \ --manual-auth-hook "alidns" \ --manual-cleanup-hook "alidns clean" \ --dry-run-d wiseidc.com：指定域名，可以指定多个域名。manual：手动模式。preferred-challenges dns：使用DNS-01方式验证。manual-auth-hook "alidns"：在DNS验证时调用alidns脚本。manual-cleanup-hook "alidns clean"：在DNS验证完成后调用alidns clean脚本。--dry-run：模拟签发过程，不会实际签发证书，正式签发不需要此参数。续期证书[root@ecs ~]# certbot renew --quiet --preferred-challenges dns \ --manual-auth-hook "alidns" \ --manual-cleanup-hook "alidns clean" \ --deploy-hook "systemctl restart nginx"

LibreOffice安装与使用详解
type: item
date: 2026-08-06T04:36:00+00:00
description: CentOS 7.9安装LibreOffice安装JRE[root@ecs ~]# cd /usr/local/src [root@ecs src]# tar -zxvf server-jre-8u301-linux-x64.tar.gz [root@ecs src]# mv /usr/local/src/jdk1.8.0_301 /usr/local/jdk [root@ecs src]# cat >> /etc/profile << EOF export JAVA_HOME=/usr/local/jdk export JRE_HOME=\$JAVA_HOME/jre export CLASSPATH=.:\$JAVA_HOME/lib:\$JRE_HOME/lib export PATH=\$JAVA_HOME/bin:\$PATH EOF [root@ecs src]# source /etc/profile安装LibreOffice安装主程序[root@ecs ~]# cd /usr/local/src [root@ecs src]# tar -zxvf LibreOffice_7.5.7.1_Linux_x86-64_rpm.tar.gz [root@ecs src]# cd LibreOffice_7.5.7.1_Linux_x86-64_rpm/RPMS && yum install -y *.rpm安装中文语言包如需处理中文字体，必须安装中文语言包，否则无法正确识别中文字体名称。[root@ecs ~]# cd /usr/local/src [root@ecs ~]# tar -zxvf LibreOffice_7.5.7.1_Linux_x86-64_rpm_langpack_zh-CN.tar.gz [root@ecs ~]# cd LibreOffice_7.5.7.1_Linux_x86-64_rpm_langpack_zh-CN && yum install -y *.rpm安装依赖[root@ecs ~]# yum install -y libXinerama cairo cups-libs不安装依赖会出现以下报错：/opt/libreoffice7.5/program/oosplash: error while loading shared libraries: libXinerama.so.1: cannot open shared object file: No such file or directory/opt/libreoffice7.5/program/soffice.bin: error while loading shared libraries: libcairo.so.2: cannot open shared object file: No such file or directory/opt/libreoffice7.5/program/soffice.bin: error while loading shared libraries: libcups.so.2: cannot open shared object file: No such file or directory安装中文字体必须安装中文字体，否则LibreOffice在处理文档时，中文字体会变成方框。[root@ecs ~]# cp /usr/local/src/fonts/*.ttf /usr/share/fonts切换中文系统语言在非中文系统语言下，LibreOffice将无法识别中文字体名称，从而认为字体缺失，LibreOffice会使用第一个中文字体（按照拼音首字母排序）替换，如果找不到中文字体，则显示为方框。[root@ecs ~]# sed -i "/^LANG=\"en_US.UTF-8\"/cLANG=\"zh_CN.UTF-8\"" /etc/locale.conf [root@ecs ~]# reboot在安装CentOS 7.9时默认已经包含了大量语言包，因此可以直接修改/etc/locale.conf即可切换中文语言。但如果使用极简安装（如Docker CentOS），默认可能没有安装中文语言包，即使修改了/etc/locale.conf也无法显示中文，因为缺少语言包文件。查看系统已安装语言包：[root@ecs ~]# locale -a | grep zh_CN安装中文语言包[root@ecs ~]# localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8临时中文显示[root@ecs ~]# LC_ALL=zh_CN.UTF-8 date 2026年…

FFmpeg安装与使用详解
type: item
date: 2026-08-05T13:10:00+00:00
description: 基础概念容器格式（Container Format）容器格式又称封装格式，用于封装视频、音频、字幕、元数据（标题、章节信息等）等各种流媒体内容，容器决定了文件的扩展名。常见的容器格式：容器格式说明mp4支持多种编解码器，广泛用于互联网和移动设备mkv支持多轨音频、字幕，灵活性强，常用于高清电影和视频avi支持功能有限，但兼容性强mov苹果格式，主要用于QuickTimeflvFlash流媒体，现在使用较少webm由Google提出，专为web视频流设计，轻量且开放ogg免费、无专利限制、高质量的音频压缩格式编码格式（Codec）编码格式也称编解码器（Codec，Compressor/Decompressor），是对音视频数据进行压缩和解压缩的技术。编码器将原始多媒体数据压缩为更小的文件，以便于存储和传输，而解码器则负责将压缩的数据还原为可播放的音频或视频。常见的视频编码格式：编码格式说明H.264 (AVC)最常用的压缩标准，广泛用于网络流媒体、蓝光等H.265 (HEVC)H.264的升级版，压缩效率更高，适用于4K、8K视频MPEG-4早期的压缩标准，主要用于流媒体和在线视频VP9Google开发的开源编解码器，常用于YouTube视频AV1更先进的开源编解码器，旨在取代H.265和VP9容器格式和编码格式密切相关，但职责不同。容器负责封装和管理音视频、字幕等数据，编码格式负责压缩和解压实际的音视频数据。同一容器可以支持多种编码格式。例如mp4容器可以使用H.264、H.265等不同的编解码器，mkv容器支持H.264、VP9等多种音视频编码。安装编译环境nasm/yasmnasm/yasm都是汇编编译器，yasm是从nasm的基础上开发出来的，属于同宗，使用了相同的语法，所以nasm的代码可以用yasm编译。yasm对nasm一些不合理的地方进行了改良。但yasm更新较慢，而nasm更新较快，能支持更新的指令集，而且还支持Gas语法和AMD64（EM64T）架构，跨平台，支持多种目标文件格式。在Window平台上，fasm支持最好。必须安装nasm/yasm，否则会报错：nasm/yasm not found or too old. Use --disable-x86asm for a crippled build.。nasm下载地址：https://www.nasm.us/pub/nasm/releasebuilds/[root@ecs ~]# yum install -y gcc [root@ecs ~]# tar -xvf nasm-2.15.05.tar.gz && cd nasm-2.15.05 [root@ecs nasm-2.15.05]# ./configure && make && make installnasm和yasm二者安装其一即可，但由于x265 2.6版之后，只能使用nasm 2.13或更高版本编译，因此如果要安装x265 2.6之后的版本就只能选择nasm。安装媒体开发库SDLSDL是一套开源的跨平台多媒体开发库，专注于提供图形、音频和输入设备的访问。SDL主要用于：图形显示：提供对窗口、渲染器和纹理的控制，用于显示图像或视频；音频输出：处理和播放音频数据；输入处理：管理键盘、鼠标等输入设备。SDL通常和ffmpeg搭配使用，可以实现功能上的互补。ffmpeg主要负责音视频解码，再由SDL负责将视频原始帧数据显示到屏幕，将解码后的音频数据输出到扬声器。在需要实时处理和播放的音视频应用中，ffmpeg解码后的数据通过SDL进行渲染和播放。编译ffmpeg的时候加上参数--enable-ffplay即可生成ffplay。[root@ecs ~]# cd /usr/local/src [root@ecs src]# tar -zxvf SDL2-2.0.20.tar.gz && cd SDL2-2.0.20 [root@ecs SDL2-2.0.20]# ./configure && make -j 16 && make install注：SDL只有在生成ffplay时才是必须的，如果不需要编译ffplay则忽略SDL。安装依赖库libmp3lame[root@ecs ~]# cd /usr/local/src [root@ecs src]# tar xzvf lame-3.100.tar.gz && cd lame-3.100 [root@ecs src]# ./configure --enable-nasm && make && make installffmpeg不支持mp3编码，因此需要依赖libmp3lame实现编码功能，但ffmpeg支持mp3解码，因此无需安装libMAD。xvid…

SoX（Sound eXchange）安装与使用详解
type: item
date: 2026-08-05T07:13:00+00:00
description: 安装SoX安装依赖libmp3lamelibmp3lame是目前最好的mp3编码器，编码高质量mp3最好也是唯一的选择。[root@ecs ~]# yum install -y lame-devellame-devel包含了libmp3lame.so，SoX调用libmp3lame.so实现解码mp3功能。windows sox默认不支持编解码mp3，需要依赖libmp3lame-0.dll和libmad-0.dll才能实现编解码功能。将wav等音频格式转为mp3时，使用libmp3lame-0.dll进行编码。将mp3转为wav等格式时，使用libmad-0.dll进行解码。linux lame即可以编码，也可以解码mp3、wav和aif格式，等效于windows sox + libmp3lame-0.dll + libmad-0.dll。wav转mp3[root@ecs ~]# lame -h input.wav output.mp3mp3转wav[root@ecs ~]# lame input.mp3 output.wavlibmadlibMAD是一个开源的高精度MPEG音频解码库，支持MPEG-1。MPEG-1音频分3层，分别是：MPEG-1 Layer1、MPEG-1 Layer2和MPEG-1 Layer3（简称mp3）。[root@ecs ~]# yum install -y libmad-devel虽然lame工具有解码mp3的功能，但libmp3lame并不具备解码mp3的功能，因此SoX需要依赖libmad实现mp3解码功能。id3tagmp3格式标准里没有特别定义保存曲目相关信息的结构，于是在1996年有人提出在mp3文件的末尾添加128字节额外的数据空间用于存储歌曲名、演唱者、专辑名、音轨编号、曲目类型等信息，这些信息成为ID3Tag。[root@ecs ~]# yum install -y libid3tag-devel zlib-devel注：sox编译id3tag时依赖zlib库。towlameTwoLAME is an optimised MPEG Audio Layer 2 (MP2) encoder based on tooLAME by Mike Cheng, which in turn is based upon the ISO dist10 code and portions of LAME.[root@ecs ~]# yum install -y twolame-devel注：twolame-devel自动安装twolame-libs。lame-devel、libmad-devel和twolame-libs均来自epel源，需要先安装epel源。flacflac是一套著名的自由音频无损压缩编码器，不同于其它有损编码（mp3、aac等），flac不会破坏任何原有的音频信息。[root@ecs ~]# yum install -y flac-develvorbis有损音频编解码器（需配合ogg容器使用），完全免费、开放，没有专利限制。[root@ecs ~]# yum install -y libvorbis-developus有损音频编解码器，和vorbis都是由xiph.org基金会开发。opus后由IETF（互联网工程任务组）进行标准化，目的用一种格式包含声音和语音，取代speex和vorbis。[root@ecs ~]# yum install -y opusfile-develwindows可以使用opus-tools实现ogg音频转换，opus-tools等效于sox + libogg-0.dll。wav转ogg[root@ecs ~]# opusenc input.wav output.oggogg转wav[root@ecs ~]# opusdec input.ogg output.wav查看ogg信息[root@ecs ~]# opusinfo input.oggamr全称Adaptive Multi-Rate，自适应多速率编码，主要用于移动设备的音频，压缩比大，但相对其他的压缩格式质量差，多用于人声通话。amr一般是指amr-nb，8kHz采样，有8种比特率的编解码算法，另外有amr-wb，16kHz采样，有9种比特率的编解码算法。由于amr-wb采样率高，所以复杂度大概是amr-nb的两倍。amr-nb和amr-wb都属于speech codec，对audio的编码效果并不好。[root@ecs ~]# yum install -y gcc-c++ [root@ecs ~]# tar -zxvf opencore-amr-0.1.6.tar.gz && cd open…