[attachment=0:3jx8jeze]자막 파일을 smplayer에 맞춰주기.sh.txt[/attachment:3jx8jeze]
노틸러스 스크립트로 사용합니다.
위 스크립트를 이용하려면, [url:gweibsrk]http://ubuntu.or.kr/viewtopic.php?f=9&t=24873[/url:gweibsrk]를 설치하셔야 합니다.
이 스크립트는 삭제 명령을 내장 삭제명령으로 수정하였으므로 설치가 필요없습니다.
utf-16의 경우 별도의 코딩이 필요한 것 같습니다. 이 부분만 추가하면 한글은 모두 소화할 것 같네요…!
UHC(cp949)에서 utf-8로 컨버팅하는 아이디어는 매우 좋은 아이디어로 보입니다.
[quote="bahzu":38906vro]utf-16의 경우 별도의 코딩이 필요한 것 같습니다. 이 부분만 추가하면 한글은 모두 소화할 것 같네요…!
UHC(cp949)에서 utf-8로 컨버팅하는 아이디어는 매우 좋은 아이디어로 보입니다.[/quote:38906vro]
UTF-16도 됩니다. 인코딩은 정확하고 올바르게 파악할수 없습니다. 근사값을 맞추는게 고작입니다. 일부 유니코드 문자셋에선 어떤 형식인지 알리는 BOM을 넣어 두지만 강제는 아닙니다.
위 스크립트는 확률적입니다. 될수도 안될수도 있겠으나, 한국어 인코딩의 경우 높은 확률로 변환해줍니다.
저는 한글 완성형으로 된 자막 파일을 접하는 경우가 많기에 우선적으로 UHC로 읽어들여 변환하도록 하였으나, UTF-16을 자주 접하신다면 우선순위를 UTF-16으로 바꾸어 사용하시면 됩니다.
for문의 UHC $encoding에서 UHC 앞에 UTF-16을 넣으시면 됩니다.
인코딩 자동인식 기능을 활성화하려면 nkf란 도구를 설치하셔야 합니다.
smplayer 설정에 보면 자막 인코딩 CP949(UHC)로 설정하는 부분이 있습니다.
그래도 가끔 한 두 글자씩 깨지거나 하더군요.
[quote:ct7oikab]smplayer 설정에 보면 자막 인코딩 CP949(UHC)로 설정하는 부분이 있습니다.[/quote:ct7oikab]
두번째 bashshellscript.sh.txt의 내용을 확인하지 않아서
조금 실수가 있었습니다. 양해 바랍니다.
일반적으로 자막 만들어 주시는 분께선 문자셋에 대한 지식이 전무한 경우가 많은데
주된 이유는 엉터리 같은 편집기의 코드셋이 주된 이유입니다.
물론 일관된 인코딩을 지향하는 문서 편집기도 있지만 편집기의 종류에 따라
euc-kr, ansi, iso-2022-kr 등 문자셋도 중구난방입니다.
문제는 하나의 자막 파일안에도 여럿의 문자셋이 존재할 수 있습니다.
따라서 SMplayer에서 CP949로 세팅을 하더라도 일부 한글영역 또는 특수문자, 한문등이 깨어져서 나올 수 있습니다.
대개의 자막 파일이 그렇습니다. 물론 자막 만드시는 분들의 무지에 기반하지만
그렇다고 뭐라할 순 없죠…^^ 만들어 주는 것 자체가 우리의 기쁨이죠!
euc-kr, ansi, iso-2022-kr등의 문자셋 코드영역은 대개 확장 유닉스 코드인데 코드 영역에 따라 표현 방법이 조금씩 다릅니다.
즉, 위의 문자셋은 완성형이 아니므로 모든 문자 코드를 표현하기 위해선 hcode를 다르게 표현할수 밖에 없습니다.
따라서 각각의 인코딩 자체를 읽어와서 utf-8로 변환하는 경우 소실되는 코드영역이 발생합니다.
UHC(cp949)은 윈도우(마소에서 만든)에서 사용되는 확장 완성형(조합형) 입니다.
한글, 한문, 특수문자등의 코드영역이 완성되어 있어
자막파일을 UHC에서 유니코드인 utf-8로 컨버팅하면 소실되는 코드영역이 거의 없습니다.
그래서 제가 UHC로 컨버팅하는 아이디어를 매우 좋은 아이디어로 표현한 것 입니다.
물론 유니코드로 제작된 자막파일은 제외하고 말입니다.
저의 경우 utf-16, ucs, utf-8, euc-kr, iso-8859-15등의 여럿 인코딩으로 제작된 자막파일을
노틸러스 스크립트를 제작하여 인코딩 종류에 따라 유닉스 코드의 경우 cp949에서 uft-8로 변환하고
특별히 utf-16 유니코드로 제작된 파일에 한해 uft-8로 한방에 변환하여 동영상을 즐깁니다.
참고로 utf-16 으로 제작된 파일은 아이콘 자체가 다르죠…^^
리눅스는 이런 점에서 참 편한 것 같습니다.
별님의 아이디어가 더 나은 것 같지만 그래도 사용자 마다 취향이 다르니
스크립트 파일 내용을 첨부해 드립니다.
#!/bin/bash
Get current path
mypath="pwd
"
for filename in "$@"
do
Convert. Modify arguments to handle different encodings
iconv -c -f CP949 -t utf-8 "$mypath/$filename" -o "$mypath/$filename-new"
Create backup
mv "$mypath/$filename" "$mypath/$filename~"
mv "$mypath/$filename-new" "$mypath/$filename"
rm "$mypath/$filename~"
done