문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 다음 판 양쪽 다음 판 | ||
subtitle_helper [2013/05/17 14:59] kwon37xi |
subtitle_helper [2014/10/28 00:44] kwon37xi |
||
---|---|---|---|
줄 42: | 줄 42: | ||
* 동영상과 자막 파일이 여러개 있는데, 서로 이름이 안 맞을 경우 자막 파일의 이름을 동영상 파일의 이름에 맞춰 변경해 준다. | * 동영상과 자막 파일이 여러개 있는데, 서로 이름이 안 맞을 경우 자막 파일의 이름을 동영상 파일의 이름에 맞춰 변경해 준다. | ||
* 단! 동영상과 자막 파일이 같은 디렉토리에 있고 갯수가 동일해야 한다. | * 단! 동영상과 자막 파일이 같은 디렉토리에 있고 갯수가 동일해야 한다. | ||
- | * 동영상과 자막 파일이 이름으로 | + | * 동영상과 자막 파일이 이름으로 정렬시 순서가 동일해야 한다. |
* Groovy로 만들었음. | * Groovy로 만들었음. | ||
- | * {{:movie_subtitle_match.groovy.gz|}} | + | %gist(5692721)% |
+ | |||
+ | ====== smi time sync ====== | ||
+ | smi 파일의 시간을 싱크한다. | ||
+ | <code groovy> | ||
+ | if (args.length < 2) { | ||
+ | println "Usage groovy smi_timing filename milliseconds-to-adjust [encoding:default cp949]" | ||
+ | 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, | ||
+ | </ |