2015-01-26 74 views
0

考慮以下字符串:轉換SCC(兩字節十六進制字)串

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

如何將它轉換爲文本?

+0

一開始並不像2個字節爲十六進制。 – Deduplicator 2015-01-26 23:32:14

+0

任何特定的編程語言?如果不是,那麼'language-agnostic'標籤可能是合適的。 – 2015-01-26 23:32:30

+0

@PaulR任何語言都可以在這裏工作 - 我的偏好是python。 – David542 2015-01-26 23:57:47

回答

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]'] 
相關問題