ubuntu subtitle sync smi
자막 싱크 맞추느라 윈도에서 고생좀 했는데....
그래서 ubuntu 자막 싱크 조정 프로그램을 찾아보다가...smi 포맷 자막파일을 지원하는 프로그램을 못찾음...
아님 없든가???? ㅜㅜ 있으면 알려주세요..
걍 스크립트로 맹그렀다..
단순히 전체 시간에 대해 + , - 해서 새로운 파일로 저장
대부분 smi 파일이 dos 포맷 .....음....
ubuntu 에서 작업해서 window htpc 로 봐서리...dos 포맷으로 변환..
smi 파일에서 시간 기준이 1/1000 초.... 그러니끼리..
<SYNC Start=7177> 요건 7.177 초....
스크립트
#!/bin/bash
#
# syncsmi.sh
#
if ! which unix2dos >/dev/null 2>&1; then
echo
echo "warning : No Such file <unix2dos>"
echo " output file is the unix format file"
echo " ubuntu : apt-get install dos2unix"
echo " centos : yum install unix2dos"
echo
fi
if [ 3 -gt $# ]; then
echo "Usage : $0 <filename.smi> <+|-> <sync time>"
echo " <sync time> : 1 second is 1000"
echo "ex) $0 test.smi + 1000 : 1 second delay"
exit 0
fi
file=$1
op=$2
gap=$3
tmp_file=$file.new
[ -f $tmp_file ] && rm -f $tmp_file
IFS=
for subline in `cat $file`
do
if [[ ! "$subline" =~ (^.*[sS][yY][nN][cC] [sS][tT][aA][rR][tT]=)([0-9]+)(.*) ]]; then
echo "$subline" >> ./$tmp_file
continue
fi
new_time=$(( ${BASH_REMATCH[2]} ${op} ${gap} ))
new_subline="${BASH_REMATCH[1]}${new_time}${BASH_REMATCH[3]}"
echo "$new_subline" >> ./$tmp_file
done
unix2dos -q $tmp_file
echo "sync ok !!! "
echo "new file : $tmp_file"
사용법
./syncsmi.sh <자막파일이름> <+ | -> <동기화시간>
ex)
- 1초 지연
./syncsmi.sh 영화.smi + 1000
- 0.5초 빠르게
./syncsmi.sh 영화.smi - 500
'IT > Tips' 카테고리의 다른 글
calendar indicator crashes on launch (ubuntu 12.04) (0) | 2013.10.28 |
---|---|
구글 크롬 확장 프로그램 마우스 제스쳐 (0) | 2013.04.15 |
Installing RPMForge (0) | 2013.03.20 |
GoldenDict 설치 및 설정 (0) | 2011.10.28 |
Ubuntu nautilus Add Buttons for New Folder (0) | 2011.09.22 |