ubuntu 자막 싱크 조정 (smi)
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