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문자가 있습니다. 이를 숫자로 수동으로 변경해야 정상적으로 변환됩니다.(본인이 직접 수정하셔야 됩니다.ㅠㅠ)
pwd = u'/volume1/Video'.encode('utf-8')
Convert(pwd,failedLogFile)
#pwd = u'/volume1/한글폴더명 가능'.encode('utf-8')
#Convert(pwd,failedLogFile)해당 volume 내부에 있는 모든 파일들을 탐색해서 변환을 작업을 했는데Convert 함수로 처리 했습니다.만일 2개이상의 공유 폴더를 사용하고자 한다면,#을 지우고 pwd 경로를 지정하시면 됩니다.예전에는 한글 폴더명을 넣으면, 변환이 되지 않았는데유니코드 형식으로 지원하게 했습니다.
자막 중간 중간 생략되는 버그가 있었습니다.그부분에 대한 버그 수정했습니다.
<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> 글자 그대로 출려됩니다.
smi_backup 폴더에서 다중 언어가 들어간 smi 파일을 원래폴더로 복원을 하고,해당 smi파일에서 변환된 srt파일을 삭제 합니다. (삭제된 srt파일은 srt_backup 폴더에 저장됩니다.)
bom 코드가 없는 utf-8 인코딩된 srt파일에bom 코드 있는 utf-8 srt파일로 전환합니다.. (원본 srt파일을 srt_backup폴더에 저장합니다.)
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
조금 하신다 싶으시면 크론탭 걸어도 되구요. 귀찮으시면 스케쥴러 등록하세요
파일 올린뒤 제어판 > 작업스케쥴러 > 1분단위 실행 설정
저는 아래와 같이 넣었어요.
/volume1/개인폴더/convert_mkv_ac3/ 여기에 스크립트가 위치해야 합니다. >> 이후는 로그남기는 부분입니다. 필요 없으시면 >>포함하여 지워도 무방합니다.
아래
python /volume1/개인폴더/convert_mkv_ac3/convert.py >> /volume1/개인폴더/convert_mkv_ac3/log/convert.log
pwd = u'/volume1/Video'.encode('utf-8')
Convert(pwd,failedLogFile)
#pwd = u'/volume1/한글폴더명 가능'.encode('utf-8')
#Convert(pwd,failedLogFile)해당 volume 내부에 있는 모든 파일들을 탐색해서 변환을 작업을 했는데Convert 함수로 처리 했습니다.만일 2개이상의 공유 폴더를 사용하고자 한다면,#을 지우고 pwd 경로를 지정하시면 됩니다.예전에는 한글 폴더명을 넣으면, 변환이 되지 않았는데유니코드 형식으로 지원하게 했습니다.
와... 감사합니다. 그냥 되시는 분들도 많다지만, 저는 ios에서 smi가 안되었거든요. 잘사용 하도록 하겠습니다.
https://x86.co.kr/nasdqa/1414029
처음 실행시에는 변환해야되는 smi자막이 많아 1시간이상 소요 될꺼예요.
처음후 변환이 끝나면, 스케쥴링 하시면 됩니다.
ssh상에서 실행하지 마세요. 꼭 스케쥴러에서 실행버튼을 눌러야 됩니다.
현재 convert(ruby).py는 압축파일에 포함되어 있지 않은데 일부러 제외시키신건가요? ruby태그를 <b>로 변환하는 부분을 주석처리 하면 루비태그를 아예 없애버리는데 어떻게 해야할까요..?
"님의 댓글"
이 댓글을 신고 하시겠습니까?
참고로 위에 변경점은 제가 수정하면서 생기는 문제점 또는 기능들을 수정한점입니다.