Docker版MKVtoolnix的安装及中文显示

server/2024/10/7 10:42:37/

在这里插入图片描述

本文是应网友 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/server/126702.html

相关文章

Docker 安装与配置单机多磁盘 MinIO:高效存储解决方案

Docker 安装与配置单机多磁盘 MinIO:高效存储解决方案 文章目录 Docker 安装与配置单机多磁盘 MinIO:高效存储解决方案一 创建网络二 单机部署三 访问 MinIO Console 本文详述如何通过 Docker Compose 部署单机多磁盘的 MinIO 存储解决方案。首先&#x…

OpenGL ES 着色器(5)

OpenGL ES 着色器(5) 简述 着色器是在GPU上运行的程序,它会对每一个点都执行一次程序,并且计算出每个像素需要渲染的颜色,我们主要关注着色器的怎么传递数据,在OpenGL ES中,着色器传递数据分几种场景,一种…

【12月IEEE出版* 镇江 】第九届清洁能源与发电技术国际学术会议(CEPGT 2024)

2024 9th International Conference on Clean Energy and Power Generation Technology (CEPGT 2024) 第九届清洁能源与发电技术国际学术会议(CEPGT 2024),将于2024年12月27-29日在江苏镇江举办。高效清洁新能源的研究和应用是我国现阶段最主…

算法打卡:第十一章 图论part10

今日收获:Bellman_ford 队列优化算法(又名SPFA),bellman_ford之判断负权回路和单源有限最短路 1. Bellman_ford 队列优化算法(又名SPFA) 题目链接:94. 城市间货物运输 I (kamacoder.com) 思路…

LeetCode24. 两两交换链表中的节点(2024秋季每日一题 32)

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 示例 1: 输入:head [1,2,3,4] 输出:[2,1,…

Goland 设置GOROOT报错 The selected directory is not a valid home for Go SDK

问题描述 将go版本从1.16升级到1.22时配置GoRoot报错了如下图问题 The selected directory is not a valid home for Go SDK起因的是我的这个goland比较老了,2020年的。所以需要设置下版本 解决 OK,说一下解决办法: 找到go的安装路径&am…

Java学习-反射泛型注解

目录 1. 反射 1.1 基本介绍 1.2 作用 1.3 反射实现的类 1.4 获取类的字节码对象 1.5 反射机制的运用 1.6 反射的基本方法 1.7 反射效率慢的原因 2. 泛型 2.1 基本介绍 2.2 限定通配符和非限定通配符 2.3 类型擦除 3. 注解-Annontation 3.1 基本介绍 3.2 注解的用…

springboot项目中属性的使用优先级;maven编译插件切换环境变量

概述 在项目部署时,相关的生产环境和测试环境是分开的,但是代码是同一套; 所以一般会有多套变量; 项目中默认变量(一般是测试环境) 线上变量(线上数据较敏感,一般也不会放在代码中&…