|
Linux. Кое что про DVD ripping.
Intro Собственно простой случай, есть мультфильмы на DVD и хочется сделать RIP для того, чтобы уместить несколько дисков на одном DVD-R и при необходимости (дети зацарапали etc) сделать еще одну копию. Для поборников copyright особо подчеркну, что DVD честно купленные, RIP делается исключительно для себя bla-bla-bla...
Что понадобится? Набор софта выглядит таким образом:
Установка всех компонентов стандартная. Перед сборкой transcode ставим ffmpeg # svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg # cd ffmpeg # configure && make && make installПри сборке transcode после запуска configure нужно убедиться, что libdvdread и lame найдены и включены в сборку. # ./configure ... ---------------------------------------- Summary for transcode 1.0.5: ---------------------------------------- libavcodec ---------------------------------------- headers -I/usr/include libraries -L/usr/lib -lavcodec -L/usr/local/lib -lavcodec -lz -lm -ldl -lavutil build 3354624 version 51.48.0 statically linked no optional package support ---------------------------------------- libmpeg2 yes lame yes libdvdread yes Когда все настроено, можно приступать.
Копирование VOB'ов на HDD Собственно начинать нужно именно с этого шага. Несмотря на то, что есть возможность работать напрямую с DVD, намного удобнее сделать копию диска заранее. Проще всего это сделать с помощью vobcopy: $ mkdir -p /tmp/kaet_villi/VIDEO_TS $ vobcopy -m -i /mnt/dvd -o /tmp/kaet_villi/VIDEO_TS После завершения работы vobcopy копия всего диска будет в /tmp/kaet_villi/VIDEO_TS
Разборка с содержимым диска Собственно диск может состоять из одного или более title. Если он один, то проще всего использовать dvd::rip, если же на диске есть нескольно title, то легче всего их вытащить в MPEG файлы и перекодировать по отдельности. Смотрим что там у нас:
$ cd /tmp/kaet_villi/VIDEO_TS
$ tcprobe -i `pwd`
[tcprobe] DVD image/device
(dvd_reader.c) mpeg2 ntsc 4:3 U0 720x480 video
(dvd_reader.c) ac3 ru drc 48kHz 2Ch
(dvd_reader.c) ac3 en drc 48kHz 2Ch
(dvd_reader.c) DVD title 1/1: 13 chapter(s), 1 angle(s), title set 1
(dvd_reader.c) title playback time: 01:36:32.00 5793 sec
(dvd_reader.c) [Chapter 01] 00:00:00.000 , block from 0 to 193509
(dvd_reader.c) [Chapter 02] 00:08:09.467 , block from 193510 to 364214
(dvd_reader.c) [Chapter 03] 00:15:18.467 , block from 364215 to 534841
(dvd_reader.c) [Chapter 04] 00:22:27.800 , block from 534842 to 716961
(dvd_reader.c) [Chapter 05] 00:30:05.800 , block from 716962 to 891992
(dvd_reader.c) [Chapter 06] 00:37:25.500 , block from 891993 to 1078644
(dvd_reader.c) [Chapter 07] 00:45:15.500 , block from 1078645 to 1242208
(dvd_reader.c) [Chapter 08] 00:52:06.500 , block from 1242209 to 1426944
(dvd_reader.c) [Chapter 09] 00:59:52.000 , block from 1426945 to 1602258
(dvd_reader.c) [Chapter 10] 01:07:13.300 , block from 1602259 to 1777490
(dvd_reader.c) [Chapter 11] 01:14:33.867 , block from 1777491 to 1945807
(dvd_reader.c) [Chapter 12] 01:21:37.500 , block from 1945808 to 2123494
(dvd_reader.c) [Chapter 13] 01:29:04.533 , block from 2123495 to 2302853
[tcprobe] summary for /tmp/kaet_villi/VIDEO_TS, (*) = not default, 0 = not detected
import frame size: -g 720x480 [720x576] (*)
aspect ratio: 4:3 (*)
frame rate: -f 23.976 [25.000] frc=1 (*)
audio track: -a 0 [0] -e 48000,16,2 [48000,16,2] -n 0x2000 [0x2000]
audio track: -a 1 [0] -e 48000,16,2 [48000,16,2] -n 0x2000 [0x2000]
[tcprobe] V: 138894 frames, 5793 sec @ 23.976 fps
[tcprobe] A: 90.52 MB @ 128 kbps
[tcprobe] CD: 650 MB | V: 559.5 MB @ 810.2 kbps
[tcprobe] CD: 700 MB | V: 609.5 MB @ 882.6 kbps
[tcprobe] CD: 1300 MB | V: 1209.5 MB @ 1751.4 kbps
[tcprobe] CD: 1400 MB | V: 1309.5 MB @ 1896.2 kbps
В этом случае есть только один title, смело запускаем dvd::rip:
DVD::RIP
$ dvdrip 1. Выбираем File->New Project. Набираем имя и жимкаем 'Create Project':
2. Выбираем где находится копия диска (где лежит каталог VIDEO_TS, а не сами файлы!), отмечаем 'Encode DVD on the fly':
3. Зачитываем оглавление диска и выбираем звуковую дорожку:
4. Разрешение нашего rip'а, кликаем 'Open zoom calculator' и выбираем нужное. "Хорошие" разрешения выделены красным цветом. Хорошесть их в том, что размер кратен 8 и проблемы с разными проигрывателями минимальны. Можно кликнуть 'Grab frame' и посмотреть как примерно будет выглядеть соотношение оригинала и rip'а:
5. Если субтитров нет, все ясно. В противном случае самое лучшее - выбрать внешние субтитры. Тут выбирать не из чего:
6. Задаем параметры звука и желаемый размер rip'а. Кодек XviD по умолчанию и это разумный выбор. Жмем 'Transcode' и через некоторое время (несколько часов, зависит от скорости компьютера) rip будет готов:
Все просто, но встречаются диски с несколькими title. $ tcprobe -i `pwd` [tcprobe] DVD image/device (dvd_reader.c) mpeg2 ntsc 4:3 U0 704x480 video (dvd_reader.c) ac3 ru drc 48kHz 2Ch (dvd_reader.c) ac3 en drc 48kHz 2Ch (dvd_reader.c) ac3 en drc 48kHz 1Ch (dvd_reader.c) DVD title 1/16: 5 chapter(s), 1 angle(s), title set 1 (dvd_reader.c) title playback time: 00:07:46.29 467 sec (dvd_reader.c) [Chapter 01] 00:00:00.000 , block from 0 to 459 (dvd_reader.c) [Chapter 02] 00:00:02.934 , block from 460 to 45241 (dvd_reader.c) [Chapter 03] 00:02:27.301 , block from 45242 to 87650 (dvd_reader.c) [Chapter 04] 00:04:15.634 , block from 87651 to 123859 (dvd_reader.c) [Chapter 05] 00:05:56.800 , block from 123860 to 163287
В примере выше на диске находятся 16 title'ов.
Работа с MPEG файлами Забираем вот такой скрипт. Далее разбиваем title на отдельные MPG файлы: $ cd where_is_VIDEO_TS $ mkdir mpeg $ split_dvd_titles.plx . mpeg В каталоге mpeg/ будет создан набор файлов соответствующий количеству непустых title. Дальнейшую обработку проводим таким скриптом. Правим параметры редактирования: # Video my $v_br = '900' ; Bitrate видео my $resize = '512x384'; Разрешение видео # Audio my $s_br = '128'; Bitrate звука my $sr = '44100'; Частота дискретизации my $ch = '2'; Количество каналов, 2 - стерео, 1 - моно Перекодируем: $ cd where_is_VIDEO_TS/mpeg $ for n in *.mpg ; do mpg2avi.plx $n ; done Опять же ждем некое время и получаем набор AVI файлов. Собственно все вышеописанное скорее сжатый конспект, чем подробное руководство, неточности и замечания принимаются по email. |
| Copyright (c) 1999-2008 Alexey Semenoff |