x86 주요 단축키
  • 1 X86 톺아보기
  • 2 커스텀맥 최신글
  • 3 커뮤니티 최신글
  • 4 X86클럽 최신글
  • 5 인생은 랜덤
  • H 단축키 도움말
읽기 최소레벨 지정(미선택시 전체공개)  
경고 절대로 ssh로 convert.py와 recovery.py 실행 하지 마세요.
생성되는 파일, 폴더의 소유권과 권한이 root로 되어 버리면, 실행, 삭제, 수정이 안될 가능성이 있습니다.
반드시 제어판 -> 작업스케쥴러로 돌리시길 바랍니다.
변경점
1. 변환 안되는 smi파일경우 통과 하고 계속 진행
smi파일이 비정상인경우 수정후 srt변환을 하지만,
수정하여 변환 할수 없는 파일경우 멈추는 경우가 있었습니다.
수정하여 변환 할 수 없는 파일은 따로 로그를 남깁니다.
convert.py 에서
failedLogFile = u'/volume1/homes/개인계정/convert_mkv_ac3/log/Failed_SMI_FILES.log'.encode('utf-8')
이부분입니다.
개인 계정을 본인 관리자 계정으로 설정하시면 됩니다.
그럼 Failed_SMI_FILES.log 파일 내부에
변환 되지 않는 smi 파일경우
Convert Fail File = /volume1/Video/smi/error/3.smi
Error Line = <SYNC Start=NaN><P CLASS=KoreanSC>
이런식으로 표시가 되는데
Convert Fail File은 해당 변환 실패한 파일명을 나타내는것이고,
Error Line은 변환 실패한 줄입니다.
<SYNC Start=NaN> <-에러가 발생한 라인입니다. Start = 숫자가 나와야 되는데 NaN문자가 있습니다. 이를 숫자로 수동으로 변경해야 정상적으로 변환됩니다.
(본인이 직접 수정하셔야 됩니다.ㅠㅠ)
2. 스크립트 파일 1개로 여러개 폴더 변환 및 한글 폴더 지원
pwd = u'/volume1/Video'.encode('utf-8')
Convert(pwd,failedLogFile)
 
#pwd = u'/volume1/한글폴더명 가능'.encode('utf-8')
#Convert(pwd,failedLogFile)
해당 volume 내부에 있는 모든 파일들을 탐색해서 변환을 작업을 했는데
Convert 함수로 처리 했습니다.
만일 2개이상의 공유 폴더를 사용하고자 한다면,
#을 지우고 pwd 경로를 지정하시면 됩니다.
예전에는 한글 폴더명을 넣으면, 변환이 되지 않았는데
유니코드 형식으로 지원하게 했습니다.
3. 자막 중간이 생략되는 버그 수정
자막 중간 중간 생략되는 버그가 있었습니다.
그부분에 대한 버그 수정했습니다.
4. 비표준 태그 처리  (<ruby> 태그)
<ruby> 태그 경우 일본 애니메이션 자막경우
노래 가사 한자위에 작은 글씨로 히라가나 소리음을 표시하는 자막이 많습니다.
그때 사용되는 태그가 <ruby> 인데
이 테그는 표준 srt 태그가 아닙니다. 하지만, 일부 동영상프로그램에서 암묵적으로 지원하는 플레이어가 발견됩니다만,
대부분 플레이어에서는 지원하지 않는 플레이어가 간혹 있습니다.
그래서 이 부분 처리를 어떻게 할지 고민을 하다가 이렇게 2가지 버전을 만들었습니다.
하나는 <ruby>한자<rt>소리음</ruby> 를 <b>한자</b>(<i>소리</i>) 으로 변경합니다. 한자(소리음)
다른 하나는 <ruby> 태그를 그대로 적용합니다. 그래서 일부 플레이어경우 자막에 <ruby> 태그가 그대로 보입니다. (Media Player Classic, 외부 자막 필터)
본인이 주로 사용하시는 플레이어에 따라 선택하시면 됩니다.
4-1. convert.py (표준 srt 버전 - 호환성 높음 ) <- 추천
<ruby>태그를 제가 임의로 변경한 버전입니다.
4-2 convert(ruby).py (비표준 srt 버전 - 일부 플레이어 지원하며, 호환성 낮음)
<ruby> 태그를 srt에 그대로 적용되며, <ruby> 태그 지원하지 않는 플레이어에서는
<ruby> 글자 그대로 출려됩니다.
======================================================================================================
recovery.py는 자막 복원 프로그램입니다. (v1.0 이용자를 위한 복원 프로그램입니다. 1.1, 1.2 사용자는 사용하실 필요 없습니다.)
위에
다중언어 smi파일하고,
UTF-8 With BOM 처리 때문에 자막 복원 프로그램을 제작했습니다.
1. 다중언어 smi파일 복원
smi_backup 폴더에서 다중 언어가 들어간 smi 파일을 원래폴더로 복원을 하고,
해당 smi파일에서 변환된 srt파일을 삭제 합니다. (삭제된 srt파일은 srt_backup 폴더에 저장됩니다.)
2. utf-8 with bom 아닌 srt파일 처리
bom 코드가 없는 utf-8 인코딩된 srt파일에
bom 코드 있는 utf-8 srt파일로 전환합니다.. (원본 srt파일을 srt_backup폴더에 저장합니다.)
============================================================================================================
2. 처음 사용자용
처음 사용자 경우 백업할 smi가 없으므로 recovery.py 파일을 실행할 필요가 없습니다.
/volmune1 하위에 존재하는 smi를 srt로 변환해주는 스크립트입니다. (특정폴더는 pwd 변수에 위치 지정)
smi to srt 소스를 가지고 손 조금 댔습니다. 음성 인코딩이랑 같이 사용하는데 왠만한 동영상은 다 재생되네요


