将 SCC(两个字节的十六进制字)转换为字符串

Convert SCC (two-byte hexadecimal words) to string

给定以下字符串:

00:00:03:13 9420 9454 5bcb 45d9 c24f c152 c449 cec7 94f2 c1ce c420 434f cdd0 d554 4552 20ce 4f49 d345 d35d

如何将其转换为文本?

pycaption 是我找到的一个图书馆。 pip install pycaption 并尝试解析您的示例:

from pycaption import SCCReader
input = '00:00:03:13 9420 9454 5bcb 45d9 c24f c152 c449 cec7 94f2 c1ce c420 434f cdd0 d554 4552 20ce 4f49 d345 d35d'
contents = SCCReader().read(input.decode('utf-8'))
contents.get_captions('en-US')

你会得到错误:

pycaption.exceptions.CaptionReadNoCaptions: CaptionReadNoCaptions((u'empty caption file',))

那是因为SCC不仅包含编码文本,它里面还有命令。前 2 个字节 9420 表示 "start pop-on caption"。为了正确显示文本,需要拖尾 942f(字幕结束)。但它在你的样本中丢失了。我认为您没有粘贴以下部分。同时,SCC 文件的第一行应该是版本格式。让我们在您的示例中添加 2 行:

input = '''Scenarist_SCC V1.0

00:00:03:13 9420 9454 5bcb 45d9 c24f c152 c449 cec7 94f2 c1ce c420 434f cdd0 d554 4552 20ce 4f49 d345 d35d

00:00:04:00 942f
'''

那么输出将是:

[u'00:00:04.037 --> 00:00:00.000\n[KEYBOARDING\nAND COMPUTER NOISES]']