mp4文件加入字幕显示

众所周知,MKVToolNix可以为mkv文件加入多种字幕,但到了mp4,内嵌字幕会变的比较麻烦。起因是从Youtube下载了一部MV,由于音视频和字幕是分开下载的,而且下载的是AV1编码,就想着不要重新打包mkv,而是直接在mp4中嵌入字幕。

首先说原理,PotPlayer是可以识别到Codec ID为tx3g标签的字幕,tx3g是用于3GPP/MPEG时期的带有时间标记的文本,我们要利用这个特性,让字幕显示为tx3g,这样一般的播放器就都可以识别了。实现起来比较简单的方式就是使srt或者ttxt(GPAC Timed Text XML)会通过MP4Box直接显示为tx3g

先将下载的字幕(我下载到的是webvtt格式)转换为srt,webvtt转换为srt比较简单,没有工具的情况下,作为文本文件打开,把标记WEBVTT文件头删掉就可以了。

然后通过下面的代码直接mux即可:

»

利用MP4Box解出tx3g格式字幕

首先说明的是,MKVToolNix无法加载tx3g格式的字幕,这种字幕一般封装在mp4文件中,以网上下载的居多。另外用BBDown下载的bilibili视频如果带字幕的话,也是这种格式。

以某集电视剧为例,文件名:IRIS.S02E01.2013.WEB-DL.1080p.H265.AAC-Xiaomi.mp4

首先需要了解字幕文件所在的轨道号:

»

OpenWrt中MosDNS配置

请配合luci-app-mosdns包的自定义配置食用,本配置修改自官方配置luci-app-mosdns包的配置,兼顾了IPv6的功能,但不会碰到那种客户端解析IPv6优先导致超时连接的恶心情况。

使用时注意一下几点,避免踩坑:

  1. 端口号如果不是5335的需要自行修改。
  2. 配置里的DNS可以使用UDP、DOH、DOT连接,使用DOH和DOT时第一个DNS尽量使用IP,如果一定要使用域名,请参考官方配置对应的IP地址,因为MosDNS可能不能直接解析域名。
  3. 与Passwall的配合使用,需要将Passwall的远程DNS设置为127.0.0.1:5335或者你的自定义端口号。
  4. 保证配置中提到的文件可用,除了luci-app-mosdns包,还需要安装v2ray,安装了Passwall的会自动安装v2ray依赖。

以下是/etc/mosdns/cus_config.yaml的内容:

»

解决群晖File Station中文拼音排序问题

方法来自:https://blog.icedream.xyz/2020/01/01/破解群晖file-station中文未按拼音排序问题/

以下基于DSM 6.23-25426 Update 3 (x64)

涉及修改文件为/usr/lib/libsynocore.so.6

ucol_open涉及到以下代码位置:

LOAD:000000000001650F                 lea     rsi, [rsp+28h+var_1C]
LOAD:0000000000016514                 lea     rdi, aPStartAddress+12h ; ""
LOAD:000000000001651B                 call    _ucol_open

具体修改操作:

  1. 48 8D 3D 78 A9 00 00替换成48 8D 3D 7B AF 00 00
  2. 查找字符串string_join.c,并替换成string_joinzh

结论:这样修改完成后,在File Station中按拼音排序时,中文目录会排列到所有英文目录前。

»

Cloudreve迁移到MySQL

环境 & 起因

  • 系统:Debian 10
  • 硬件:1 vCPU 512MB
  • Cloudreve软件版本:3.3.2 with SQLite

随着文件数的增加,SQLite速度和稳定性都差一些,而且数据库文件越来越大,虽然网盘就我一个人在用,崩了可以重新装,但还是秉着一劳永逸的原则,开始了迁移工作。

»

自编译基于Python的钉钉内网穿透(ngrok)

源代码来自于hauntek/python-ngrok,自己又从dingtalk/ngrok中提取了源码进行比对,然后用pyinstaller编译而来。 用起来还是相当稳定的,虽然似乎只能穿透http,但是能穿透一个群晖的DSM就足够了,建议应急的时候用一下。 下载地址:https://github.com/heartnn/dingtalk-ngrok/releases/latest,包含Windows和Linux的版本。 更新日志: 20220407:修复在群晖下的依赖问题 »