Docker版MKVtoolnix的安装及中文显示

本文是应网友 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 需要供应用程序访问的文件

端口

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

bash 复制代码
# 查看端口占用
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

  • 修改时区设置
  • 修改字体设置

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

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

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

导致容器无法访问

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

命令行安装

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

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

bash 复制代码
# 新建文件夹 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 文件

yaml 复制代码
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

然后执行下面的命令

bash 复制代码
# 新建文件夹 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 上。请根据自己的网络选择下载

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

shell 复制代码
# 进入 mkvtoolnix 目录
cd /volume1/docker/mkvtoolnix

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

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

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

shell 复制代码
# 将字库从群晖拷贝到容器内
docker cp ./simsun.ttc mkvtoolnix:/usr/share/fonts/

# 进入容器
docker exec -it --user root mkvtoolnix /bin/sh
  
# 扫描字体目录并生成字体信息的缓存  
fc-cache -vf
  
# 查看系统内所有中文字体及字体文件的路径  
fc-list :lang=zh

接下来可以重启容器

shell 复制代码
# 重启容器
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

相关推荐
一名路过的小码农12 分钟前
ceph 18.2.4二次开发,docker镜像制作
ceph·docker·容器
xiangshangdemayi3 小时前
Windows环境GeoServer打包Docker极速入门
windows·docker·容器·geoserver·打包·数据挂载
程序员JerrySUN3 小时前
熟悉的 Docker,陌生的 Podman
linux·docker·容器·系统架构·podman
gobeyye4 小时前
Docker 用法详解
运维·docker·容器
小灰灰__5 小时前
Linux离线安装Docker命令,简单镜像操作
linux·docker·eureka
雪碧聊技术6 小时前
Docker3:docker基础1
运维·docker·容器·docker常见命令
大虾别跑8 小时前
docker安装zabbix +grafana
docker·zabbix·grafana
wsxlgg9 小时前
docker搭建jpom
docker
FLGB9 小时前
Docker 安装单机版mysql 并持久化数据
mysql·docker·容器
杰哥的技术杂货铺10 小时前
Centos 7 安装 Docker 最新版本
linux·docker·centos