Нужно в скрипт функций добавить, что бы он распознавал размер файлов и конертировал исходя из этого. Для небольших файлов (размер около 2.2 гб) это самое то, а вот для тех что имеют размер больше чем 4.4 гб не подходит, так как у них ориентация экрана больше чем 720 точек. Где то видел статью в которой подробно расписывались соотношение точек для dvd-плеера, только вот найти что то не могу.
UP Починил почти все, но не могу правильно получить ширину фильма: midentify.sh и mkvinfo нагло врет. Как это обойти я не знаю, вот скрипт, может кто решит.
#!/bin/bash
#Mon Oct 25 18:45:06 MSD 2010
#mencoder -ovc xvid -xvidencopts bitrate=2000 -oac mp3lame -aid 0 -o film.avi film.mkv
file_name=$@
IFS=$'\n'
folder(){
cd "$file_name"
mkdir ./complete/
for i in `ls | grep mkv`
do
start_name=`echo $i | sed 's/\.[a-zA-Z]*$//'`
width_old=`/usr/share/mplayer/midentify.sh "$i" | grep ID_VIDEO_WIDTH | awk -F "=" '{print $2}'`
height_old=`/usr/share/mplayer/midentify.sh "$i" | grep ID_VIDEO_HEIGHT | awk -F "=" '{print $2}'`
if [ "$width_old" -gt 720 ]
then
width_new=720
height_new=$(echo "scale=3; $width_new/($width_old/$height_old)" | bc | awk -F "." '{print $1}')
else
width_new=$width_old
height_new=$height_old
fi
mencoder -ovc xvid -xvidencopts bitrate=1000 -oac mp3lame -aid 0 -vf scale="$width_new":"$height_new" -o ""$start_name"".avi"" "$i"
mv ./""$start_name"".avi"" ./complete/""$start_name"".avi""
notify-send -i dialog-warning "`basename "$i" | sed 's/\.[a-zA-Z]*$//'`.avi complete"
done
}
video(){
start_name=`file "$file_name" | awk -F: '{print $1}' | sed 's/\.[a-zA-Z]*$//'`
i="$file_name"
width_old=`/usr/share/mplayer/midentify.sh "$i" | grep ID_VIDEO_WIDTH | awk -F "=" '{print $2}'`
height_old=`/usr/share/mplayer/midentify.sh "$i" | grep ID_VIDEO_HEIGHT | awk -F "=" '{print $2}'`
if [ "$width_old" -gt 720 ]
then
width_new=720
height_new=$(echo "scale=3; $width_new/($width_old/$height_old)" | bc | awk -F "." '{print $1}')
else
width_new=$width_old
height_new=$height_old
fi
mencoder -ovc xvid -xvidencopts bitrate=1000 -oac mp3lame -aid 0 -vf scale="$width_new":"$height_new" -o ""$start_name"".avi"" "$i"
notify-send -i dialog-warning "`basename "$file_name" | sed 's/\.[a-zA-Z]*$//'`.avi complete"
}
quit(){
echo "Missing the target"
}
if [ -n "`file "$@" | grep Matroska`" ]
then
video
elif [ -n "`file "$@" | grep directory`" ]
then
folder
else
quit
fi
Зато теперь он нормально воспринимает пробелы.