Sub2smi

Материал из Gentoo Linux Wiki

Перейти к: навигация, поиск
Вернуться в раздел советов

Существует несколько способов конвертации файлов субтитров srt->smi

[править] mplayer

1. Используя mplayer делаетеся следующей командой:

mplayer "filename.avi" -sub filename.srt -dumpsami

после этого должен появиться файл dumpsub.smi

[править] Subtitles

2. Используя утилиту Subtitles

wget http://karasik.eu.org/software/Subtitles.tar.gz 
tar -xpf Subtitles.tar.gz 
cd Subtitles-0.08
perl Makefile.PL
make 
su 
make install 

теперь команда:

subs -c smi filename.srt -o filename.smi

[править] Бонус

И бонус - скрипт, который конвертирует группу файлов в директории:

Файл: srt2smi.sh
#!/bin/sh
RED="\E[033;31m"
GREEN="\E[033;32m"
YELLOW="\E[033;33m"
BLUE="\E[033;34m"
PINK="\E[033;35m"
CYAN="\E[033;36m"
WHITE="\E[033;37m"
NC="\E[033;0m"

CL1=${PINK}
CL2=${YELLOW}
CL3=${RED}

cecho()
{
   echo -e "${*}${NC}"
}

clear

if [ -z "$1" ]; then
   cecho  "${CL1}Usage:${CL2} $0 [folder/file]"
   exit 0
fi

if [ -d "$1" ]; then
   cecho "${CL3}Work in dir: ${CL1}$1"
   LIST=(`ls -1 "$1/" | grep ".srt"`)
   COUNT=${#LIST[@]}
   if [ $COUNT -eq 0 ]; then
      cecho " ${CL2}Subtitles not found in folder"
      exit 0
   fi
   let "COUNT=$COUNT-1"
   SEQ=`seq 0 ${COUNT}`
   for i in $SEQ
      do
         FILENAME=`basename "${LIST[$i]}"`
         FULLNAME=`echo "$1/${FILENAME}"`
         cecho "${CL3}Process file: ${CL1}${FILENAME}"
         DIRNAME=$1
         NEWNAME=`echo "${FILENAME}" | awk -F. '{print $1}'`
         NEWNAME=`echo "${NEWNAME}.smi"`
         cecho " ${CL2}New filename: ${CL1}${NEWNAME}"
         NEWNAME=`echo "${DIRNAME}/${NEWNAME}"`
         subs -c smi "$FULLNAME" -o "$NEWNAME"
      done

elif [ -a "$1" ]; then
   FILENAME=`basename "$1"`
   cecho "${CL3}Process file: ${CL1}${FILENAME}"
   DIRNAME=`dirname "$1"`
   NEWNAME=`echo ${FILENAME} | awk -F. '{print $1}'`
   NEWNAME=`echo ${NEWNAME}.smi`
   cecho " ${CL2}New filename: ${CL1}${NEWNAME}"
   NEWNAME=`echo ${DIRNAME}/${NEWNAME}`
   subs -c smi "$1" -o "$NEWNAME"
else
   cecho "$1 - not file or dir"
   exit 0
fi

cecho "${CL3}done"


--Indie 09:25, 8 апреля 2006 (GMT)

Источник — «http://ru.gentoo-wiki.com/Sub2smi»
Личные инструменты