
本文是应网友
kkkhi要求折腾的,只研究了MKVtoolnix的安装及中文显示,未涉及到软件的使用;
什么是 MKVtoolnix ?
MKVToolnix是一款功能强大的多媒体处理工具,用于在Linux、其他Unix系统和Windows上创建、修改和检查Matroska(MKV)文件的工具集合软件。
所有平台的下载包,都可以在这里找到:https://mkvtoolnix.download/downloads.html

本文中安装中文字体用到了两种方法:
- 在线安装:通过设置环境变量 ENABLE_CJK_FONT实现在线安装,这种方式对网络有要求,如果你采用这种方式安装失败的话,可以考虑离线方式;
- 离线安装:从网上单独下载字库,并将字库文件拷入容器内;
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 mkvtoolnix ,选择第一个 jlesage/mkvtoolnix,版本选择 latest。
本文写作时,
latest版本对应为v24.09.1;

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

卷
在 docker 文件夹中,创建一个新文件夹 mkvtoolnix,并在其中建两个子文件夹 config 和 data
| 文件夹 | 装载路径 | 说明 | 
|---|---|---|
| docker/mkvtoolnix/config | /config | 存放配置、状态、日志等 | 
| docker/mkvtoolnix/data | /storage | 需要供应用程序访问的文件 | 

端口
本地端口不冲突就行,不确定的话可以用命令查一下
# 查看端口占用
netstat -tunlp | grep 端口号
| 本地端口 | 容器端口 | 描述 | 
|---|---|---|
| 5800 | 5800 | 通过 Web界面访问应用程序GUI的端口 | 
| 5900 | 5900 | 通过 VNC协议访问应用程序GUI的端口 | 

如果不用 VNC,建议删掉

环境
| 可变 | 值 | 
|---|---|
| TZ | 默认为 Etc/UTC,改设为Asia/Shanghai | 
| ENABLE_CJK_FONT | 默认为 0,设置为1时,安装开源计算机字体文泉驿正黑。该字体包含大量的中文、日文和韩文字符。 | 
更多环境变量的说明,请参考官方文档 :https://github.com/jlesage/docker-mkvtoolnix#environment-variables
- 修改时区设置

- 修改字体设置

这个参数,老苏之前介绍的 RcloneBrowser、FileZilla 和 firefox 都用到了。
这种安装字体的方式最简单,正常的字体安装过程如下

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

导致容器无法访问

如果一直卡在这一步,建议将 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/mkvtoolnix
    container_name: mkvtoolnix
    restart: unless-stopped
    ports:
      - 5800:5800
    volumes:
      - ./config:/config:rw
      - ./data:/storage:rw
    environment:
      - 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
刷新下页面,你会发现界面已经是中文了

这种离线字体安装的方法,老苏在之前的 digiKam、Webtop、HandBrake、LibreOffice 中都有介绍
参考文档
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



















