Левая панель

Главное окно

Корзина
Admin-World - администраторы всех стран обьеденяйтесь Тема Home News Downloads Tutorials WebLinks Login to JoomlaCurve

  Панель
 
Главное меню
Главная
Новости
Поиск
Библиотека
Форум
Авторизация





Забыли пароль?
Ещё не зарегистрированы? Регистрация
Статистика
 
     
Главная arrow Библиотека arrow Linux arrow VideoCD для пингвинов
 
Реклама

 

VideoCD для пингвинов

Печать E-mail

Некоторым из нас, кого уже слегонца подпарило смотреть фильмы на маленьких 15 или 17 дюймовых экранах и хочется посмотреть фильму на любимом DVD или просто ЦД плаере, на большом (в моем случает 29" экране), но влом таскать комп или проводить кабель в другую комнату… Да и файлов у тебя скопилось, наверное уже немало… Неплохо было бы просто делать видео ЦД и составить свою видеотеку.

Итак приступим:

VCD — обычный видео сидюк с потоком MPEG-1 352×288, и битрейтом 1150kbps для видео и 224kbps для аудио. На сидюк поместится ровно столько сколько там написано минут (74 — 80)

SVCD — MPEG-2 стрим, 480×576. Битрейт до 2600kbps и для аудио от 34 до 384kbps. Обычно вмещается от 40 до 55 минут, в зависимости от битрейта.

XVCD, CVCD — модификации с различным битрейтом и могут не работать на некоторых DVD плаерах (на моем работает). Используя невысокий битрэйт можно запихнуть и до 90 минут на сидюк.

Нам понадобится: MPlayer, Transcode (http://theorie.physic.uni-goettingen.de/~ostreich/transcode), MJEG Tools (http://mjpeg.sourceforge.net), VCDImager (http://www.vcdimager.org), perl и калькулятор:)

Дальше я приведу скрипты, зачем ломать голову, если можно предоставить работу машине? Ну а потом просто запустить как Divx2VCD

Итак Divx2VCD — считает размер, добавляет поля, если нужно,короче переводит потом в стандарт VCD:

#!/bin/bash

DIR=`pwd`
TEMPFOLDER=/tmp/divx2vcd-$RANDOM
TEMP_TEMPLATE=/tmp/tcm-template-$RANDOM

# для 74 минут (650М) => CDSIZE=735
# для 80 минут (700М) => CDSIZE=795
# здесь тебе придется вручную, хотя и это, я думаю, можно
# автоматизировать

VIDEORATE=1150
AUDIORATE=224
if [ $# -eq 0 ]; then
echo «Usage:»
echo " divx2vcd «
exit 1
fi
FILE=$1
if [ „$1“ == „`basename \“$l»`" ]; then
FILE="$DIR\$1"
fi

mkdir $TEMPFOLDER
cd $TEMPFOLDER
tcprobe -i «$FILE» > $TEMPFOLDER/info
WIDTH=`grep '\[avilib\] V:' $TEMPFOLDER/info | \ perl -e ' $line=; $line = ~ /width=(\d+)/; print $1 `
HEIGHT=`grep '\[avilib\] V:' $TEMPFOLDER/info | \ perl -e ' $line=; $line = ~ /height=(\d+)/; print $1 `
FPS=`grep '\[avilib\] V:' $TEMPFOLDER/info | \ perl -e ' $line=; $line =~ /V: (.+?) fps/; print $1 `
FPS 1= `echo «scale=1; $FPS/1»| bc -l`
FRAMES=`grep '\[avilib\] V:' $TEMPFOLDER/info | \ perl -e ' $line=; $line =~ /frames=(d+)/; print $1 `
SECONDS_TOTAL=`echo «scale=0; ($FRAMES / $FPS)»| bc -l' `
HOURS=`echo «scale=0; ($SECONDS_TOTAL / 3600)»| bc -l' `
MINUTES=`echo «scale=0; (($SECONDS_TOTAL — 3600 * $HOURS) / 60)»| bc -l' `
SECONDS=`echo «scale=0; ($SECONDS_TOTAL % 60)»| bc -l' `
echo «**************FILE INFO*******************»
echo «Frame Size: ${WIDTH}x${HEIGHT} — FPS: $FPS»
echo «Lenght: $FRAMES — Seconds: $SECONDS_TOTAL»
echo «$HOURS Hours, $MINUTES Minutes, $SECONDS Seconds»

if [ $FPS_1 == «29.9» -o $FPS_1 == «30» -o $FPS_1 == «23.9» ]; then
WIDTH_OUT=352
HEIGHT_OUT=240
else
WIDTH_OUT=352
HEIGHT_OUT=288
fi

echo «Video output: ${WIDTH_OUT}x${HEIGHT_OUT}»

#А сейчас нужно посчитать размеры бордюров

B_WIDTH_1_1_OUT=`echo “ ($HEIGHT_OUT / ¾)”| bc –l`
B_HEIGHT_OUT=`echo “ ($HEIGHT / ($WIDTH / $B_HEIGHT_OUT))”| bc –l `

#выравниваем

B_HEIGHT_OUT=`echo “scale=0; $B_WIDTH_1_1_OUT/1)”| bc –l `

# теперь нужно удостоверится, что они парные

B_HEIGHT_OUT=`echo “scale=0; $B_HEIGHT_OUT+$B_HEIGHT_OUT%2” | bc –l `
BORDER=`echo “scale=0; ($HEIGHT_OUT-$B_HEIGHT_OUT)/2” | bc –l`
echo “Высота без бордура: $HEIGHT_OUT, с бордюром: $BORDER”

#стираем рабочие исходники

rm –F Movie.mlv Movie.mpa
cd $TEMPFOLDER

echo “transcode –i \”$FILE\” –V –x mplayer –y mpeg2enc, mp2enc \ -F l –Z ${WIDTH_OUT}x$B_HEIGHT-OUT –Y -$BORDER, 0,-$BORDER, 0 \ -export_asr 2 –E 44100 –b $AUDIORATE –o $DIR/Movie”

transcode –i “$FILE” –V –x mplayer –y mpeg2enc,mp2enc \ -F l –Z ${WIDTH_OUT}x$B_HEIGHT-OUT –Y -$BORDER, 0,-$BORDER, 0 \ -export_asr 2 –E 44100 –b $AUDIORATE –o $DIR/Movie
rm –rf $TEMPFOLDER
cd $DIR

[ -f Movie.mlv –a –f Movie.mpa ] || exit 1
rm –f Movie*.mpg
echo “maxFileSize = $CDSIZE” > $TEMP_TEMPLATE
tcmplex –i Movie.mlv –p Movie.mpa –o Movie.mpg \ -m 1 –F $TEMP_TEMPLATE
rm $TEMP_TEMPLATE

# и наконец создаем образы

for i in `ls Movie*.mpg; do vcdimager –t vcd2 –c $i.bin
done

И таким образом нам создаст архивы VCD готовые для продигания.

Divx2CVCD: этот скрипт нам посчитает автоматически все опции и размеры avi файла так, чтобы он влез на балванку. Можно пробовать с различными значениями QUANTUM (от 2 до 31)(2 – наивысшее качество). Можно так же модифицировать AUDIORATE.

Весь скрипт я привожить не буду, поскольку он похож на предыдущий, просто покажу, где и что нужно вставить/изменить:

CDSIZE=795 #это место так же как и в предыдущем, а дальше меняем
QUANTUM=5
#MAXRATE=900 #в данном случае автоматически
AUDIORATE=128

Divx2SVCD: тот же скрипт. Можно менять CDSIZE, QUANTUM, MAXVIDEORATE и AUDIORATE.

CDSIZE=795
QUANTUM=7
MAXVIDEORATE=4000000
AUDIORATE=160

#дальше идет все тоже до
if [ $FPS ==”29.9” –o $FPS == “30” –o $FPS ==”23.9” ]; then

WIDHT_OUT=480
HEIGHT_OUT=480
MPEG_OPTIONS=s, 3,$TEMPLATE
else
WIDTH_OUT=480
HEIGHT_OUT=576
MPEG_OPTIONS=s, 3,$TEMPLATE

Субтитры:

Здесь все просто: нужно переименовать файл с субтитрами точно такий же именем как и файл avi и положить в ту же дирректорию.

Приятного посмотра!

 
« Как поменять Display Manager?   Усыпляем компьютер »

 
  Админ World  
recruitment agencies for fe colleges