Docker版MKVtoolnix的安装及中文显示

embedded/2024/10/7 13:52:55/

在这里插入图片描述

本文是应网友 kkkhi 要求折腾的,只研究了 MKVtoolnix 的安装及中文显示,未涉及到软件的使用;

什么是 MKVtoolnix ?

MKVToolnix 是一款功能强大的多媒体处理工具,用于在 Linux、其他 Unix 系统和 Windows 上创建、修改和检查 Matroska(MKV) 文件的工具集合软件。

所有平台的下载包,都可以在这里找到:https://mkvtoolnix.download/downloads.html

本文中安装中文字体用到了两种方法:

  1. 在线安装:通过设置环境变量 ENABLE_CJK_FONT 实现在线安装,这种方式对网络有要求,如果你采用这种方式安装失败的话,可以考虑离线方式;
  2. 离线安装:从网上单独下载字库,并将字库文件拷入容器内;

安装

群晖上以 Docker 方式安装。

在注册表中搜索 mkvtoolnix ,选择第一个 jlesage/mkvtoolnix,版本选择 latest

本文写作时, latest 版本对应为 v24.09.1

容器名称

后续还有对容器的操作,所以我们约定容器名称为 mkvtoolnix

docker 文件夹中,创建一个新文件夹 mkvtoolnix,并在其中建两个子文件夹 configdata

文件夹装载路径说明
docker/mkvtoolnix/config/config存放配置、状态、日志等
docker/mkvtoolnix/data/storage需要供应用程序访问的文件

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口容器端口描述
58005800通过 Web 界面访问应用程序 GUI 的端口
59005900通过 VNC 协议访问应用程序 GUI 的端口

如果不用 VNC,建议删掉

环境

可变
TZ默认为 Etc/UTC,改设为 Asia/Shanghai
ENABLE_CJK_FONT默认为 0,设置为 1 时,安装开源计算机字体文泉驿正黑。该字体包含大量的中文、日文和韩文字符。

更多环境变量的说明,请参考官方文档 :https://github.com/jlesage/docker-mkvtoolnix#environment-variables

  • 修改时区设置

  • 修改字体设置

这个参数,老苏之前介绍的 RcloneBrowserFileZillafirefox 都用到了。

这种安装字体的方式最简单,正常的字体安装过程如下

但是如果你的网络不科学的话,很可能会卡在字体安装环节

导致容器无法访问

如果一直卡在这一步,建议将 ENABLE_CJK_FONT 改为默认的 0,等容器起来之后,我们再用手动的方式,加载中文字体

命令行安装

命令行方式默认没有设置 ENABLE_CJK_FONT=1,而是直接采用了方式二的离线安装方式

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 mkvtoolnix 和 子目录
mkdir -p /volume1/docker/mkvtoolnix/{config,data}# 进入 mkvtoolnix 目录
cd /volume1/docker/mkvtoolnix# 运行容器
docker run -d \--restart unless-stopped \--name mkvtoolnix \-p 5800:5800 \-v $(pwd)/config:/config:rw \-v $(pwd)/data:/storage:rw \-e TZ=Asia/Shanghai \jlesage/mkvtoolnix

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'services:mkvtoolnix:image: jlesage/mkvtoolnixcontainer_name: mkvtoolnixrestart: unless-stoppedports:- 5800:5800volumes:- ./config:/config:rw- ./data:/storage:rwenvironment:- TZ=Asia/Shanghai

然后执行下面的命令

# 新建文件夹 mkvtoolnix 和 子目录
mkdir -p /volume1/docker/mkvtoolnix/{config,data}# 进入 mkvtoolnix 目录
cd /volume1/docker/mkvtoolnix# 将 docker-compose.yml 放入当前目录# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:5800 就能看到主界面

设置中文

左上角菜单 MKVToolNix GUI --> Preferences --> GUI --> Interface language

下拉找到 Chinese(Simplifed)

如果你采用了 ENABLE_CJK_FONT=1,并且字体已经下载成功

而如果采用的 ENABLE_CJK_FONT=0,则前面的是方框,表示缺中文字体

OK

目前没有任何变化,如果字体已经下载成功,可以直接启动容器,否则的话先不着急重启容器,还需要有中文字体才行

下载字体

随便找了 2 个字体,前者较大,文件在 gitee 上。后者较小,文件在 github 上。请根据自己的网络选择下载

  • Songti.ttc 下载地址:https://portrait.gitee.com/ishelo/QQZoneMood/raw/master/Songti.ttc
  • simsun.ttc 下载地址:https://github.com/Fangyh09/font-ttf/raw/master/simsun.ttc

simsun.ttc 为例,因为要用命令行进行操作,所以需要用 SSH 客户端连接到群晖,依次执行下面的命令

# 进入 mkvtoolnix 目录
cd /volume1/docker/mkvtoolnix# 在当前目录中下载字体文件
wget https://github.com/Fangyh09/font-ttf/raw/master/simsun.ttc

当然你也可以在浏览器中下载完成后,再上传到群晖的软件目录中

接下来需要把字体文件拷入容器,并进入容器进行设置

# 将字库从群晖拷贝到容器内
docker cp ./simsun.ttc mkvtoolnix:/usr/share/fonts/# 进入容器
docker exec -it --user root mkvtoolnix /bin/sh# 扫描字体目录并生成字体信息的缓存  
fc-cache -vf# 查看系统内所有中文字体及字体文件的路径  
fc-list :lang=zh

接下来可以重启容器

# 重启容器
docker restart mkvtoolnix

刷新下页面,你会发现界面已经是中文了

这种离线字体安装的方法,老苏在之前的 digiKamWebtopHandBrakeLibreOffice 中都有介绍

参考文档

MKVToolNix - 维基百科,自由的百科全书
地址:https://zh.wikipedia.org/wiki/MKVToolNix

MKVToolNix news – Matroska tools for Linux/Unix and Windows
地址:https://mkvtoolnix.download/

jlesage/mkvtoolnix - Docker Image | Docker Hub
地址:https://hub.docker.com/r/jlesage/mkvtoolnix

jlesage/docker-mkvtoolnix: Docker container for MKVToolNix
地址:https://github.com/jlesage/docker-mkvtoolnix


http://www.ppmy.cn/embedded/124109.html

相关文章

三、数据链路层(上)

目录 3.1数据链路层概述 3.1.1术语 3.1.2功能 3.2封装成帧和透明传输 3.2.1封装成帧 ①字符计数法 ②字符(节)填充法 ③零比特填充法 ④违规编码法 3.2.2透明传输 3.2.3差错控制 差错原因 检错编码 奇偶校验 ☆循环冗余码CRC 例题 纠错…

音频搜索公司 DeepGram,定位语音搜索AI大脑,DeepGram想做“音频版”

1. 亦仁分享 DeepGram 成立于 2015 年,位于美国山景城,是一家基于 AI 技术的音频搜索引擎公司。运用机器学习进行语音识别、搜寻重要时刻并对音频和视频进行分类,帮助用户快速索引和浏览音频和视频文件,包括电话语音、会议语音、…

【JavaWeb】Nginx负载均衡与MQ负载均衡的效果和区别

今天学Nginx时,看到负载均衡的特点,忽然想起来消息队列也有负载均衡的特性。于是我就在想这两个中间件的负载均衡的特性有什么效果和区别。在此通过一篇博客记录一下。 通义千问的答案 Nginx 负载均衡 作用: Nginx 作为反向代理服务器&am…

一个真实可用的登录界面!

需要工具: MySQL数据库、vscode上的php插件PHP Server等 项目结构: login | --backend | --database.sql |--login.php |--welcome.php |--index.html |--script.js |--style.css 项目开展 index.html: 首先需要一个静态网页&#x…

APC论文总结

论文详情 论文标题:APC: Adaptive Patch Contrast for Weakly Supervised Semantic Segmentation 论文作者:Wangyu Wu,Tianhong Dai,Zhenhong Chen,Xiaowei Huang,Fei Ma,Jimin Xiao 发表时间…

PasteForm最佳CRUD实践,实际案例PasteTemplate详解之3000问(三)

作为“贴代码”力推的一个CRUD实践项目PasteTemplate,在对现有的3个项目进行实战后效果非常舒服!下面就针对PasteForm为啥我愿称为最佳CRUD做一些回答: 哪里可以下载这个PasteForm的项目案例 目前“贴代码”对外使用PasteForm的项目有"贴Builder(PasteSpide…

SSH(安全外壳协议)可以基于多种加密算法

SSH(安全外壳协议)可以基于多种加密算法,确保数据的机密性和完整性。以下是 SSH 中常见的加密类型: 1. 对称加密 对称加密算法用于加密会话中的数据,常见的算法包括: AES(高级加密标准&#…

Spring Boot 3.x 集成 Feign

在Spring Boot 3.x中集成Feign,可以大大简化微服务之间的HTTP调用。以下是关于Spring Boot 3.x集成Feign的详细步骤和说明: 一、Feign简介 Feign是一个声明式的HTTP客户端,它使得编写Web服务客户端变得更加简单。使用Feign,可以通…