2-1. python setuptool 설치
ssh로 시놀로지 접속 후
ds > cd /volume1/@tmp/
ds> wget https://bootstrap.pypa.io/ez_setup.py -O - |  python
2-2. chardet 모듈 설치
ds> wget https://pypi.python.org/packages/source/c/chardet/chardet-2.3.0.tar.gz#md5=25274d664ccb5130adae08047416e1a8
ds> tar xvf chardet-2.3.0.tar.gz
ds> cd chardet-2.3.0
ds>  python setup.py install

2-3.첨부파일 업로드 및 스케쥴
조금 하신다 싶으시면 크론탭 걸어도 되구요. 귀찮으시면 스케쥴러 등록하세요
파일 올린뒤 제어판 > 작업스케쥴러 > 1분단위 실행 설정
저는 아래와 같이 넣었어요.
/volume1/개인폴더/convert_mkv_ac3/ 여기에 스크립트가 위치해야 합니다. >> 이후는 로그남기는 부분입니다. 필요 없으시면 >>포함하여 지워도 무방합니다.

아래
python /volume1/개인폴더/convert_mkv_ac3/convert.py >> /volume1/개인폴더/convert_mkv_ac3/log/convert.log
---------------------------------------------------------------------------------------------------------------------------------------
예전에 smi 자막을 srt 변환하는 툴을 찾았는데요.
버그가 많고, 안되는 것이 많아 수정했습니다.
1. utf8 with bom 형식으로 저장되어 DNLA 자막 출력시 깨지는 현상 없구요.
2. smi파일안에 다중 언어 들어가도 자동으로 분류되어서 srt로 저장됩니다.(예 : krcc, encc 으로 2가지가 같이 있는 경우 "파일이름.krcc.srt"와 "파일이름.encc.srt"
3. <ruby>태그 경우 비표준 태그라 적절하게 처리
쉘스크립트 방식의 smi to srt보다 속도 빠르며, srt 자막 표준에 최대한 지키도록 변경했습니다.
지금까지 하면서 문제가 되는점이 없었습니다.
smi파일경우 smi_backup폴더를 만들어 따로 보관하고, 기존 smi파일을 삭제됩니다.
★ 글쓴이에게 고마우시면 커피한잔 후원(클릭) ★ 후원 정보를 입력하지 않았습니다.





이 사이트의 기능을 모두 활용하기 위해서는 자바스크립트를 활성화 시킬 필요가 있습니다.
브라우저에서 자바스크립트를 활성화하는 방법을 참고 하세요.

X86.CO.KR 소모임 클럽

X86클럽 통합 게시판 입니다. 여러 게시판을 이동하면서 읽기 불편하신 분들은 이곳에서 올라온 새로운 글들을 열람하세요.

No 제목 조회 닉네임 등록일
239 나스당| Synology Assistant 에러 문의드립니다. 2 116 hich**** 02.14
238 나스당| 나스 하드 구성문의드립니다. 4 147 hich**** 02.14
237 나스당| 삼성TV DLNA 끊김 현상 글타래 4 201 Mactopia 02.08
236 나스당| N당 가입을 위해 업어온 PC가 있는데 설치가 가능할까요? 7 438 Ativ9Lite 01.29
235 나스당| DSM 6.x 업글 이후 네트워크 주소 고정 설정 383 ZISQO 01.27
234 나스당| 맥 설치가 가능할까요??? 1 326 Ineyam 01.23
233 나스당| DSM 6.0으로 업그레이드 후기 14 775 Mactopia 01.22
232 나스당| 나스 공유폴더 질문입니다. 1 139 dudcn132 01.22
231 나스당| Xpenology 6.0.2-8451 update 9 되었습니다. 8 773 SCENT_APPLE 01.19
230 나스당| 삭제한 게시글입니다. 70 isaiah 01.18
229 나스당| 삭제한 게시글입니다. 56 dudcn132 01.16
228 나스당| 커놀하려면 부팅미디어 어떻게 만드나요? 2 149 날새날새 01.15
227 나스당| Jun's Mod 1.01 에 대해서 질문드립니다. 4 368 풋히힝 01.15
226 나스당| DSM 6.0.2 - 8451 update 5 4 297 ZISQO 01.14
225 나스당| 베플| 옷 갈아 입혀봤어요 ㅎㅎ 12 551 ZISQO 01.12
224 나스당| 커스텀 나스 2대중 한 대는 결국 방출되는군요 ㅠㅠ 1 258 ZISQO 01.12
» 나스당| HOT| iOS용 DSVideo 사용을 위한 smi to srt 입니다. 5 477 풋히힝 01.09
222 나스당| NAS 견적입니다. 14 593 BLackCRacHun 01.08
221 나스당| 베플| U-NAS 8BAY 조립기 10 613 좌절금지 01.06
220 나스당| 스위칭 허브가 필요해서 구매를 해봤는데요 6 391 ZISQO 01.05
219 나스당| CPU별 벤치 점수입니다 579 ZISQO 01.04
218 나스당| DSM 6.0.2 설치 [i7-4790K / Gigabyte B85M-D3H Rev.3] 7 677 ZISQO 01.04
217 나스당| 비디오 스테이션 하드웨어 가속 활성화 4 313 Mactopia 01.03
216 나스당| AC3 통과에 대해서 1 197 Mactopia 01.03
215 나스당| [Plex Media Server] Tvheadend 실시간 TV 플러그인 설치 2563 ZISQO 01.03
214 나스당| FFmpegWithDTS-avoton-1.0-0005 2 212 ZISQO 01.03
213 나스당| 저사양 NAS의 축복 DS Video Station v2.2.0-1361 + ATV3 5 669 ZISQO 01.03
212 나스당| TV DLNA 사용하시는 분에게 질문 7 208 Mactopia 01.02
211 나스당| DSM 6.0.2 - Plex Media Server / Apple TV3 연동 2 276 ZISQO 01.02
210 나스당| 비디오 스테이션의 DDNS 포트 포워딩 설정 4 351 ZISQO 01.02
209 나스당| ds video 자막에 대해 테스트 요청. 16 557 Mactopia 01.02
208 나스당| 드랍박스 연장도 귀찮코.... 3 198 Mactopia 12.28
207 나스당| 힝...아무도 몰라주네.. 5 217 Mactopia 12.25
206 나스당| Version: 6.0.2-8451-7 update 11 380 ZISQO 12.25
205 나스당| 애플 스크립트를 이용한 IPTV 녹화본 세미오토 다운로드 314 ZISQO 12.21
204 나스당| 나스 질문과 답변 게시판에 대해서 70 Mactopia 12.21
203 나스당| 나스당 창당을 자축 합니다. 118 Mactopia 12.21
202 나스당| [Tvheadend] 녹화 지정 폴더 root 권한으로 생성하기 - 초보자용 8 692 ZISQO 12.20
201 나스당| [TVHeadend] 클릭 한번으로 녹화부터 인코딩까지 끝내보자~ 28 3661 들고양이 12.19
200 나스당| [Tvheadend] EPG2XML설치를 통한 EPG 서비스 활성화 15 1906 ZISQO 12.18
199 나스당| Tvheadend과 Kodi 연동을 위한 M3U 리스트 자동 등록 방법 1 4069 ZISQO 12.18
198 나스당| [Windows] OMVS 윈도우용 설치및 UDP IP추출 4 4195 ZISQO 12.17
197 나스당| [Mac] OMVS 맥용 컴파일및 UDP IP추출 40 1502 ZISQO 12.15
196 나스당| 이 맛에 커맥 커스텀Nas 쓰는가 봅니다. ㅋ 11 627 들고양이 12.13
195 나스당| Custom Mac + NAS 의 콜라보!가 필요한 이유 10 394 좌절금지 12.12
194 나스당| 시놀로지 나스 좋네여 ㅎㅎ 11 317 케플러 12.05
193 나스당| 나스 케이스 조립 완료! 3 247 LeeDeaRi 11.30
192 나스당| 지름 인증입니다! 208 LeeDeaRi 11.29
191 나스당| DSM 6.0.2-8451 Update 4 6 402 무한대 11.17
190 나스당| [NATIVE] DSM 5.2 to 6.0 마이그레이션 43 1593 ZISQO 11.14
서버에 요청 중입니다. 잠시만 기다려 주십시오...