간혹 smi파일을 받다 보면... 자막과 시간이 안 맞는 경우가 있죠?
대부분 전체적인 시간이 맞지않는 경우가 많더군요... (자막사이 간격은 적절한데..)
윈도우에서는 자막을 고쳐주는 플그램이 몇 개 있는 것 같던데...
리눅스에서는 잘 모르겠군요... 있을지도 모르겠군요 ㅡㅡ;;
그런데... sed와 awk만으로도 충분히 자막을 고칠 수 있습니다.
우선 smi 파일이
<SYNC start=시간><P Class=KRCC>
자막내용
이런 식으로 되어 있다고 가정하겠습니다. (대부분의 자막이 이런 형식입니다.)
우선 sed스크립트 파일을 만듭니다.
(시간의 단위는 밀리초(1/1000sec)입니다.)
1초는 1000이라고 적어주셔야 겠지요.
$ grep -ni <SYNC "수정할파일이름" | tr '<=:>' ' ' |
awk '{printf " %ss/%s/%s/",$1,$4,$4+(수정할시간의 양)}' > temp.sed
특정 부분만 수정할려면 아래와 같이도 가능합니다.
FROM과 TO는 각각 수정할 구간의 처음과 끝의 시간입니다.
$ grep -ni <SYNC "수정할 파일이름" | tr '<=:>' ' ' |
awk '{if ( FROM <= $2 && $2 <= TO) printf "%ss/%s/%s/", $1,$4,$4+(수정시간양)' > temp.sed
이제 만들어진 sed스크립트 파일을 이용해 자막을 고칩니다.
$ sed -f temp.sed "수정할파일이름" > 새로운자막
아직 제가 sed와 awk를 기본적인 거 밖에 몰라서 좀 삽질을 했을지도 모르겠습니다.
더 좋은 방법있으시면 언제든지 지적해주시면 기쁘겠습니다.
음... 암튼...
위 사항을 가지고 간단한 스크립트를 만들면 나름대로의 자막 수정 플그램이 되겠죠?
음... 시간 날 때 한 번 만들어 봐야 겠군요
--휴...