문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 마지막 판 양쪽 다음 판 | ||
subtitle_helper [2014/10/28 00:44] kwon37xi |
subtitle_helper [2015/10/04 22:38] kwon37xi [smi2srt] |
||
---|---|---|---|
줄 38: | 줄 38: | ||
* {{: | * {{: | ||
* smi 파일이 **UTF-8**로 인코딩 돼 있어야만 한다. | * smi 파일이 **UTF-8**로 인코딩 돼 있어야만 한다. | ||
+ | * [[http:// | ||
+ | sudo apt-get install libsubtitles-perl | ||
+ | # smi to srt | ||
+ | subs -c srt 파일명.smi -o 파일명.srt | ||
+ | |||
+ | # srt to smi | ||
+ | subs -c smi 파일명.srt -o 파일명.smi | ||
+ | |||
+ | # 변환한 자막을 UTF-8로 바꿔준다. | ||
+ | iconv -f euc-kr -t utf8 파일명1 > 파일명2 | ||
+ | # 인코딩 오류가 발생하면 -c 옵션 추가 | ||
+ | iconv -f euc-kr -t utf8 -c 파일명1 > 파일명2 | ||
+ | </ | ||
====== 동영상/ | ====== 동영상/ | ||
줄 48: | 줄 61: | ||
====== smi time sync ====== | ====== smi time sync ====== | ||
smi 파일의 시간을 싱크한다. | smi 파일의 시간을 싱크한다. | ||
- | <code groovy> | + | %gist(4039b27f9c04baf050ca)% |
- | if (args.length < 2) { | + | |
- | println "Usage groovy smi_timing filename milliseconds-to-adjust [encoding: | + | |
- | System.exit(-1) | + | |
- | } | + | |
- | + | ||
- | def smi = new File(args[0]) | + | |
- | def millis = Long.parseLong(args[1]) | + | |
- | def encoding = args.length == 3 ? args[2] : " | + | |
- | + | ||
- | println "$smi, $millis, $encoding" | + | |
- | + | ||
- | def text = smi.getText(encoding) | + | |
- | def converted = text.replaceAll(/ | + | |
- | " | + | |
- | } | + | |
- | + | ||
- | smi.setText(converted, | + | |
- | </ | + |