APP下载 微博 微信

Hao4K影音


[软件相关] 17C-整改字幕流程i_提高UTF字幕的甄别效率

[复制链接]

发表于 2021年07月23日 10:19 85782 1 来源:影视制作> 软件相关 |只看大图 回帖奖励 |倒序浏览 |

Yuran 帖主

2021-7-23 10:19

17C,其中的17, 是连载篇的序号。后缀C,意指 三板斧的第三斧(与 ass外挂字幕的、DIY 实验有关)。
本人原创实验心得,非专业,非权威。谨供参考。全部归纳/整理到:论坛淘帖专栏中,链接在此



这是我的自习笔记,兼做备忘录。

  本篇介绍一下,DIY编程中的思路和创意。给自主编程的爱好者作参考。
其实,Yuran也不是程序员。始终是在自学、“玩”代码。

但编程后,实战中的感觉,速度之快、自动化效率之高、均超出预期的想象...



前期连载篇中,已经介绍了, Unicode字幕,一般来说,都是UTF-8 ,经济实惠。但分为两大阵营:

  • 普通 UTF-8 (不带 BOM);
  • 带BOM的UTF-8。

二者的区分,就在于 header(始端的那三个字节)!



DIY编程的思路,就是,检索所有字幕的、始端的头三个字节(16进制)!



一旦发现, 头部是 ef bb bf 这3个特征代码的,就能断定:这个字幕的规格,是带 BOM 的UTF-8 。





本篇所分享的,实验心得:就是摘取这三个字节的、多快好省的捷径。

一般来说,想实现某种功能时,若有现成的程序,不妨直接借用,也省去了调试、纠错的工作量。
(当然也有例外,觉得自己的编程,更可靠...)

本篇讲的是:16进制转码:

  • 微软在 Windows 10中,自带实用工具, 可以做到(比如:certutil -encodehex  之类的脚本)。
  • 第三方的实用工具,也能做(比如: HEXDUMP 之类的小程序)。

但都有两种,看似完美,实则遗憾的缺陷。

1: 除指定输入文件之外,还必须得:指定输出文件。
换言之,转码的结果,强制保存在:指定的文件中。

我们看一下,某个电影字幕, 16进制转码后,存在文件中的、这些代码信息。13579行!

捕123获.jpg

最初编程、尝试的软件模组,就是先将字幕,进行16进制转码,生成一万多行的HEX文件,
再从这个HEX文件中,仅摘取:最前面的三个字节,作比较。

是不是觉得:太浪费了。 而且是:文件的读写操作,也够折腾硬盘的!



若想解决问题,就这样:将转码的结果,转移到:Stdout   上来(若对这个词汇,感觉生疏,可以上网查询)...
还是不理想。处理时间、效率,没有显著提高。毕竟,一万多行呢。都得转码。即使是挪到缓存,也够受的

这就是我所说的、第二个缺陷。 明明仅检索前三个字节。可那些软件工具,都是字幕文件的、整体转码、操作。
像这个实验,整个字幕的、所有16进制代码,都合并在一行中了,但是,每行的数据量: 651701比特 。

捕98获.jpg

为了查验头三个字节,竟然给缓存,注入这么多的数据量。程序的响应速度,可以想象(慢!还存在浪费的现象)。



    怎么办?变通(前期连载篇提到过)! 别局限在 Windows 的圈子内,看看“外面”的世界吧...

踏破铁鞋无觅处...    Linux 系统平台下,有个实用程序:  xxd    !
第一步的实验,输出到 Stdout  ( 缓存处理。避免硬盘文件类的、多次读/写操作。)

jgdqa-qq40v.gif

缓存,压力山大是吧。   那就做下一步的实验,仅完成:局部区块的、16进制的转码,输出到 Stdout :

1z11.jpg

xxd 的功能,异常灵活。不仅能指定:特定区块内的转码,还能改变格式。 那就再少点,也换个花样。

1a12.jpg



一劳永逸,彻底“压榨”!仅查验:该Unicode字幕文件的、UTF-8 的头三个字节。

捕2wsx获.jpg

这回,的确就3个字节(16进制换码输出), 速度飞快。 达到了预期目的(瞬间完成甄别) 。



xxd ,已被移植到: Windows 平台,
(直接视为:CLI程序,xxd.exe  , 使用无限制。上面的图例,都是在Win10下,完成操作、截图的)。

打包放在附件中了,解压密码:   Yuran


延伸阅读
应对家庭影院UHD片源的三板斧-连载前言
https://www.hao4k.cn/thread-59303-1-1.html

2C-ass字幕脚本内:4K HDR外挂字幕调色
https://www.hao4k.cn/thread-59325-1-1.html

3C-ass字幕脚本中:HDR外挂双语字幕调色
https://www.hao4k.cn/thread-59342-1-1.html

4C-ass字幕脚本中:SDR外挂字幕边缘配色
https://www.hao4k.cn/thread-59357-1-1.html

5C-ass字幕脚本里:HDR外挂字幕边缘配色
https://www.hao4k.cn/thread-59387-1-1.html

6C-用杰科G5300播放机做字幕相关的实验
https://www.hao4k.cn/thread-59405-1-1.html

7C-ass字幕脚本中的、与色域有关的新定义
https://www.hao4k.cn/thread-59408-1-1.html

8C-分享Yuran自定义的、ass字幕的实验模板
https://www.hao4k.cn/thread-59444-1-1.html

9C-整改字幕流程a_为音唇同步,调整时间轴
https://www.hao4k.cn/thread-59484-1-1.html

10C-整改字幕流程b_字幕规格的演变历程
https://www.hao4k.cn/thread-59566-1-1.html

11C-整改字幕流程c_形态各异的实验字幕样本
https://www.hao4k.cn/thread-59600-1-1.html

12C-整改字幕流程d_可借用的第三方小程序
https://www.hao4k.cn/thread-59661-1-1.html

13C-整改字幕流程e_UTF-8字幕BOM特征码
https://www.hao4k.cn/thread-59716-1-1.html

14C-整改字幕流程f_自定UTF-8字幕试行规范
https://www.hao4k.cn/thread-59717-1-1.html

15C-整改字幕流程g_批量甄别外语ANSI字幕
https://www.hao4k.cn/thread-59718-1-1.html

16C-整改字幕流程h_转换后UTF-8字幕无乱码
https://www.hao4k.cn/thread-59720-1-1.html

17C-整改字幕流程i_提高UTF字幕的甄别效率
https://www.hao4k.cn/thread-59784-1-1.html

18C-整改字幕流程j_ANSI(外语)字幕批量转换
https://www.hao4k.cn/thread-59798-1-1.html

19C-整改字幕流程k_UTF-8字幕移除BOM
https://www.hao4k.cn/thread-59819-1-1.html

20C-整改字幕流程l_将外来ass转成规范的ass
https://www.hao4k.cn/thread-59881-1-1.html

21C-整改字幕流程m_ass文件,不只是字幕
https://www.hao4k.cn/thread-59882-1-1.html

22C-想实现字幕自动下载/归档,须与时俱进
https://www.hao4k.cn/thread-60028-1-1.html

Yuran_test-hex.rar

24.89 KB, 阅读权限: 10

售价: 1 个H币  [记录]  [购买]

评分

参与人数 1活跃 +1 H币 +8 收起 理由 (评分规则)
hao4k + 1 + 8 谢谢分享!

查看全部评分

本帖被以下淘专辑推荐:

回复

使用道具 举报

全部回复1

luyz 2

2021-10-22 12:25

谢谢楼主,学习了!!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

返回列表 本版积分规则



绑定微信 + 关注公众号,第一时间获得消息通知!
:
版主
:
介绍未填写

主题

帖子

积分3670

Hao4K影音app客户端下载