Я не касаюсь качества кодирования, тем более что в архиве есть заметка про двухпроходное кодирование.
Берем 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].avimencoder 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 включает интенсивное сглаживание субтитров.
URL:
Обсуждается: http://www.opennet.me/tips/info/1551.shtml
"поскольку контейнер avi не позволяет иметь одновременно несколько дорожек" - вполне себе позволяет, несколько звуковых потоков, между которыми можно переключаться.
>"поскольку контейнер avi не позволяет иметь одновременно несколько дорожек" - вполне себе
>позволяет, несколько звуковых потоков, между которыми можно переключаться.Не уверен. ИМХО, это умеет Matroska, но не avi. Но чтобы собрать матроску одного mencoder-а не хватит.
И не режет вам слух слово "матроска"?.. Может, всё-таки, матрёшка?..
http://www.alexander-noe.com/video/amg/en_myths.html
>http://www.alexander-noe.com/video/amg/en_myths.htmlХорошо, я готов поверить, что спецификация AVI формата допускает хранение до 256 видео/аудио потоков. Вопрос насколько эта функциональность поддерживается медиаплеерами и кодировщиками, и нгасколько о ней осведомлены разработчики.
Если у вас есть готовый пример, как закодировать несколько потоков в один файл и потом их проиграть в разных комбинациях, то инетересно было бы об этом прочитать.
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 позволяет указывать какую дорожку хочется прослушать.
>[оверквотинг удален]
>Проще всего с помощью программы 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 звук просто не перематывался.
Хотя в теории всё это должно работать, но с этим нужно плотно разбираться, прежде чем получится работоспособное решение.
Если делать по нормальному то в .mkv формате с несколькими звуковыми дорожками и субтитрами.
>Если делать по нормальному то в .mkv формате с несколькими звуковыми дорожками
>и субтитрами.Согласен, что нет предела совершенству, но mencoder не умеет собирать матроски/матрёшки. Можно воспользоваться другими тулзами, но это уже другая история :)
И так - на счет нескольких звуковых дорожек в avi - тема сооовсем не раскрыта >:-E А ведь к примеру ВиртуалДАБ - спокойно может приклеивать дополнительную дорожку. Вот я не давно скачал фильмец в avi и был удивлен что в нем 2 звук дорожки - которые приспокойно понимает не то что софтовый плеер а и бытовой pioneer. Вот стал искать возможность в менкодере, но только и слышу - "не возможно". ЕЩЕ КАК ВОЗМОЖНО! только как? пошел дальше искать.
Как найдёте - сообщите.