Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2007-12-09

Видео в формате "матрёшка"

Попросили меня фильм найти, Arizona dreams (аризонская мечта), Кустурицы. А я что, я ничего, интернет безлимитный, я и нашел 7.5 гигабайт файл MKV - кино, плюс еще полтора гига - звуковая дорожка DOLBY. А теперь не знаю, что с этим кином делать. Записать его можно только на двуслойную болванку (а они стоят в 4 раза больше обычных), чего мне совершенно не хочется; просмотреть его на моем компе не получается, не тянет мой старый четвертый пень 1.8 гигагерца.
Думал, думал, придумал. Переконвертировать во что полегче, например сделать из него DVD.

Да, а сначала я выяснил, что это за формат такой - MKV. Это матрёшка (или matroska) - контейнер для медиа, продвинутый. Например в моем случае, в одном файле кино закодированное h.264 (качество картинки потрясное), звуковая дорожка в AAC, и субтитры, причем текстом!. Чтобы это все посмотреть, я поставил набор кодеков MatroskaPack Full с www.freecodecs.net и свежий ffdshow
Тут-то я и выяснил, что машинка моя не тянет.

Потом я полез в инет в поисках ответа на вопрос "что надо сделать, чтобы замастерить DVD из MKV?" И нашел инструкцию на французском языке http://www.freewebs.com/mkv2dvd/
Испугался. Подумал ещё... и придумал - а нафига мне DVD? Может я просто пережму в файл размером в одну болванку? Матрешка то продвинутая, смотреть ее (его - кино) будут на компе. И...

0. Берем в сети MKVToolnix и размещаем его у себя на харде, допустим в c:\mkv
1. Берем MKVExtractGUI и кладем его туда-же. Там еще и "визард" есть, тоже прихватите, пригодицца.
2. Запускаем MKVextractGUI.exe и с его помощью распаковываем файл MKV на составляющие, в моем случае - видео, аудио и субтитры.
3. Берем в сети MediaCoder (похоже, архиполезная штучка) и размещаем на харде, допустим в c:\mc
4. Запускаем mediacoder.exe и тупо пялимся на сложносочиненное окно.
5. В тулбаре жмем кнопу ADD, находим файл с видео (достатый из контейнера на шаге 2.) и выбираем его.
6. Во вкладках, которые слева ниже выбратого файла выбираем: Видео: мода - bitrate-based 1024 Kbps, формат h.264, контейнер - AVI; Картинка: Ресайд 720х400 (тут надо уточнить у исходного файла, чтобы пропорции не нарушить, какое было исходное разрешение, и подобрать подходящее новое).
7. В меню щелкаем Transcode-start transcode.

Через минут 10 советую остановить процесс и заценить результат. Если результат в норме - запустите процесс еще раз и ждите... долго.

А когда закончит, запустим программу mmg.exe из комплекта
MKVToolnix и склеим обратно в матрешку пережатое видео, звук и субтитры. Всё. Теперь и на болванку влезет и смотреть на моем старом компе можно. Это я завтра проверю.
Поправка. Проверил. ,kz!
При загрузке получившегося AVI-шника в любые программы обработки их вышибает со свистом. А плееры проигрывают без проблем. Что за авишник я замутил?
Пришлось забить на графический интерфейс (уж я то знаю, что 70% труда и мучений программеров это GUI) и заняться командной строкой. Вот такие заклинания сделали мне за 5 минут то, что я и хотел (кино одним файлом в 1.5 гига размером, со звуком, субтитрами, картинкой хорошего качества) в формате матрешки:

set PATH=p:\app\mkvtools\MKVtoolnix;%PATH%
title in progress 2 mkv

mkvmerge -o "G:\t\arizona_dream.mkv" ^
-d 0 -A -S g:\t\arizona_dream.dvd9.x264.hddvd.Rus_Track1.avi ^
-a 0 -D -S G:\t\arizona_dream.dvd9.x264.hddvd.Rus_Track2.ac3 ^
-s 0 -D -A G:\t\arizona_dream.dvd9.x264.hddvd.Rus_Track3.srt ^
--track-order 0:0,1:0,2:0

title done 2 mkv
pause
exit

То, что в скрипте пути не совпадают с описанными ранее в тексте - ну я ж писал "допустим" и допустил. И не обещал точного совпадения.

А как по простому и не воруя софта сделать DVD из матрешки - я так и не узнал. А интересно.

7 комментариев:

  1. и я смогу засунуть туда гоблинские текстовые титры и смотреть и слушать одновременно? :))

    ОтветитьУдалить
  2. Непременно сможешь. И засунуть, и смотреть, и слушать...

    ОтветитьУдалить
  3. биг фэнкс, только не понял - этому медиакодеру звук не судьба не кодировать (оставить ac3)?

    ОтветитьУдалить
  4. медиакодер (MediaCoder) он ведь именно для кодирования. Собирать-разбирать контейнеры это не его (мне так показалось). А звук можно и не перекодировать, ведь я описал алгоритм - разбираем контейнер на составные части (потоки), перекодируем что надо, собираем потоки в контейнер какой надо. Изячно и управляемо.

    ОтветитьУдалить
  5. А если в простое *.avi (DivX/XviD + mp3) тогда как поступать. Или я чего непонял? С уважением....

    ОтветитьУдалить
  6. Если надо перекодировать "в простое *.avi", то поступать надо по той-же схеме - разобрали контейнер, перекодировали потоки (если надо), собрали контейнер (простой AVI).
    Схема прозрачна. А вот инструменты сбора/разбора/перекодирования искать - это отдельная и очень увлекательная песня.

    ОтветитьУдалить
  7. Спасибо за инструкцию. Как раз то что сейчас мне нужно.
    А переконвертировать матрёшку сразу в DVD можно следующим образом (на форуме ixbt нашёл):
    1) Берёш программу SUPER http://www.erightsoft.com/SUPER.html#Avis
    (судя по описанию программа не хуже, а может даже и лучше MediaCoder и тоже бесплатная). Она понимает матрёшку. Делаешь с помощью неё mpeg2 файл.
    2)Этот файл потом авторишь в какой-нибудь программе. Например TMPGEnc DVD Author (правда она не бесплатная)

    ОтветитьУдалить

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) humor (23) Java (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Klaipeda (15) Manager (15) web-browser (15) Никонов (15) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) Baltic (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) seaside (1) serialization (1) shore (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)