2017-10-21 15 views
0

무비를 볼 때마다 임의의 자막을 만드는 파이썬 프로그램을 만들려고합니다. vlc.py 2.2 및 pysrt를 사용합니다. 파일을 만들고로드 할 필요없이 만든 자막을 전달하고 싶습니다.플레이어 pysrt 및 vlc의 파이썬 자막 내부

pysrt.SubRipItems는 inspect.getargspec() 함수는 나에게주는, 클래스 등의 목록은 다음과 같습니다

1 
00:00:00,100 --> 00:02:18,828 
Hello World! 

및 유형() :

ArgSpec(args=['self', 'index', 'start', 'end', 'text', 'position'], varargs=None, keywords=None, defaults=(0, None, None, '', '')) 

인쇄()가 나와 있습니다 :

class 'str' 

자막이 나타나지 않으며 오류가 없습니다.

import vlc 
import pysrt 
import inspect 


file = pysrt.SubRipFile(encoding='utf-8') 
sub = pysrt.SubRipItem(1, start='00:00:0,100', end='00:02:18,828', text="Hello World!") 
file.append(sub) 

SubString=str(file[0]) 

print(SubString) 
print (type(SubString)) 
print (inspect.getargspec(pysrt.SubRipItem)) 

Instance = vlc.Instance() 
player = Instance.media_player_new() 
Media = Instance.media_new('Test.avi') 
player.set_media(Media) 
player.play() 
player.video_set_subtitle_file(SubString) 

답변

0

python-vlc 패키지는 VLC C 라이브러리에 대한 래퍼입니다, 그래서 당신은 그것을 파이썬 공상 개체를 전달할 수 없습니다 :

여기에 지금까지 내 코드입니다.

자막은 파일 경로로만 추가 할 수 있습니다. 이를 위해서는 video_set_subtitle_file이 아닌 add_options 미디어를 사용해야합니다. vlc 명령이 수락하는 여러 옵션 (vlc --help --longhelp --full-help과 함께 사용 가능)을 설정할 수 있지만 옵션 이름과 해당 값 사이에 이중 대시 및 등호가 없습니다. 먼저 디스크에 자막 파일을 저장해야하기 때문에

Media.add_options("sub-file={}".format("path/to/your/subtitle/file")) 

, 당신은 후 삭제됩니다 확인하기 위해, 컨텍스트 관리자로 tempfile.NamedTemporaryFile를 사용할 수 있습니다. 물론 io.FileIO과 같은 의사 파일을 사용할 수 없습니다.