Debianhome’s Blog

Just another WordPress.com weblog

Скрипт за конвертиране и вмъкване на субтитри в .avi за гледане в DIVA 79 плеер

Публикувано от debianhome на март 8, 2009

На тези, които притежават такова устройство, винаги им е нужен софтуер за конвертиране на свалените от тореннт сайтове филми. Плеерчето може да се справи да пусне и да изгледате такъв файл, но не може да стартира субтитрите. А и мястото е ограничено и е полезно файла да се смали. Под уиндоус има много програми за целта, но под Линукс – не. Пък и не са нужни. С тази задача се справя и обикновен скрипт, ползващ mencoder. Просто си инсталирайте MPlayer и си запишете скрипта в някоя папка.Именувайте го примерно convert и го направете изпълним.

Когато решите да енкодвате, поставете в тази папка файловете на филмите и техните субтитри и стартирайте скрипта:

./convert -a -ppc

-a означава, че ще бъдат конвертирани всички файлове в директорията.

-ppc задава профила. В случая конвертиране за DIVA

Има още два профила с нормална резолюция. Хубавото е, че с просто редактиране на скрипта може да променяте параметрите на профилите точно каквито искате да бъдат. Просто, лесно и ефикасно.

За да се запознаете с какви профили разполагате, просто напишете:

./convert

Ако си инсталирате и програмката beep, след приключване на енкодинга на всеки файл ще чувате звуков сигнал. Приятно ползване.

П.П. Автора на скрипта се казва Свилен Савов и го е предоставил за всеобщо ползване.

#!/bin/bash

# Description: Compress a single video file or all video files in a folder using mencoder
# Author: Svilen Savov (svilen@svilen.org)
# Date: 25.10.2007, revision 1.0

# FILETYPES TO CONVERT
EXT=“avi AVI mpeg MPEG mpg MPG asf ASF flv FLV wmv WMV mov MOV qt QT vob VOB“

check_and_encode () {
if [ -n "`echo $EXT| grep ${1##*.}`" ]; then
if [ "$OPTIONS" = "false" ]; then
input_options
fi
echo „
#########################################################################
$1 —>
„`echo $1 | sed ’s;\(.*\)\..*;\1;’`.ENCODED.$FILEADD.avi“

Video bitrate: $VIDEO_BITRATE kbps
Horizontal resolution: $H_SCALE
Audio bitrate: $AUDIO_BITRATE kbps
Audio mode: $AUDIO_MODE
0  -  stereo
1  -  joint-stereo
2  -  dualchannel
3  -  mono
#########################################################################

nice -n +5 mencoder \
-vf scale=$H_SCALE:-2 -sws 9 \
-oac mp3lame -lameopts mode=$AUDIO_MODE:cbr:br=$AUDIO_BITRATE -srate 44100 \
-ovc xvid -xvidencopts vhq=4:max_bframes=0:bitrate=$VIDEO_BITRATE \
-autosub -subfont-text-scale 4.0 -subwidth 90 -subcp cp1251 \
-font /usr/share/fonts/truetype/msttcorefonts/arial.ttf \
„$1″ -o „`echo $1 | sed ’s;\(.*\)\..*;\1;’`.ENCODED.$FILEADD.avi“
if [ -n "$DIRECTORY" ]; then
mkdir -p „$DIRECTORY“ && mv „$1″ „$DIRECTORY“
if [ -f "`echo $1 | sed 's;\(.*\)\..*;\1;'`.ENCODED.$FILEADD.avi" ]; then
mv „`echo $1 | sed ’s;\(.*\)\..*;\1;’`.ENCODED.$FILEADD.avi“ „$DIRECTORY“
fi
fi
beep
fi
}

input_options () {
echo „Enter video bitrate in Kbps (Examples: 192, 224, 256…)“
read VIDEO_BITRATE
echo „Enter video horizontal resolution in pixells (Examples: 320, 640, 800…)“
read H_SCALE
echo „Enter audio bitrate in Kbps (Examples: 64, 86, 92, 128…)“
read AUDIO_BITRATE
echo „Enter audio mode“
echo „AUDIO MODE“
echo „0  -  stereo“
echo „1  -  joint-stereo“
echo „2  -  dualchannel“
echo „3  -  mono“
read AUDIO_MODE
OPTIONS=ready
}
if [ "$1" = "-pc" ] || [ "$2" = "-pc" ] || [ "$3" = "-pc" ]; then
VIDEO_BITRATE=900
H_SCALE=640
AUDIO_BITRATE=128
AUDIO_MODE=0
FILEADD=PC.XviD
elif [ "$1" = "-pc_mono" ] || [ "$2" = "-pc_mono" ] || [ "$3" = "-pc_mono" ]; then
VIDEO_BITRATE=900
H_SCALE=640
AUDIO_BITRATE=96
AUDIO_MODE=3
FILEADD=PC.XviD.MONO
elif [ "$1" = "-ppc_high" ] || [ "$2" = "-ppc" ] || [ "$3" = "-ppc" ]; then
VIDEO_BITRATE=400
H_SCALE=320
AUDIO_BITRATE=128
AUDIO_MODE=1
FILEADD=PPC.XviD.HQ
else
OPTIONS=false
fi
if [ "$1" = "-m" ] || [ "$2" = "-m" ] || [ "$3" = "-m" ]; then
DIRECTORY=encoded
fi
if [ "$1" = "-a" ] || [ "$2" = "-a" ] || [ "$3" = "-a" ]; then
for FILE in *; do
check_and_encode $FILE
done
beep -f 1000 -r 2 -n -r 5 -l 10 –new
exit 0
elif [ -f "$1" ] || [ -f "$2" ] || [ -f "$3" ]; then
check_and_encode $1
exit 0
else
echo „
Usage: ‘$0 <filename>’ or ‘$0 -a’ to compress all files in the current folder
Additional encoding parameters:
-pc (Video bitrate: 900 kbps, Horizontal scale: 640, Audio bitrate: 128 kbps, Audio mode: stereo)
-pc_mono (Video bitrate: 900 kbps, Horizontal scale: 640, Audio bitrate: 96 kbps, Audio mode: mono)
-ppc (Video bitrate: 400 kbps, Horizontal scale: 320, Audio bitrate: 128 kbps, Audio mode: joint-stereo)

Examples:
1.      ‘$0 -a -ppc’ to compress all files in the current directory using settings for -ppc
2.      ‘$0 Movie.avi -pc’ to compress the file Movie.avi using settings for -pc
3.      ‘$0 Movie.avi’ to compress the file Movie.avi using custom defined settings

exit 0
fi
beep -f 1000 -r 2 -n -r 5 -l 10 –new

Вашият коментар

XHTML: Може да използвате тези тагове: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>