将 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]']
给定以下字符串:
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]']