将SCC(双字节十六进制字)转换为字符串

时间:2015-01-26 23:30:08

标签: python string unicode hex

给出以下字符串:

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

我如何将其转换为文字?

1 个答案:

答案 0 :(得分:2)

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表示“启动弹出式标题”。拖尾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]']