| |
Для начала ссылка на некоторые ресурсы (присылайте ссылки и мы их включим):
Подробная документация по Mplayer
Хорошо написано о многих опциях кодеков xvid и lavc в mencoder'е
FAQ из которого, в частности, можно узнать, как заставить работать DVD Shrink через wine
Для тех, у кого в системе есть /etc/sysctl.conf:
/etc/sysctl.conf: dev/rtc/max-user-freq=1024
Для остальных:
/etc/rc.local: echo 1024 > /proc/sys/dev/rtc/max-user-freq
user@linux$ man mplayer
на предмет опции stop-xscreensaver.
Если у вас просто mplayer, без графического интерфейса, берем ваш файл конфигурации ~/.mplayer/config и пишем в нем строчку
~/.mplayer/config: stop-xscreensaver = 1
Для gmplayer мы пропишем строчку
~/.mplayer/gui.conf: stop-xscreensaver = "yes"
Это можно сделать и средствами интерфейса.
Из командной строки можно добавить ключ -stop-xscreensaver
Важно: В руководстве ключ назван неверно -stop_xscreensaver (с подчеркиванием вместо тире).
Формируется примерно такой файлик:
#!/bin/bash DATE="`date +%H%M%d`" PH=/mnt/dos/dvd/tv mplayer tv://14 -tv device=/dev/video0:driver=v4l2:width=512:height=384:forcechan=1:normid=2:channels=R7-Culture,R10-Stolica,R6-Sport,R9-TVC,SR2-M1,SR4-TNT,SR3-MTV,SR12-MuzTv,R2-NTV,SR5-STS,R4-RTR,R12-ORT - vo sdl -fs -ao alsa -quiet
Для ядра 2.4 и ранних 2.6:
#!/bin/sh DATE="`date +%H%M%d`" nice -n 0 mencoder tv:// -tv driver=v4l:width=384:height=288:norm=SECAM: \ brightness=10:contrast=-20:hue=-70:saturation=-60: \ audiorate=22050:alsa:forcechan=1:adevice=hw.0: \ buffersize=32:fps=22 -ovc lavc -lavcopts vcodec=mpeg4: \ vbitrate=2100:vme=5:vqscale=3:vb_strategy=1: \ keyint=300 -oac pcm -o "output-"$DATE".avi"
Для ядер 2.6.6 и выше:
!/bin/sh DATE="`date +%H%M%d`" PH=/mnt/dos/dvd/tv mencoder -tv driver=v4l2:width=512:height=384:device=/dev/video0:\ norm=SECAM:buffersize=128:fps=24:brightness=10:contrast=-20:hue=-70:\ saturation=-60:\ audiorate=22050:alsa:forcechan=1 \ -oac pcm \ tv:// \ -o $PH/$DATE".avi" \ -ovc lavc -lavcopts \ vcodec=mpeg4:vbitrate=1200:vme=4:vqscale=3:vb_strategy=1:keyint=300 \ -vf pp=lb
Первая строчка для Celeron 500, вторая для PIII-966. Подбирайте свои значения. Название файла формируется, используя время.Кодируем в MPlayer 1.0pre5. Параметр "on" больше не используется.
Важно что - указать во что кодируем и каким кодеком что для видео, что для аудио.
Аудио лучше пускать в pcm, это написано еще в рассылках MPlayer, а потом уже пережать такой строчкой:
#!/bin/sh mencoder -ovc copy -oac mp3lame -lameopts aq=0:ratio=100 pcm_file.avi -o your_ready.avi
Если хочется почистить картинку от помех, это можно сделать примерно так:
#!/bin/sh nice -n 15 mencoder -ovc lavc -lavcopts vcodec=mpeg4:vme=4:vbitrate=1800: \ keyint=300 -oac copy -vf scale=640:480,pp=hb/vb/dr/al/lb,hqdn3d,lavcdeint,eq=05: \ 10 /mnt/dos/part2.avi -o ready2.avi
Естественно, можно и совместить. Читайте о постпроцессинге.
Есть еще момент - многие жалуются, что несмотря на сильные машины (piv 2600, например) через некоторое время идет framedrop. Лично я (jackill) боролся с этим, указав число кадров, получаемых с тюнера (опция fps, на более мощной машине можно поставить больше) и можно жестко задать буфер (чем больше разрешение, тем больше буфер), чтобы вся память не забилась (если будет framedrop при динамическом буфере, то сначала кончится память, затем пойдет framedrop). В рассылке говорили, что звук лучше забирать в pcm (мол, lame тоже может стать причиной сбоя).
Тем не менее при битрейте в 900 я записывал звук в mp3, получая меньшую нагрузку на винт и на процессор. Более того, за четыре часа у меня не было ни одной рассинхронизации звука или видео, а так же не заканчивалась память (правда у меня 640Мб RAM):
#!/bin/sh DATE="`date +%H%M%d`" PH=/mnt/dos/dvd/tv mencoder -tv driver=v4l2:width=512:height=384:device=/dev/video0:\ normid=2:buffersize=128:fps=22:brightness=10:contrast=-20:hue=-70:\ saturation=-60:\ audiorate=22050:alsa:forcechan=1 \ -oac mp3lame -lameopts vbr=0:br=32:aq=9:mode=3 -o mult5.avi \ tv:// \ -o $PH/$DATE".avi" \ -ovc lavc -lavcopts \ vcodec=mpeg4:vbitrate=900:vme=4:vqscale=3:vb_strategy=1:keyint=300 \ -vf pp=lb
Другой канал нельзя - приемник-то один. А смотреть и писать теперь можно, если воспользоваться программой xdtv (весьма удобная и быстрая, но иногда валится через пару часов использования, вешая систему намертво).
http://xawdecode.sourceforge.net/htmlpageUS/indexUS.shtml
Запускаем alsamixer
и в нем снимаем, если есть, mute с канала Line (клавиша m), далее ставим capture на каналы Line и Capture (клавиша пробел).
Воспользоваться утилитой amixer. Регулятор Line называется line. Регулятор Capture называется cap.
При настроенном X-сервере - легко:
user@linux# alias mplayertv='export DISPLAY=:0.1 & qut;" mplayer -fs'
О настройках карточек nvidia через TwinView читайте в документации nvidia, если нужны более хитрые настройки, читайте здесь. О настройке карт ATI читайте здесь.
A: Например, так. Приведены только интересующие нас разделы /etc/X11/xorg.conf (ранее /etc/X11/XF86Config)
Section "ServerLayout" Identifier "Default Layout" Screen 0 "Monitor" 0 0 Screen 1 "TVout" RightOf "Monitor" InputDevice "Mouse1" "CorePointer" InputDevice "Keyboard1" "CoreKeyboard" EndSection Section "Monitor" Identifier "CRTmonitor" ModelName "LG 795FT" HorizSync 30.0 - 96.0 VertRefresh 50.0 - 160.0 EndSection Section "Monitor" Identifier "HomeTV" ModelName "TVset" HorizSync 30.0 - 50.0 VertRefresh 50.0 - 60.0 EndSection Section "Device" Identifier "NVGF4-1" Driver "nvidia" BoardName "Ti4800-VDT8X (MS-8900)" VideoRam 131072 Option "NvAGP" "3" Option "NoLogo" "1" Option "RenderAccel" "1" Option "TwinView" "1" Option "DPMS" "" BusID "PCI:1:0:0" EndSection Section "Device" Identifer "NVGF4-2" Driver "nvidia" BoardName "Ti4800-VDT8X (MS-8900)" VideoRam 131072 Option "NvAGP" "3" Option "NoLogo" "1" Option "RenderAccel" "1" Option "TVOutFormat" "COMPOSITE" Option "ConnectedMonitor" "TV" Option "TVStandard" "NTSC-M" BusID "PCI:1:0:0" Screen 1 EndSection Section "Screen" Identifier "Monitor" Device "NVGF4-1" Monitor "CRTmonitor" DefaultDepth 16 SubSection "Display" Depth 8 Modes "1600x1200" "1280x1024" "1280x960" "1152x864" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 16 Modes "1600x1200" "1400x1050" "1280x1024" "1280x960" "1152x864" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 24 Modes "1600x1200" "1280x1024" "1280x960" "1152x864" "1024x768" "800x600" "640x480" EndSubSection EndSection Section "Screen" Identifier "TVout" Device "NVGF4-2" Monitor "HomeTV" DefaultDepth 16 SubSection "Display" Depth 8 Modes "800x600" "640x480" EndSubSection SubSection "Display" Depth 16 Modes "800x600" "640x480" EndSubSection SubSection "Display" Depth 24 Modes "800x600" "640x480" EndSubSection EndSection
Еще вариант, без TwinView.
#monitor Section "Device" Identifier "nvidia0" Driver "nvidia" BusID "PCI:1:0:0" Option "NvAGP" "1" Option "NoLogo" "true" Option "RenderAccel" "true" Option "CursorShadow" "true" Option "IgnoreEDID" "true" Option "IgnoreDisplayDevices" "DFP" Option "ConnectedMonitor" "CRT" Screen 0 EndSection #TV Section "Device" Identifier "nvidia1" Driver "nvidia" BusID "PCI:1:0:0" Option "NvAGP" "1" Option "NoLogo" "true" Option "RenderAccel" "true" Option "CursorShadow" "true" Option "IgnoreEDID" "true" Option "IgnoreDisplayDevices" "DFP" Option "ConnectedMonitor" "TV" Option "TVStandard" "PAL-B" Option "TVOutFormat" "COMPOSITE" Screen 1 EndSection #Monitor description Section "Monitor" Identifier "monitor" HorizSync 30-96 VertRefresh 50-160 Option "DPMS" EndSection #TV description Section "Monitor" Identifier "tv" HorizSync 30-50 VertRefresh 60 EndSection Section "ServerLayout" Identifier "Default Layout" Screen "screen0" InputDevice "Generic Keyboard" InputDevice "Configured Mouse" EndSection Section "ServerLayout" Identifier "crt-tv" Screen "screen0" Screen "screen1" RightOf "screen0" InputDevice "Generic Keyboard" InputDevice "Configured Mouse" EndSection
Не забудьте прописать разрешения на оба устройства.
Когда нужен телевизор:
user@localhost$ startx -- -layout ctr-tv
Команда вывода кино на телевизор:
user@localhost$ DISPLAY=:0.1 mplayer -fs файл
DiMoN отвечает:
Список того, какой вывод поддерживается:
user@linux# mplayer film.avi -vo help
Лучшие варианты:
user@linux# mplayer film.avi -vo xv -fs user@linux# mplayer film.avi -vo xvidix -fs
Когда-то через SDL добился нормального воспроизведения на Celeron333/64Mb/S3Trio64V+:
user@linux# mplayer film.avi -vo sdl -fs
C остальными могут быть проблемы по скорости воспроизведения:
user@linux# mplayer film.avi -vo gl2 -fs user@linux# mplayer film.avi -vo gl -fs user@linux# mplayer film.avi -vo dga -fs
Консольные варианты:
user@linux# mplayer film.avi -vo vesa -fs user@linux# mplayer film.avi -vo svga -fs user@linux# mplayer film.avi -vo vidix -fs user@linux# mplayer film.avi -vo cvidix -fs
Текстовыми символами:
user@linux# mplayer film.avi -vo aa -fs
На худой конец так (тормоза + потеря кадров):
user@linux# mplayer film.avi -vo x11 -fs -zoom -framedrop -hardframedrop
Это проявляется на определенных картах. Попробуйте поменять битность цвета. Должно сработать.
1. Не надо монтировать диск.
2. mplayer -vcd://номер_трека [остальные ключи].
Можно воспользоваться либо грабберами или программами для записи компакт-дисков с поддержкой таких функций.
user@linux:~$ mpg123 --cdr file.cdr file.mp3 user@linux:~$ cdrecord -v speed=4 dev=0,0,0 -pad -audio *.cdr
Для группы файлов:
user@linux:~$ find . -name "*.mp3" -exec mpg123 --cdr {}.cdr {} \;
Если полученный wav файл не в формате "16 bit, stereo, 44100 Hz" (проверить можно: "file file.wav", обычно mpg123 осуществляет преобразование автоматически):
user@linux:~$ mpg123 -w file.wav file.mp3 user@linux:~$ sox file.wav -r 44100 file_new.wav
Для нормализации громкости удобно использовать:
normalize -m *.wav
Можно воспользоваться этим скриптом (автор мне, увы, неизвестен):
#!/bin/bash rm -v track*.wav disc-cover -e -o tracks -t txt && mv tracks.txt tracks.cddb && disc-cover -o cover -t ps && ARTIST=`cat tracks.cddb | grep -E '^Artist\:'| gawk -F\: '{print $2}' | sed -e's/^ *//' -e's/ *$//'` ALBUM=`cat tracks.cddb | grep -E '^Title\:'| gawk -F\: '{print $2}' | sed -e's/^ *//' -e's/ *$//'` echo "$ARTIST/$ALBUM" #echo $ALBUM mkdir -p "$ARTIST/$ALBUM" cdparanoia -sQ 2>&1 | tee toc && cdparanoia -w -z5 -B 2>&1 | tee cdparanoia.log || exit #grep -E '^( )+([0-9])+\.' toc | gawk -F. '{print $1}' for i in track*.cdda.wav; do num=`echo $i | sed -e's/^track\([0-9]*\)\.cdda\.wav/\1/'` #echo -n $num " - " num1=`echo $num | sed -e's/^0//'` #echo $num1 title=`grep -E "^([0])*$num1\ " tracks.cddb | \ gawk 'BEGIN {ORS=" "} {for(n=2;n<NF-1;n++) print $n;}' | sed -e's/^ *//' -e's/ *$//'` #echo $title nice oggenc -b 192 -N $num -a "$ARTIST" -l "$ALBUM" -t "$title" -n "$ARTIST/$ALBUM/$num - %t.ogg" $i || exit #mv -v $i $ii done;
Пользователи KDE скорее всего записывают диски программой k3b, поэтому могут воспользоваться ею. Очень удобно.
Многие пользуются программой xcdroast. Поскольку интерфейс слегка запутан, пара слов о процессе. В каталог для cd-образов копируются wav, сделанные из mp3. Далее делаем "Создать диск" -> "Записать дорожки". В закладке "Раскладка дорожек в правом окне выделяем все wav-файлы и нажимаем кнопку "Добавить". Переходим в закладку "Записать дорожки" и нажимаем на кнопку "Записать дорожки".
Примечание: в старой локализации xcdroast дорожки называются треками.
Также, можно чудесно записать все из консоли
user@linux:~$ cdrecord -audio -pad -dev=0,0,0 1.wav 2.wav 3.wav
Подробнее смотрите man cdrecord
.
Можно попробовать графическую утилиту (и она вам пригодится для создания менюшек и т.п.) под названием QDVDAuthor.
Можно прочитать вот эту статью или же сделать все скриптами как показано ниже.
Алгоритм кодирования в dvd такой:
Все прочитали? Можно автоматизировать процесс с помощью mkdvd. Или скрипта Obidos'а:
1-й случай. PAL (в исходном avi 25fps).
#!/bin/sh mkdir tmp ORIG=tmp/`basename $1 .avi` echo "Doing transcode..." transcode -i $1 -V -y mpeg2enc,mp2enc -F "5,-S 800" -E 44100 -b 128 -o $ORIG -Z 480x576 echo "Doing mplex..." mplex -f 4 -S 800 -o $ORIG%d.mpg $ORIG.m2v $ORIG.mpa
2-й случай. NTSC (в исходном avi 29.97fps либо 23.976fps).
#!/bin/sh mkdir tmp ORIG=tmp/`basename $1 .avi` echo "Doing transcode..." transcode -i $1 -V -y mpeg2enc,mp2enc -F "5,-S 800" -E 44100 -b 128 -o $ORIG -j -92 -Z 480x480 echo "Doing mplex..." mplex -f 4 -S 800 -o $ORIG%d.mpg $ORIG.m2v $ORIG.mpa #end
3. Скрипт сборки образа диска для прожига
#!/bin/sh TITLE=`basename $1 .mpg` echo "Doing VCDImager..." vcdimager -p -t svcd -b $TITLE.bin -c $TITLE.cue $@
4. Скрипт прожига
#!/bin/sh # первый параметр -- имя .cue-файла, второй -- скорость. cdrdao write -v 2 --speed $2 $1
Замечания.
Где взять: mkdvd http://fredrik.hubbe.net/hacks/ mjpegtools http://mjpeg.sourceforge.net/ dvdauthor http://dvdauthor.sourceforge.net mencoder http://www.mplayerhq.hu transcode http://www.transcoding.org/cgi-bin/transcode
Дополнительное инфо по сборке DVD и редактированию видео с помощью kino: http://www.linuxmafia.com/faq/Apps/AV/consumer-video-to-dvd.html
Дополнительное инфо по правам файловой структуры на получаемом DVD: http://dvd.chevelless230.com/
Дополнительное инфо о том, как писать: http://www.freesoftware.fsf.org/dvdrtools/
Взято отсюда. Автор Vladimir Kurtukov. Переписано в FAQ, дабы не потерялось.
Hеобходимые программы: 1. dvdauthor, dvdunauthor - http://dvdauthor.sourceforge.net/
2. mplex mjpegtools не ниже 1.6.2 - http://mjpeg.sourceforge.net/
3. extract_mpeg2 libmpeg2 - http://libmpeg2.sourceforge.net/
4. extract_a52 liba52 - http://liba52.sourceforge.net/
5. tcprobe - http://www.transcoding.org/cgi-bin/transcode
6. M2VRequantizer - http://metakine.com/files/M2VRequantiser.tgz
7. growisofs, mkisofs
Сам процесс:
1. dvdunauthor
-ом делаем с dvd проект. он его делает не совсем
правильно и надо либо выкинуть vmgm и menus секции, либо как-то
дописать недостающее. для компьютерных dvd можно выкинуть.
2. Надо посмотреть, что собой представляет vob.
# tcprobe -i vob_01_001t.vob [tcprobe] MPEG program stream (PS) [tcprobe] summary for vob_01_001t.vob, (*) = not default, 0 = not detected import frame size: -g 720x576 [720x576] aspect ratio: 16:9 (*) frame rate: -f 25.000 [25.000] frc=3 PTS=0.2873, frame_time=40 ms, bitrate=9800 kbps audio track: -a 1 [0] -e 48000,16,2 [48000,16,2] -n 0x2000 [0x2000] PTS=0.2873, bitrate=384 kbps detected (2) subtitle(s)
3. затем большой vob расчленяем на video и audio потоки
extract_mpeg2 <vob_01_001t.vob >vob_01_001t.m2v extract_a52 -s 1 <vob_01_001t.vob >vob_01_001t.ac3
В ключик -s подставить номер нужной дорожки, см. -a в выводе tcprobe
Проверить, какая же именно дорожка нам нужна, можно задав
mplayer
-у ключик -aid 128+<номер нужной дорожки>
4. Берем софтину M2VRequantizer
.
user@localhost~ $ ls -l vob_01_001t.m2v -rw-r--r-- 1 root wheel 1833868872 Mar 5 22:58 vob_01_001t.m2v # ./M2VReqiantizer 1.2 3 1833868872 <vob_01_001t.m2v >vob_01_001t-out.m2v M2VRequantiser by Makira. Using 1.200000 as factor, 1833868872 as m2v size.
factor
- число, во сколько раз будет уменьшен размер файла
user@localhost~ $ ls -l vob_01_001t-out.m2v -rw-r--r-- 1 root wheel 1525283645 Mar 5 23:36 vob_01_001t-out.m2v
5. Собираем обратно vob.
user@localhost~ $ mplex -f 8 -o vob_01_001t.vob vob_01_001t-out.m2v vob_01_001t.ac3
где -f 8
- формат DVD
6. Остается запустить dvdauthor
.
# dvdauthor -o dvd -x dvdauthor.xml # dvdauthor -T -o dvd
и в каталоге dvd будет результат
7. Запись на болванку.
user@localhost~ $ growisofs -Z /dev/cd0c -speed=4 -dvd-video -V LABEL dvd
Пришлось отдельно выносить этот вопрос, потому что предыдущий вопрос-ответ никто не читает.
Перекодировать ваш DVD в mpeg4 можно с помощью консольных утилит mencoder и transcode.
Посчитать битрейт можно с помощью калькулятора DivXcalc.
Кодирование в 2 прохода с двумя звуковыми дорожками на два cd можно сделать таким скриптом (в mpeg4):
#!/bin/bash PH=/mnt/dos/dvd READYPH=/mnt/dos/dvd/ready BITRATE=1600 NICE=15 ENG=129 RUS=128 FPS=25 DATE="`date +%H%M%d`" cp divx2pass.log "divx2pass-"$DATE".log" cat $PH/*vob | nice -n $NICE mencoder - -ofps $FPS -ni -aid $RUS \ -ovc frameno \ -oac mp3lame -lameopts vbr=3:br=192:q=0:aq=0 \ -o $READYPH/"sound-"$RUS".avi" cat $PH/*.vob | nice -n $NICE mencoder - -ofps $FPS -ni -aid $ENG \ -ovc frameno \ -oac mp3lame -lameopts vbr=3:br=192:q=0:aq=0 \ -o $READYPH/"sound-"$ENG".avi" cat $PH/*.vob | nice -n $NICE mencoder - -ofps $FPS \ -ovc lavc -lavcopts vcodec=mpeg4:vpass=1:vhq:vbitrate=$BITRATE:vme=5:keyint=300:v4mv:mv0:qpel:trell:cbp:naq \ -vf scale=640:360,pp=hb/vb/dr -sws 2 \ -nosound \ -o /dev/null cat $PH/*.vob | nice -n $NICE mencoder - -ofps $FPS \ -ovc lavc -lavcopts vcodec=mpeg4:vpass=2:vhq:vbitrate=$BITRATE:vme=5:keyint=300:v4mv:mv0:qpel:trell:cbp:naq \ -vf scale=640:360,pp=hb/vb/dr -sws 2 \ -nosound \ -o $READYPH/final-f1.avi rm -f $PH/*.vob nice -n $NICE avimerge -i $READYPH/final-rc1.avi -p $READYPH/"sound-"$RUS".avi" -o $READYPH/final-rc2.avi nice -n $NICE avimerge -i $READYPH/final-rc2.avi -p $READYPH/"sound-"$ENG".avi" -o $READYPH/final.avi
Для кодирования в три прохода понадобится mplayer версии не ниже 1.0pre7 и кодек lavc.
Или в этом скрипте можно поменять несколько строчек и кодировать в xvid:
меняем строчку с cp:
cp xvid-twopass.stats "xvid-twopass-"$DATE".stats"
и меняем строчки с кодированием видео
cat $PH/*.vob | nice -n $NICE mencoder - -ofps $FPS -ni \ -ovc xvid -xvidencopts pass=1:vhq=1:qpel:trellis \ -nosound \ -vf crop=718:422:2:66,scale=640:356,pp=hb/vb/dr -sws 2 \ -o /dev/null cat $PH/*.vob | nice -n $NICE mencoder - -ofps $FPS -aid $RUS -ni \ -ovc xvid -xvidencopts bitrate=$BITRATE:pass=2:vhq=1:qpel:trellis \ -nosound \ -vf crop=718:422:2:66,scale=640:356,pp=hb/vb/dr -sws 2 \ -o $READYPH/final-rc1.avi
Если вы хотите оставить звук в ac3 (как он идет в dvd), то вместо строчек перекодирования в mp3 поставьте
-oac copy
Для начала нужно включить аппаратную поддержку.
Потом надо установить libiec61883, libraw1394 с сайта http://www.linux1394.org, а также CLI утилиту dvgrab, с помощью которой можно будет копировать raw dv видео с камеры.
Для работы с MiniDV камерой и несложного редактирования видео существует программа Kino, в состав которой входит набор плагинов и скриптов, например: dv->mpeg4, dv->dvd и т.д.
Статья о том, как это делается в Alt Linux. Подойдет и для использования в других дистрибутивах.
http://rad.xtalk.msk.su/dv-dvd/index.html
Использовать параметр -double
или прописать его в свой файл конфигурации double = 1
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |