The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Копирование DVD диска и преобразование в AVI
Я не касаюсь качества кодирования, тем более что в архиве есть заметка про
двухпроходное кодирование.
Берем DVD, монтируем его как файловую систему, и переносим содержимое 
как файлы на диск. Очень удобно, если DVD невысокого качества и у него 
время от времени возникают ошибки чтения. Если по несколько раз 
монтировать/размонтировать плохой диск, то по частям удается скопировать 
его полностью.

mount /dev/dv /mnt/dvd
cp /mnt/dvd /home/DVDrip

В итоге, в файле /home/DVDrip появятся директории VIDEO_TS и AUDIO_TS. 
После этого DVD можно проигрывать с жесткого диска командой:

   mplayer dvd:// -dvd-device /home/DVDrip

Предположим, у диска есть несколько звуковых дорожек (с дубляжом и без) 
и несколько субтитров (русские-английские). Задача - разодрать DVD на 
два avi (с разными звуковыми дорожками, поскольку контейнер avi не 
позволяет иметь одновременно несколько дорожек) и отдельно иметь русские 
и английские субтитры.

В первую очередь выясним размер черной рамки на DVD. 
Для этого запустим DVD с середины и запустим автоматическое определение полей:

   mplayer dvd://1 -dvd-device ./ -vf cropdetect -ss 50:00

Кодирование самого видео можно сделать с помощью двухпроходного 
кодирования два раза для каждого из языков. При этом первый проход можно 
сделать всего один раз (в итоге получится трёхпроходное кодирование):

   mencoder dvd:// -dvd-device /home/DVDrip -vf crop=688:320:24:130 -oac lavc -ovc lavc \
      -lavcopts vcodec=mpeg4:vhq:vqmin=2:autoaspect:v4mv:mbd=2:trell:vpass=1 -o /dev/null

(единственный результат сего действа файл divx.log , используемый при 
вторых проходах)

   mencoder dvd:// -dvd-device /home/DVDrip -alang=ru \
      -vf crop=688:320:24:130  -oac lavc -ovc lavc \
      -lavcopts vcodec=mpeg4:vhq:vqmin=2:autoaspect:v4mv:mbd=2:trell:vpass=1    -o out[ru].avi

   mencoder dvd:// -dvd-device /home/DVDrip -alang=en \
      -vf crop=688:320:24:130 -oac lavc -ovc lavc \ 
      -lavcopts vcodec=mpeg4:vhq:vqmin=2:autoaspect:v4mv:mbd=2:trell:vpass=2 -o out[en].avi

(качества звука и видео я не касаюсь, пусть они будут на вашей совести)

Т.е. теперь есть две авишки (out[ru].avi/out[en].avi) - с дубляжом и 
без. 
Я люблю смотреть заграничные фильмы без дубляжа, но поскольку не 
слишком хорошо знаю язык, 
то предпочитаю иметь перед глазами субтитры.

Субтитры в формате vobsub выдрать из DVD легко, но они будут храниться в 
виде картинок, а не текста. Их размер примерно 4-2 МБ. Если для вас это 
некритично, 
то можно остановится на этом, иначе можно попробовать их OCR-ить, что не слишком 
легко организовать под Линуксом.

Итак:

   mencoder -alang en -slang en -dvd-device /home/DVDrip dvd:// -ovc copy \
      -oac copy -o /dev/null -vobsubout subtitles-en
   mencoder -alang en -slang ru -dvd-device /home/DVDrip dvd:// -ovc copy \
      -oac copy -o /dev/null -vobsubout subtitles-ru

В итоге получится по паре файлов с расширениями .sub и .idx

Вообщем-то, не каждый медиа-проигрыватель понимает это формат, но с mplayer-ом
в этом смысле всё в порядке:

   mplayer out[en].avi -vobsub subtitles-ru -spuaa 4 

Заметьте, что в параметре vobsub субтитры должны быть указаны без расширения, 
а spuaa включает интенсивное сглаживание субтитров.
 
10.01.2008 , Автор: geekkoo
Ключи: avi, dvd, mplayer, rip / Лицензия: CC-BY
Раздел:    Корень / Пользователю / CD, CD-R, DVD, AudioCD

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, Аноним (-), 11:55, 11/01/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    "поскольку контейнер avi не позволяет иметь одновременно несколько дорожек" - вполне себе позволяет, несколько звуковых потоков, между которыми можно переключаться.
     
     
  • 2.2, geekkoo (ok), 12:25, 11/01/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >"поскольку контейнер avi не позволяет иметь одновременно несколько дорожек" - вполне себе
    >позволяет, несколько звуковых потоков, между которыми можно переключаться.

    Не уверен. ИМХО, это умеет Matroska, но не avi. Но чтобы собрать матроску одного mencoder-а не хватит.

     
     
  • 3.5, Тузик (?), 15:43, 13/01/2008 [^] [^^] [^^^] [ответить]  
  • +/
    И не режет вам слух слово "матроска"?.. Может, всё-таки, матрёшка?..
     
  • 3.6, Anonimous (?), 14:27, 17/01/2008 [^] [^^] [^^^] [ответить]  
  • +/
    http://www.alexander-noe.com/video/amg/en_myths.html
     
     
  • 4.7, geekkoo (??), 18:44, 17/01/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >http://www.alexander-noe.com/video/amg/en_myths.html

    Хорошо, я готов поверить, что спецификация AVI формата допускает хранение до 256 видео/аудио потоков. Вопрос насколько эта функциональность поддерживается медиаплеерами и кодировщиками, и нгасколько о ней осведомлены разработчики.
    Если у вас есть готовый пример, как закодировать несколько потоков в один файл и потом их проиграть в разных комбинациях, то инетересно было бы об этом прочитать.

     
     
  • 5.8, Anonimous (?), 13:55, 18/01/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Quote from http://www.linux.org.ru/books/lor-faq/lorFAQ-22.html
    ---
    Проще всего с помощью программы avimerge из комплекта http://www.transcoding.org/cgi-bin/transcode. Например:
    avimerge -i input.avi -p input.wav -o output.avi
    Соответственно, клеится звук на первую свободную дорожку. Для avi-файлов, это дорожки с номерами от 0 до 31.
    Если дорожка 0 уже занята, то звук приклеится к дорожке 1 и получится avi с несколькими дорожками.
    ---

    MPlayer однозначно умеет воспроизводить avi с несколькими звуковыми дорожками.
    Насколько я помню опция -aid позволяет указывать какую дорожку хочется прослушать.

     
     
  • 6.9, geekkoo (ok), 13:14, 21/01/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >[оверквотинг удален]
    >Проще всего с помощью программы avimerge из комплекта http://www.transcoding.org/cgi-bin/transcode. Например:
    >avimerge -i input.avi -p input.wav -o output.avi
    >Соответственно, клеится звук на первую свободную дорожку. Для avi-файлов, это дорожки с
    >номерами от 0 до 31.
    >Если дорожка 0 уже занята, то звук приклеится к дорожке 1 и
    >получится avi с несколькими дорожками.
    >---
    >
    >MPlayer однозначно умеет воспроизводить avi с несколькими звуковыми дорожками.
    >Насколько я помню опция -aid позволяет указывать какую дорожку хочется прослушать.

    Спасибо, конечно, за avimerge, но мне кажется, не всё так просто как представляется авторам ЛОР-фака. Т.е. всё вроде бы должно работать, информации море, но когда начинаешь с этим разбираться выплывают разные подводные камни.

    Я попытался склеить два фильма, полученных из DVD с помощью mencoder-a, программой ffmpeg, которая тоже умеет манипулировать отдельными дорожками. В итоге действительно получился трех-дорожечный avi, но, во-первых, несмотря на то что в ffmpeg все кодеки были простые copy, качество картинки здорово ухудшилось, во-вторых, синхронизация стала хромать, а при быстрой перемотке в mplayer-e звук просто не перематывался.

    Хотя в теории всё это должно работать, но с этим нужно плотно разбираться, прежде чем получится работоспособное решение.

     

  • 1.3, Kage (?), 21:38, 11/01/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Если делать по нормальному то в .mkv формате с несколькими звуковыми дорожками и субтитрами.
     
     
  • 2.4, geekkoo (??), 04:12, 12/01/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Если делать по нормальному то в .mkv формате с несколькими звуковыми дорожками
    >и субтитрами.

    Согласен, что нет предела совершенству, но mencoder не умеет собирать матроски/матрёшки. Можно воспользоваться другими тулзами, но это уже другая история :)

     
     
  • 3.10, tmp (?), 16:55, 18/02/2008 [^] [^^] [^^^] [ответить]  
  • +/
    И так - на счет нескольких звуковых дорожек в avi - тема сооовсем не раскрыта >:-E А ведь к примеру ВиртуалДАБ - спокойно может приклеивать дополнительную дорожку. Вот я не давно скачал фильмец в avi и был удивлен что в нем 2 звук дорожки - которые приспокойно понимает не то что софтовый плеер а и бытовой pioneer. Вот стал искать возможность в менкодере, но только и слышу - "не возможно". ЕЩЕ КАК ВОЗМОЖНО! только как? пошел дальше искать.
     
     
  • 4.11, geekkoo (ok), 17:30, 18/02/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Как найдёте - сообщите.
     


     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру