Главная| Трекер| Поиск| Правила| Группы| Пользователи| Парсер |
Монтаж и работа с контейнерами
|
Главная » Кино, Видео и ТВ » Зарубежное кино |
|
Автор | Сообщение |
---|---|
admin ® Статус: Не в сети Стаж: 7 лет 1 месяц Сообщений: 23734 Откуда: Россия |
В данной инструкции описаны типичные монтажные операции над видеофайлами, такие как:
Операции монтажа никак не влияют на качество дорожек, т.к. не происходит никакой обработки.Программа MediaInfo в некоторых случаях высчитывает битрейт не правильно. Поэтому ориентироваться по ней не надо. ЧИТАТЬ В ПЕРВУЮ ОЧЕРЕДЬ!Для монтажа есть некоторые ограничения:1. Резать без пересжатия можно только начиная с ключевого кадра. Соответственно вырезать кусок точно так как хочется не получится, если начало фрагмента не является ключевым кадром. Заканчиваться фрагмент может либо ключевым кадром, либо P-кадром (который не использует информацию из последующего кадра в отличие от B-кадров). 2. Определять границы для форматов MKV, MP4 и TS придется либо на ощупь, либо через создание простенького avs-скрипта, чтобы можно было его открыть в редакторе VirtualDub и спокойно определить границы вырезаемых фрагментов визуально. Создание скрипта описано ниже в разделе "Получение информации о типе каждого кадра сжатого видеопотока". 3. Звук в формате AC3 резать в произвольном месте так же нельзя. Он состоит из фрагментов по 32мс. Соответственно, если длина куска видео не кратна 32мс, то аудиопоток будет заканчиваться чуть раньше. При добавлении к такому фрагменту следующего фрагмента можно получить рассинхрон, т.к. аудиодорожка от второго фрагмента пойдет следом за аудиодорожкой из первого, без учета разницы в продолжительности потоков первого фрагмента. Т.е. маленький зазор, который должен быть, просто исчезнет. Решить эту проблему можно путем распаковки звука всех фрагментов, соединения их в любом аудиоредакторе с добавлением зазоров и последующим сжатием в нужный формат уже цельной дорожки, которую и прикрепляем к склеенным видеофрагментам. ИллюстрацияПоэтому надо учитывать это при условии, что длина кадра для PAL равна 40мс, для NTSC - 1001/24мс. 4. Все эти форматы не созданы для редактирования, это как правило форматы конечного этапа хранения. Поэтому грамотное редактирование доступно лишь через полное или частичное пересжатие. С желанием вырезать один кадр вообще выхода кроме как пересжимать не остается. 5. Черные полосы можно убрать только при полном пересжатии видео. Исключение составляет формат mkv, в котором есть параметры позволяющие указывать границы отображаемой области. Но поддержка этих опций плеерами практически отсутствует. Структура сжатого видеопотока (теория)Как устроена видеопоследовательностьПри сжатии видео используется 3 типа кадров: I, P и B. I-кадр - это кадр, который не зависит от других кадров и сжат с очень небольшим коэффициентом. Его так же называют ключевым кадром. При просмотре сжатого видео вся навигация осуществляется через ключевые кадры. В результате приходится распаковать лишь кусок от ближайшего ключевого кадра чтобы попасть в нужное место видео. После I-кадров следует последовательность P-кадров, которые имеют гораздо большую степень сжатия, т.к. сохраняют лишь отличия от предыдущего кадра. Последовательность видео в этом случае может выглядеть так: IPPPPPPPPPPPPPPPPIPPPPPPP... Для дальнейшего увеличения сжатия были введены B-кадры. Они ставятся между двумя менее сжатыми кадрами (I/P или P/P). Последовательность получается такой: IPBPBPBPBPBPBPIPBPBPBP… (или IBPBPBPBPBPBPBPIPBPBPBP…). Коэффициент сжатия B-кадров больше, чем коэффициент сжатия P-кадров, т.к. сохраняются лишь отличия от соседних кадров. Но вместе с этим накладывается определённые ограничения. Например, вырезаемый фрагмент видео не может заканчиваться B-кадром. ИллюстрацияВ случае, если фрагмент видео заканчивается B-кадром и нельзя отступить в сторону чтобы попасть на P- или I-кадр, то придется пересжимать часть фрагмента начиная с последнего I-кадра и до конца (т.е. нужного кадра). Контейнеры (теория)Контейнер AVIОписаниеКомпания Microsoft впервые выпустила пакет Video for Windows для операционной системы Windows 3.1 в ноябре 1992 года, и с тех пор формат AVI (Audio Video Interleave) является основным для хранения видео в операционных системах семейства Windows.Основное преимущество универсального формата AVI (и, кстати, «секрет» его долголетия), в отличие от потоковых форматов типа MPEG, а тем более от таких специализированных разновидностей, как MP3 (MPEG Audio Layer 3), в том, что «стандартных» AVI-файлов практически не существует: AVI — фактически не более чем «контейнер», который содержит общее описание содержимого в стандартизованном виде. Таким образом, AVI-файлы только внешне выглядят одинаково, но внутри они могут сильно различаться, и, в то время как MPEG-, MP3- и MJPEG-файлы содержат потоки только определенного вида сжатия (компрессии), AVI может содержать много различных видов компрессии в любых сочетаниях. Однако работать с AVI-файлом можно будет только пока необходимый кодек доступен для кодирования/декодирования. Серьезным недостатком AVI-формата является то, что аудио- и видеофрагменты не содержат никаких меток времени или индексов кадра. Данные упорядочиваются по времени последовательно, в порядке поступления. Приложение для захвата или проигрывания видео должно само позаботиться о синхронизации видео- и аудиопотоков. Но если деление видео на кадры совершенно естественно, то звук представляет собой непрерывный поток, который приходится искусственно расчленять на фрагменты, соответствующие кадрам (из-за этого точная синхронизация изображения и звука часто отсутствует и звук может 'расходиться' с изображением). В простейшем случае каждому кадру видео соответствует кусок звукового сопровождения, но далеко не все AVI-файлы делаются по этой простой схеме. Недостаток временных меток был устранен в расширении AVI-формата - OpenDML AVI (поддержанный затем в DirectShow и в ActiveMovie), которое добавляет новые куски по меткам времени. Контейнер уже давно устарел и все никак не хочет уходить на пенсию, причем подавляющая часть медиа контента в сети до сих пор распространяется именно в нем. Минусы:
СтруктураВ соответствии с общей структурой RIFF-типа, AVI-файл должен иметь следующий вид:RIFF 'AVI ' // четырехбуквенный идентификатор файла (в RIFF-формате) LIST 'hdrl' // список заголовков блоков, определяющих форматы потоков LIST 'movi' // блоки данных (потоков) AVI-файла 'idx1' // необязательный блок, определяющий размещение блоков данных внутри AVI-файла <AVI Index> Список 'hdrl' может состоять из подсписков: LIST 'hdrl' // список заголовков блоков, определяющих форматы потоков 'avih' // главный заголовок AVI-файла LIST 'strl' 'strh' // заголовок потока 'strf' // формат потока 'strd' // дополнительный заголовок данных Список 'movi', в свою очередь, состоит из подблоков: LIST 'movi' // блоки данных (потоков) AVI-файла SubChunk | LIST 'rec ' // подблок | список записей '##wb' (размер блока 4 байта) (data) // звуковые данные (блок) '##dc' (размер блока 4 байта) (data) // видеоданные (блок) '##db' (размер блока 4 байта) (data) // видеоданные (блок) Контейнер MKVОписаниеСовременный, отвечающий всем потребностям, отличный контейнер.Matroska (так по-английски пишется русское слово Матрёшка) — проект, нацеленный на создание открытого гибкого кросс-платформенного (включая аппаратные платформы) стандарта форматов мультимедийных контейнеров и набора инструментов и библиотек для работы с данными в этом формате. Этот проект является развитием проекта MCF, но значительно отличается тем, что основан на EBML (Extensible Binary Meta Language — расширяемый двоичный метаязык) — двоичном аналоге языка XML. Использование EBML позволяет расширять формат без потери совместимости со старыми программами. Возможности формата, закладываемые в Matroska:
Matroska является открытым проектом (open standard). Это означает, что для персонального использования она абсолютно бесплатна, а техническая спецификация формата битового потока доступна любому, даже компаниям, желающим встроить поддержку формата в свои продукты (для этого потребуется специальная лицензия). Исходный код всех библиотек, созданных группой разработчиков проекта Matroska распространяется на условиях LGPL (библиотека для проигрывания, написанная на C с использованием целочисленной арифметики, распространятся также на условиях лицензии BSD). Matroska является прямой открытой альтернативой контейнерам AVI, ASF video, MOV, RealMedia, MP4, MPG. Существует поддержка адаптации и реализации библиотек Matroska для OpenBeOS Mediakit и GStreamer (англ.) (мультимедийной среды ОС GNU/Linux, похожей на Microsoft DirectShow для Windows) и набора фильтров DirectShow для воспроизведения и создания файлов Matroska в ОС Windows. Контейнер MP4ОписаниеКонтейнер, который является стандартом для MPEG-4.Имеет ограничения: не может содержать внутри видео в форматах: WMV, MPEG1, MPEG2, и не может содержать внутри звук в форматах: AC3, MP2, WMA. Контейнер TS, M2TSОписаниеЦелью создания контейнера TS является мультиплексирование аудио и видео данных и синхронизация их выхода. Т.е. основное назначение - трансляция по сетям передачи данных. Для этих целей в контейнере хранится очень много служебной информации. Например, при объемах ~30Gb служебная информация будет занимать ~2Gb.Поток транслируется пакетами по 188 байт, в которых содержится вся необходимая служебная информация (флаги, заголовки, идентификаторы, данные синхронизации и прочее). В m2ts пакет уже не 188 байт, а 192 байта. Добавляется информация о тайм-кодах для организации произвольного доступа к потоку. Сравнение различных контейнеров (англ.) Получение информации о типе каждого кадра сжатого видеопотокаСпособ через ffmpegУстанавливаем последнюю версию фрейм-серера AviSynth.Качаем последнюю версию ffmpeg. Из этого архива в папку "C:\Program Files\AviSynth 2.5\plugins\" копируем файл ffms2.dll. Если в архиве есть файл ffms2.avsi, то его копируем тоже. Файл содержит готовые полезные функции. В частности там описана используемая далее функция FFInfo. При наличии этого файла её не надо будет вставлять в скрипт. Создаем текстовый файл с расширением *.avs и следующим содержимым: Cкрипт (без использования файла ffms2.avsi)function FFInfo(clip c, bool "framenum", bool "frametype", bool "cfrtime", bool "vfrtime"){ framenum = default(framenum,true) frametype = default(frametype,true) cfrtime = default(cfrtime,true) vfrtime = default(vfrtime,true) global fftempclip = c fftempclip = frameevaluate(fftempclip, """ fftempstring = "" """) fftempclip = framenum ? frameevaluate(fftempclip, """fftempstring = fftempstring + "Frame Number: " + string(current_frame) + " of " + string(fftempclip.framecount) + "\n" """, after_frame=true) : fftempclip fftempclip = frametype ? frameevaluate(fftempclip, """fftempstring = fftempstring + "Picture Type: " + chr(FFPICT_TYPE) + "\n" """, after_frame=true) : fftempclip fftempclip = cfrtime ? frameevaluate(fftempclip, """fftempstring = fftempstring + "CFR Time: " + FFFormatTime(int((current_frame * 1000) / fftempclip.framerate)) + "\n" """, after_frame=true) : fftempclip fftempclip = vfrtime ? frameevaluate(fftempclip, """fftempstring = fftempstring + "VFR Time: " + FFFormatTime(FFVFR_TIME) + "\n" """, after_frame=true) : fftempclip return scriptclip(fftempclip, "subtitle(fftempclip, fftempstring, lsp = 1)", after_frame=true) } LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\ffms2.dll") FFVideoSource("C:\Film.avi") FFInfo(cfrtime = false, vfrtime = false) Cкрипт (если используется файл ffms2.avsi)LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\ffms2.dll")FFVideoSource("C:\Film.avi") FFInfo(cfrtime = false, vfrtime = false) Сначала придется подождать, это нормально. Видео индексируется. Видим результат: ИллюстрацияСпособ через ffdshowУстанавливаем последнюю версию фрейм-серера AviSynth.Ставим последнюю версию ffdshow. Во время установки никакие опции трогать не надо. После установки заходим в меню "Пуск->Программы->ffdshow->Конфигурация видеодекодера". В списке слева отмечаем пункт "OSD", в открывшемся списке справа отмечаем пункт "Тип кадра" и подтверждаем изменения нажатием кнопки "OK". ИллюстрацияCкриптDirectShowSource("c:\film.avi")Видим результат: ИллюстрацияПрограммы для работы с контейнерамиПри перепаковке из одного контейнера в другой рекомендуется работать с чистыми потоками. Т.е сначала извлечь потоки из одного контейнера, потом собрать их в нужный формат. Для извлечения и сборки потоков использовать родные форматам утилиты. Как наглядный пример к чему может привести перепаковка из одного контейнера в другой на прямую.58028182 Категорически не рекомендуется использовать tsMuxeR для прямого перемуксивания из контейнера mkv в контейнер m2ts (BDAV). В результате таких действий в некоторых случаях при проигрывании таким способом полученного m2ts возникают глюки в виде притормаживаний и кратковременного зависания изображения. При демуксе такого m2ts прогой Eac3to обнаруживаются ошибки типа таких: eac3to v3.27 command line: "G:\1\eac3to.exe" 00000.m2ts -demux -keepdialnorm ------------------------------------------------------------------------------ M2TS, 1 video track, 7 audio tracks, 2 subtitle tracks, 1:46:08, 24p /1.001 1: Chapters, 12 chapters 2: h264/AVC, 1080p24 /1.001 (16:9) 3: AC3, Russian, 5.1 channels, 384kbps, 48kHz, dialnorm: -27dB 4: DTS Master Audio, Russian, 5.1 channels, 24 bits, 48kHz (core: DTS, 5.1 channels, 24 bits, 1509kbps, 48kHz) 5: AC3, Russian, 5.1 channels, 384kbps, 48kHz, dialnorm: -27dB 6: AC3, Russian, 5.1 channels, 384kbps, 48kHz, dialnorm: -27dB 7: AC3, Russian, 2.0 channels, 192kbps, 48kHz, dialnorm: -27dB 8: AC3, Russian, 2.0 channels, 192kbps, 48kHz, dialnorm: -27dB 9: DTS Master Audio, English, 5.1 channels, 24 bits, 48kHz (core: DTS, 5.1 channels, 24 bits, 1509kbps, 48kHz) 10: Subtitle (PGS), Russian 11: Subtitle (PGS), English Creating file "00000 - Chapters.txt"... [v02] Extracting video track number 2... [a04] Extracting audio track number 4... [a06] Extracting audio track number 6... [a08] Extracting audio track number 8... [a07] Extracting audio track number 7... [a03] Extracting audio track number 3... [s10] Extracting subtitle track number 10... [a05] Extracting audio track number 5... [a09] Extracting audio track number 9... [s11] Extracting subtitle track number 11... [a09] Creating file "00000 - 9 - DTS Master Audio, English, 5.1 channels, 24 bits, 48kHz.dtsma"... [a04] Creating file "00000 - 4 - DTS Master Audio, Russian, 5.1 channels, 24 bits, 48kHz.dtsma"... [v02] Creating file "00000 - 2 - h264, 1080p24.h264"... [a03] Creating file "00000 - 3 - AC3, Russian, 5.1 channels, 384kbps, 48kHz.ac3"... [a06] Creating file "00000 - 6 - AC3, Russian, 5.1 channels, 384kbps, 48kHz.ac3"... [a05] Creating file "00000 - 5 - AC3, Russian, 5.1 channels, 384kbps, 48kHz.ac3"... [a07] Creating file "00000 - 7 - AC3, Russian, 2.0 channels, 192kbps, 48kHz.ac3"... [a08] Creating file "00000 - 8 - AC3, Russian, 2.0 channels, 192kbps, 48kHz.ac3"... [s10] Creating file "00000 - 10 - Subtitle (PGS), Russian.sup"... [s11] Creating file "00000 - 11 - Subtitle (PGS), English.sup"... [v02] Video overlaps for 14 frames at playtime 0:47:10. <WARNING> [v02] Video overlaps for 14 frames at playtime 1:16:11. <WARNING> [v02] Video overlaps for 14 frames at playtime 1:25:10. <WARNING> [v02] Video overlaps for 14 frames at playtime 1:28:39. <WARNING> [v02] Video overlaps for 15 frames at playtime 1:34:35. <WARNING> Video track 2 contains 152693 frames. Subtitle track 10 contains 863 captions. Subtitle track 11 contains 1063 captions. eac3to processing took 26 minutes, 43 seconds. Done. eac3to v3.27 command line: "G:\1\eac3to.exe" 00000.m2ts -demux -keepdialnorm ------------------------------------------------------------------------------ M2TS, 1 video track, 7 audio tracks, 2 subtitle tracks, 1:46:08, 24p /1.001 1: Chapters, 12 chapters 2: h264/AVC, 1080p24 /1.001 (16:9) 3: AC3, Russian, 5.1 channels, 384kbps, 48kHz, dialnorm: -27dB 4: DTS Master Audio, Russian, 5.1 channels, 24 bits, 48kHz (core: DTS, 5.1 channels, 24 bits, 1509kbps, 48kHz) 5: AC3, Russian, 5.1 channels, 384kbps, 48kHz, dialnorm: -27dB 6: AC3, Russian, 5.1 channels, 384kbps, 48kHz, dialnorm: -27dB 7: AC3, Russian, 2.0 channels, 192kbps, 48kHz, dialnorm: -27dB 8: AC3, Russian, 2.0 channels, 192kbps, 48kHz, dialnorm: -27dB 9: DTS Master Audio, English, 5.1 channels, 24 bits, 48kHz (core: DTS, 5.1 channels, 24 bits, 1509kbps, 48kHz) 10: Subtitle (PGS), Russian 11: Subtitle (PGS), English Creating file "00000 - Chapters.txt"... [a05] Extracting audio track number 5... [a07] Extracting audio track number 7... [a09] Extracting audio track number 9... [a06] Extracting audio track number 6... [s11] Extracting subtitle track number 11... [s10] Extracting subtitle track number 10... [a04] Extracting audio track number 4... [a08] Extracting audio track number 8... [v02] Extracting video track number 2... [a03] Extracting audio track number 3... [a09] Creating file "00000 - 9 - DTS Master Audio, English, 5.1 channels, 24 bits, 48kHz.dtsma"... [a04] Creating file "00000 - 4 - DTS Master Audio, Russian, 5.1 channels, 24 bits, 48kHz.dtsma"... [v02] Creating file "00000 - 2 - h264, 1080p24.h264"... [a03] Creating file "00000 - 3 - AC3, Russian, 5.1 channels, 384kbps, 48kHz.ac3"... [a05] Creating file "00000 - 5 - AC3, Russian, 5.1 channels, 384kbps, 48kHz.ac3"... [a06] Creating file "00000 - 6 - AC3, Russian, 5.1 channels, 384kbps, 48kHz.ac3"... [a08] Creating file "00000 - 8 - AC3, Russian, 2.0 channels, 192kbps, 48kHz.ac3"... [a07] Creating file "00000 - 7 - AC3, Russian, 2.0 channels, 192kbps, 48kHz.ac3"... [s10] Creating file "00000 - 10 - Subtitle (PGS), Russian.sup"... [s11] Creating file "00000 - 11 - Subtitle (PGS), English.sup"... Video track 2 contains 152688 frames. Subtitle track 10 contains 863 captions. Subtitle track 11 contains 1063 captions. eac3to processing took 28 minutes, 11 seconds. Done. - AviInfo (AVI Tags)СкачатьЗапускаем программу и указываем AVI-файл, тэги которого нужно отредактировать. Выбираем пункт меню "Options -> Edit AVI Tags". ИллюстрацияИллюстрацияVirtualDub (AVI)Для работы с контейнером AVI нет ничего лучше, чем многофункциональный VirtualDub. Лучше всего использовать его модификацию VirtualDubMod. Скачивать надо версию "All inclusive". Операции монтажа достаточно удобно сделаны, хоть иногда и косячат. Последнее выражается в том, что программа отображает не тот кадр на котором стоит курсор. Поэтому осуществляя операции монтажа надо четко представлять что делаете.Ввод данныхВидео фрагмент открывается через пункт меню "File -> Open video file".Остальные данные - в процессе работы. Вырезать фрагмент / удалить фрагментВ нижней части окна программы при помощи бегунка находим начало нужного сегмента и в меню выбираем "Edit -> Set selection start", либо используем клавишу "Home" на клавиатуре. Под полосой прокрутки размещены панель навигации и информация о времени, номере кадра и объеме фрагмента в мегабайтах от начала до текущей позиции. Если при этом рядом со счетчиком времени будет буковка [K], то можно считать, что ваши пожелания совпали с вашими возможностями. Потому как это обозначение ключевого кадра. Для перемещения строго по ключевым кадрам нужно зажать "Shift".Иллюстрация1. Сдвинуть бегунок влево до ближайшего ключевого кадра. Впрочем программа сделает это сама, если вы ничего не будете менять. 2. Сдвинуть бегунок вправо до ближайшего ключевого кадра. Вырезать фрагмент, а недостающую часть потом пересжать. Чтобы указать конец фрагмента, нужно так же поставить бегунок на нужный кадр и в меню выбрать "Edit -> Set selection end", либо воспользоваться клавишей "End" на клавиатуре. ИллюстрацияТеперь выставляем обязательно опцию "Video -> Direct stream copy" чтобы программа ничего не пересжимала. Для того чтобы вырезать фрагмент просто сохраняем его в отдельный файл при помощи команды меню "File -> Save as". Для того чтобы удалить фрагмент нужно нажать кнопку "Del", тем самым удалив фрагмент, и сохранить оставшееся в отдельный файл при помощи команды меню "File -> Save as". Склеить два фрагментаЧтобы склеить два фрагмента должны выполняться следующие условия:1. Должно совпадать разрешение обоих фрагментов. 2. Должна совпадать частота кадров обоих фрагментов. 3. Должны совпадать потоки аудио дорожек. 4. Должен совпадать битрейт аудио дорожек. 5. Фрагменты не должны содержать пустот в потоках аудио дорожек в начале (задержка дорожки) и в конце (дорожка короче видео) фрагмента. Иначе все может покоситься. VirtualDub совершенно не умеет обрабатывать подобные моменты. Для того чтобы склеить два фрагмента достаточно открыть первый фрагмент обычным способом через пункт меню "File -> Open video file" и добавить второй фрагмент через пункт меню "File -> Append segment". Если все нормально, то никаких сообщений не будет и останется только сохранить результат через команду в пункте меню "File -> Save as", не забыв при этом выставить опцию "Video -> Direct stream copy". Если же вылезла какая либо ошибка, значит технические характеристики фрагментов не идентичны. При склеивании фрагментов с fps не являющимся целыми числами могут возникнуть проблемы - VirtualDub будет выдавать ошибку несовпадения fps у фрагментов на тысячные доли. В этом случае можно сделать так: - разобрать оба фрагмента на видео и аудио - выставить у видео обоих фрагментов fps равный 25 - склеить фрагменты видео и сохранить - открыть полученный файл, изменить fps на исходный и пересохранить - склеить аудиодорожки фрагментов (но надо учитывать, что в этом случае может что то съехать, если аудиодорожки фрагментов не совпадают по продолжительности с продолжительностью своих видеопотоков) - осталось соединить вместе получившиеся видеопоток и аудиодорожки. Если в фрагментах звук в формате mp3 с переменным битрейтом, то может потребоваться раздельная склейка видео и аудио. Добавить аудио дорожкуВот тут как раз и проявляется все удобство VirtualDubMod по сравнению с оригинальным VirtualDub. Удобно работать с потоками и расширенный список поддерживаемых аудио-форматов.Переходим в меню "Streams -> Stream list". Видим окно со списком аудио дорожек. Чтобы добавить дорожку жмем на кнопку "add" и выбираем файл со звуковой дорожкой. Кнопками "Move up / Move down" можно переместить её на нужную позицию, например, на первую (если добавляем перевод). Так же здесь можно задать сдвиг дорожки в миллисекундах. Для этого щелкаем правой кнопкой мышки по нужной дорожке и выбираем пункт меню "Interleaving...". Здесь, в поле "Delay audio track by..." выставляем положительное значения для задержки звука или отрицательное для опережения. ИллюстрацияИллюстрацияУдалить аудио дорожкуПереходим в меню "Streams -> Stream list". Видим окно со списком аудио дорожек.ИллюстрацияИллюстрацияВырезать аудио дорожкуПереходим в меню "Streams -> Stream list". Видим окно со списком аудио дорожек.ИллюстрацияИллюстрацияДать имя аудиодорожкеПереходим в меню "Streams -> Stream list". Видим окно со списком аудио дорожек.ИллюстрацияИллюстрацияИллюстрацияИллюстрацияК сожалению другие свойства аудиодорожек, доступные в VirtualDub, кроме "Title" не работают. Есть возможность добавить несколько комментариев, но это не имеет смысла, т.к. отображается только первый. Так же надо заметить, что VirtualDubMod при открытии файла эти поля не считывает, поэтому надо это учитывать. Разрезать фильм на равные частиВ меню "Save As" ставим галочку на "Segment output file", в поле "Limit size (in MegaBytes) of each segment to" выставляем на части какого объема резать. Ниже не забываем выставить значение "Video mode" в "Direct Stream Copy". Теперь жмем "Сохранить" и получаем файл в нарезке.ИллюстрацияОпределить задержку аудио дорожкиЧасто у аудиодорожек задают положительный сдвиг - задержку. Определить её можно следующим образом: извлекаем аудио дорожку и снова её прикрепляем. Высчитываем разницу между продолжительностью родной дорожки и прикрепленной. Это и есть задержка. Т.е. VirtualDubMod показывает продолжительность дорожки вместе с задержкой, а извлекается дорожка, естественно, без задержки.Замена идентификатора XviD <-> DivX (FourCC)Кодеки XviD и DivX хоть и развиваются не зависимо, но имеют общие корни. В результате чего создаваемый ими код совместим. Многие бытовые плееры, которые проигрывают DivX не воспринимают XviD. В основном это основано именно на идентификаторе. Если его заменить, то и фильм сжатый при помощи XviD будет воспроизводится без проблем.Поправить идентификатор очень просто. Для этого понадобится либо оригинальный VirtualDub, либо VirtualDubMod, главное - при открытии файла в "Hex editor" снять в самому низу галочку "Только чтение". Запускаем VirtualDub или VirtualDubMod и вызываем утилиту "Tools -> Hex editor". ИллюстрацияИллюстрацияНаходим в колонке справа надпись "XVID" большими буквами. ИллюстрацияИллюстрацияИллюстрацияПредварительно видео нужно открыть в VirtualDub через меню "File -> Open Video file". ИллюстрацияИллюстрацияИллюстрация (было)Иллюстрация (стало)Сохранение AVI без поддержки Open-DML для совместимости с бытовыми DVD проигрывателямиПри сохранении файла достаточно выставить галочку на "Save AVI in old 1.0 (VfW 1.1e) format (Compatibility mode)".ИллюстрацияMKVToolNix (MKV)Для работы с контейнером MKV существует родная для формата утилита MKVToolNix.Важные изменения4.0.0Предупреждение: С версии 4.0.0 обновилась библиотека libMatroska, что может привести к проблемам с воспроизведением на бытовых проигрывателях выпущенных ранее. Поэтому рекомендуется в случае необходимости проигрывания на бытовых устройствах использовать более ранние версии.Комментарий: Уже не актуально. Начиная с версии 6.0.0 сжатие заголовков по умолчанию отключено, пункт из меню настроек программы исключен. 4.1.0Предупреждение: С версии 4.1.0 по умолчанию для всех потоков выставлено сжатие заголовков, что может быть причиной отсутствия видео и звука при проигрывании на бытовых медиапроигрывателях. Чтобы этого избежать надо выставить опцию сжатия в "None" для каждой из дорожек на вкладке "Extra options -> Compression".Отключение сжатия заголовковЗаходим в настройки программы через меню "File -> Options"ИллюстрацияОтмечаем пункт "Disable header removal compression for audio and video tracks by default". Иллюстрация5.9.0Предупреждение: С версии 5.9.0 добавляются новые опции в структуру контейнера. Согласно спецификации mkv проигрыватель наткнувшись на не знакомые элементы должен их просто проигнорировать. Но не все проигрыватели следуют спецификации. Поэтому могут возникнуть проблемы с воспроизведением файлов созданных этой и последующими версиями сборщика. Чтобы отключить добавление дополнительной информации надо использовать параметры командной строки "--engage no_cue_duration" и "--engage no_cue_relative_position".Отключение добавления дополнительной информации в структуру контейнераЗаходим в меню "Muxing -> Add command line options".ИллюстрацияВ появившемся окне, в нижней части вставляем параметры --engage no_cue_duration и --engage no_cue_relative_position и нажимаем "Ok". ИллюстрацияЧтобы эти параметры программа запомнила и использовала в дальнейшем нужно поставить галочку "Save as default for new jobs". ИллюстрацияПроверить можно через меню "Muxing -> Show the command line". ИллюстрацияВ появившемся окне должны присутствовать параметры --engage no_cue_duration и --engage no_cue_relative_position. Иллюстрация7.0.0В версии программы MKVToolNix v7.0.0 появилась новая функция (читайте ChangeLog-файл описания изменений), автоматически генерирующая и добавляющая в контейнер технические данные о каждой его основной дорожке в виде файлов Тегов при очередном мультиплексировании.По заявлению разработчика включение данной функции обусловлено необходимостью более легкого получения данной информации для других программ.Теги дорожек на сегодняшний день включают следующие параметры (возможно, их список будет расширяться):
В открывшемся окне в разделе Доступные параметры: (Available options:) выберите "--disable-track-statistics-tags" и нажмите кнопку Добавить (Add).Этот параметр пропишется в поле Параметры командной строки: (Command line options:). При желании можете Сохранить как параметры по умолчанию для новых заданий (Save as default for new jobs) и далее жмите OK. Автор комментария - Alofa Рекомендация: Если нужно поменять какие то атрибуты вроде названия потоков или их языка, это можно сделать без пересборки контейнера. Для этих целей есть редактор заголовков. Использование редактора заголовковРедактор заголовка запускается через меню "MKVToolNix GUI -> Header editor" утилиты "mkvmerge GUI".ИллюстрацияПосле анализа файла в левой части окна программы будет выведен список потоков ролика. ИллюстрацияИллюстрацияИзменение наименования потока. Изменение языка потока. Добавление свойства обрезки кадра слева и установка значения этого свойства равного 10 пикселям.Свойства, смысл которых вам не понятен, изменять не рекомендуется. Первым делом советую перенастроить формат вывода для раздела "Multiplexer". Необходимая настройка находится в меню "MKVToolNix GUI -> Preferences -> Multiplexer -> Layout". Нужно переключить опцию "Position for the track properties on the 'input' tab" в положение "In a tab widget below the files and tracks". В таком виде площадь формы используется более рационально. ИллюстрацияПарадигма последних версий позволяет работать сразу с несколькими монтажными столами одновременно. Выражается это в виде вкладок в главном окне программы. Так же новшеством является очередь выполнения заданий. Теперь можно все настроить, закинуть в очередь, запустить и заняться другими делами. Ввод данныхКонцепция ввода данных состоит в том чтобы добавить исходные фрагменты из составляющих потоков которых можно будет собрать результат. Так же есть возможность добавления очередного фрагмента в дополнение к уже существующему.Загрузка исходных фрагментов осуществляется тремя способами:
Кнопка "Add source files" и контекстное меню раздела "Source files" имеют схожий принцип функционирования. Пункт "Add files" вызывает диалог выбора файла. Если в разделе "Source files" выбран какой либо фрагмент, то в меню становится доступен пункт "Append files" позволяющий присоединить новый фрагмент к уже выбранному. ИллюстрацияВ случае перетаскивания файлов в область раздела "Source files" вкладки "Input" окна программы без вопросов добавляется только первый и единственный файл. В остальных случаях будет выведен диалог выбора действия:
ИллюстрацияУдаление какого либо фрагмента осуществляется через пункт "Remove file" контекстного меню, либо клавишей "Delete" на клавиатуре. Так же доступно удаление всех фрагментов через пункт "Remove all files". Вывод результата и прогресс выполненияПуть выходного файла нужно указать в нижней части окна программы в поле "Destination file". После этого жмем правее кнопку "Start multiplexing", которая помещает задачу в очередь с автоматическим исполнением согласно существующему порядку очереди. Либо можно кнопкой "Add to job queue" поместить задачу в очередь с ожиданием ручного запуска.За процессом можно следить либо по строке состояния окна программы, которая расположена в самом низу. На ней отображается количество задач с автоматическим запуском, ручным запуском и уже запущенных, количество предупреждений и ошибок, а так же процент выполнения исполняемой задачи и общий процент выполнения относительно запланированных задач. Более подробную информацию можно посмотреть в разделе "Job output", где находится общий лог выполнения задач. ИллюстрацияВырезать фрагмент / удалить фрагментПереходим на вкладку "Output". Нас интересует раздел "Splitting", опция "Split mode". Доступны несколько режимов, настройки которых вводятся строкой ниже.
ИллюстрацияОпция "Link files" позволяет автоматически связать разрезанные фрагменты, чтобы во время воспроизведения все выглядело как цельный фильм при условии, что файлы останутся лежать в одной директории. Резка осуществляется с ближайшего последующего ключевого кадра относительно указанных меток. Склеить два фрагментаДобавляем первый фрагмент пунктом "Add files" контекстного меню или меню по кнопке "Add source files", либо просто перетаскиваем файл на область раздела "Source files" вкладки "Input" окна программы.ИллюстрацияДобавляем последующие фрагменты пунктом "Append files" контекстного меню или меню по кнопке "Add source files", либо просто перетаскиваем файлы на область раздела "Source files" вкладки "Input" окна программы. Чтобы стал доступен соответствующий пункт меню в первом случае контекстное меню нужно вызвать кликнув по уже загруженному первому фрагменту, во втором случае первый фрагмент должен быть выделен, т.е. на нем должен находиться курсор (строка выделения). В третьем случае будет задан вопрос что делать с перетаскиваемыми файлами - нужно выбрать пункт меню "Append to an existing source file" и указать первый фрагмент в нижней части окна диалога. ИллюстрацияОстается только запустить выполнение задачи. Рекомендация: Если при склейке двух фрагментов при воспроизведении второго отображается серый квадрат, то единственный рабочий способ решить эту проблему заключается в соединении сырых (raw) потоков "*.h264" извлеченных при помощи eac3to. Добавить/удалить аудио дорожку/субтитрыДобавляем все ингредиенты при помощи пункта "Add files" контекстного меню или меню по кнопке "Add source files", либо просто перетаскиваем файлы на область раздела "Source files" вкладки "Input" окна программы. Оставляем галочки в списке нужных потоков "Tracks, chapters and tags". Нужный порядок задается простым перетаскиванием потоков на желаемые места. Для каждого потока есть возможность указать различные параметры.ИллюстрацияНа вкладке "General options" отображаются основные свойства:
ИллюстрацияНа вкладке "Timecodes and default duration" отображаются операционные свойства:
ИллюстрацияПримечание: Если субтитры в формате S_TEXT/ASS, в которых используются специальные шрифты, то файлы шрифтов также надо добавить. Извлечь поток (видео/аудио дорожку/субтитры/главы)mkvExtractGUI-2Содержимое архива нужно распаковать и перенести файлы в папку, где установлен MKVToolNix.Иллюстрация1. Выбираем подопытного. Также можно перетащить нужный файл мышкой на окно программы. 2. Указываем путь для сохранения потоков. Если отметить поле "Source Dir", то потоки будут сохранены рядом с исходным файлом. 3. Этими псевдокнопками можно либо снять выделение всех потоков (кнопка слева), либо выделить все потоки (кнопка справа). 4. Отмечаем нужные для извлечения потоки. 5. Запускаем процесс. В нижней части окна будет отображаться прогресс в виде процентов. MKVcleaverСкачиваем и устанавливаем программу.Удобство этой программы в потоковой обработке нескольких файлов. Иллюстрация1. Добавить файлы в программу можно либо при помощи кнопки "Open MKV files to process..." либо перетащив их мышкой на окно программы. Чтобы удалить файл из списка нужно отметить его и нажать кнопку "Remove selected files from list". 2. В нижней части программы, в разделе "Output directory" нужно указать папку куда сохранять извлеченные потоки. Если не указывать, то потоки будут извлекаться в ту же директорию, что и исходный файл. 3. В левой части можно отметить какие потоки надо извлекать у каждого файла. 4. Справа, в разделе "Tracks to extract (Batch Mode)" можно задать общее условие для извлечения потоков и прочего содержимого контейнера. Т.е. извлечь из каждого файла такую то по счету аудиодорожку (Audio Track) или субтитры (Subtitle Track), извлечь прикрепленные файлы (Attachments), таймкоды (Timecodes), главы (Chapters) или тэги (Tags). 5. В поле "Filename options" можно настроить как будут именоваться извлеченные потоки. Первый вариант - "номер трэка - имя файла", второй - наоборот. Если во втором случае отметить опцию "Use 'Video', 'Audio' and 'Subtitle'", то вместо слова "Track" будет прописываться тип потока. 6. Для запуска нужно нажать кнопку "Extract Tracks!". Она становится активной только в том случае, если в одном из файлов есть что извлекать. При помощи командной строкиКомандная строка вызывается через меню "Пуск -> Выполнить". Далее вводим "cmd" и нажимаем "Enter".Любой поток извлекается следующей командой: "C:\mkvmerge\mkvextract.exe" tracks "c:\movie.mkv" 2:"c:\audio1.ac3" Так же можно извлекать сразу несколько потоков: "C:\mkvmerge\mkvextract.exe" tracks "c:\movie.mkv" 2:"c:\audio1.ac3" 3:"c:\audio2.flac" Чтобы извлечь главы: "C:\mkvmerge\mkvextract.exe" chapters "c:\movie.mkv" --redirect-output "c:\chapters.xml" Чтобы извлечь тэги: "C:\mkvmerge\mkvextract.exe" tags "c:\movie.mkv" --redirect-output "c:\tags.xml" Чтобы извлечь тайм-коды: "C:\mkvmerge\mkvextract.exe" timecodes_v2 "c:\movie.mkv" --redirect-output "c:\timecodes.txt" Чтобы извлечь прикрепленные файлы: "C:\mkvmerge\mkvextract.exe" attachments "c:\movie.mkv" 1:"c:\attachment1" 2:"c:\attachment2" Оригинальное название каждого вложения можно посмотреть через mkvMerge на вкладке Attachments. ИллюстрацияИзменить fps видеоДля изменения скорости воспроизведения нужно указать желаемое значение в свойствах видеопотока в поле "Default duration/FPS" раздела "Timecodes and default duration", задается в виде рационального числа (либо дроби с целыми значениями), так же доступен выбор из списка базовых значений.ИллюстрацияДля чересстрочного видео нужно выставлять частоту кадров в два раза большую. Определить это можно, если при выставлении оригинальной частоты кадров продолжительность увеличивается в 2 раза. Так же может быть такая ситуация, что поток на самом деле явно прогрессивный, а исходная частота кадров - 29.970i. В этом случае надо обработать поток одной из программ: h264info - для потока h264/AVC vc1conv - для потока VC-1 В результате получим поток с честной частотой кадров равной 23.976p. Crop без пересжатияЭта фича будет работать только в случае, если устройство или программный плеер поддерживают такую опцию.В списке "Tracks, chapter and tags" выбираем видеодорожку. Она обычно идет первой. Ниже переходим на закладку "Video properties" и в поле "Cropping" вписываем через запятую значения отрезаемых полос слева, сверху, справа, снизу. ИллюстрацияОпределение задержки потокаПосле выставления задержки для какого либо потока эта информация при открытии файла не отображается в поле задержки. А задержка никуда не делась. Чтобы определить задержку нужно воспользоваться утилитой mkvInfo из состава mkvToolNix. Последние версии надо запускать с ключом "--gui" или "-g" чтобы работать с привычным оконным интерфейсом. Самый простой способ - создать ярлык на "mkvInfo.exe" и в его свойствах, в строку запуска добавить этот ключ.ИллюстрацияДалее перетаскиваем на окно нужный mkv и включаем расширенный режим отображения через меню "Options -> Show all elements". ИллюстрацияВозможно потребуется некоторое время, чтобы программа вывела всю детальную информацию. В нижнем левом углу окна утилиты можно следить за процессом. Теперь нужно обратить внимание на раздел "Segment..." и найти в нем первый подраздел "Cluster...". ИллюстрацияРаскрываем его и ищем первую запись, где упоминается номер потока, для которого надо определить задержку. В рассматриваемом примере потоков три. 1 - видео, 2/3 - аудио. Для последних двух и определим задержку относительно видео. ИллюстрацияПолучаем следующие данные: Задержка потока №1: 29.880с Задержка потока №2: 29.382с Задержка потока №3: 29.467с Теперь, поскольку нам требуются задержки аудио относительно видео нужно посчитать разницу между задержками аудио и видео потоков, т.е. Задержка потока №2 относительно потока №1: 29.382 - 29.880 = -498мс Задержка потока №3 относительно потока №1: 29.467 - 29.880 = -413мс В качестве примера взята запись со спутника. Поэтому присутствует задержка для видеопотока. Обычно же в скачиваемых фильмах задержки у видеопотока нет, т.е. видимая в mkvInfo задержка и есть искомой. Поскольку задержка потока не отображается в его свойствах при открытии mkv через mkvMerge, то есть один момент, который надо учитывать. При указании задержки в поле "Delay" она суммируется с той, которая уже была. Так же задержку можно посмотреть при помощи MediaInfo. Создание глав и нескольких версий фильмаПросто главыДля создания и добавления глав открывать изначально какой либо видеофайл не надо.Выбираем раздел "Chapter editor", нажимаем кнопку "New". Первая глава уже добавлена. ИллюстрацияДалее можно добавить еще главы при помощи контекстного меню.
Теперь выбираем первую главу и становятся доступны её опции:
Так же можно не указывать "UID" и "Name". Но без названия будет совсем неудобно... ИллюстрацияРедактор глав является независимой утилитой и никак не связан с частью программы отвечающей за микширование. Поэтому для использования созданного списка глав есть два пути: Иллюстрация1. Через пункт меню "Chapter Editor -> Save to Matroska file" сохранить сразу в нужное видео. Причем это происходит существенно быстрее, чем второй способ, т.к. в этом случае просто вносятся изменения в указанный файл. 2. Сохранить список глав в отдельный файл через меню "Chapter Editor -> Save as XML file". Открыть нужное видео в разделе "Multiplexer", указать файл глав на закладке "Output" в поле "Chapter file", не забыв на вкладке "Input" снять галку с исходного потока глав, если таковой был. Остается только сохранить результат. ИллюстрацияСтандартно доступ к списку глав (к верхнему уровню вложенности) при просмотре можно получить через Haali Media Splitter (он же Matroska Splitter) кликнув правой кнопкой мышки по значку контейнера в трее при запущенном фильме. ИллюстрацияПримечание: Не каждый проигрыватель способен показать все уровни вложенности. Одним из таких является VLC. Упорядоченные главыПросто главы - это фактически точки поиска в видеопотоке.Упорядоченные главы позволяют задавать виртуальную шкалу времени. Для того, чтобы включить этот режим нужно в файл глав добавить тег "<EditionFlagOrdered>1</EditionFlagOrdered>". Это придется делать вручную, программа не позволяет использовать эту опцию. Пример файла глав (chapters.xml)<?xml version="1.0" encoding="UTF-8"?> <!-- <!DOCTYPE Tags SYSTEM "matroskatags.dtd"> --> <Chapters> <EditionEntry> <EditionFlagOrdered>1</EditionFlagOrdered> <EditionFlagHidden>0</EditionFlagHidden> <EditionFlagDefault>0</EditionFlagDefault> <EditionUID>418778243</EditionUID> <ChapterAtom> <ChapterDisplay> <ChapterString>Opening</ChapterString> <ChapterLanguage>und</ChapterLanguage> </ChapterDisplay> <ChapterUID>3825996674</ChapterUID> <ChapterTimeStart>00:00:00.000000000</ChapterTimeStart> <ChapterFlagHidden>0</ChapterFlagHidden> <ChapterFlagEnabled>1</ChapterFlagEnabled> </ChapterAtom> <ChapterAtom> <ChapterDisplay> <ChapterString>Serie #1</ChapterString> <ChapterLanguage>und</ChapterLanguage> </ChapterDisplay> <ChapterUID>2294809483</ChapterUID> <ChapterTimeStart>00:00:05.000000000</ChapterTimeStart> <ChapterFlagHidden>0</ChapterFlagHidden> <ChapterFlagEnabled>1</ChapterFlagEnabled> </ChapterAtom> <ChapterAtom> <ChapterDisplay> <ChapterString>Ending</ChapterString> <ChapterLanguage>und</ChapterLanguage> </ChapterDisplay> <ChapterUID>3630189237</ChapterUID> <ChapterTimeStart>00:00:25.000000000</ChapterTimeStart> <ChapterFlagHidden>0</ChapterFlagHidden> <ChapterFlagEnabled>1</ChapterFlagEnabled> </ChapterAtom> </EditionEntry> </Chapters> ИллюстрацияИллюстрацияЖелательно чтобы каждая глава начиналась с ключевого кадра, иначе будут задержки при переходе к главе, которая начинается не с ключевого кадра. Версии фильма и произвольный порядок проигрыванияДоработаем файл глав - добавим еще один раздел "EditionEntry" и так же заполним параметры его глав.ИллюстрацияСобираем фильм и запускаем. Меню в трее примет следующий вид: ИллюстрацияС помощью упорядоченных глав можно задавать любой порядок проигрывания видеопотока, точнее - его частей. В примере показана ситуация, когда в видеопотоке в хронологическом порядке записаны следующие части: заставка, сюжет первой серии, сюжет второй серии, титры. При выборе любого из потоков будет проигрываться как заставка так и титры, а вот сюжетная часть будет уже своя. Т.е. это дает экономию при записи сериала. Аналогично устроены и разные версии фильма, например, режиссерская версия и её часть - театральная. Либо режиссерская, расширенная и театральная, которые могут иметь уникальные части. Осталась еще одна мелочь - имена версий. Ведь неудобно когда они называются "Edition 1", "Edition 2" и т.д. Это можно исправить указав на закладке "Output" в поле "Global tags" созданный в ручную xml-файл следующего содержания: Пример файла тэгов (tags.xml)<?xml version="1.0" encoding="UTF-8"?> <!-- <!DOCTYPE Tags SYSTEM "matroskatags.dtd"> --> <Tags> <Tag> <Targets> <EditionUID>418778243</EditionUID> <TargetTypeValue>50</TargetTypeValue> </Targets> <Simple> <Name>TITLE</Name> <String>Serie #1</String> <TagLanguage>und</TagLanguage> <DefaultLanguage>1</DefaultLanguage> </Simple> </Tag> <Tag> <Targets> <EditionUID>475116935</EditionUID> <TargetTypeValue>50</TargetTypeValue> </Targets> <Simple> <Name>TITLE</Name> <String>Serie #2</String> <TagLanguage>und</TagLanguage> <DefaultLanguage>1</DefaultLanguage> </Simple> </Tag> </Tags> В тегах "<String></String>" указываем желаемое имя версии. ИллюстрацияИллюстрацияТак же может быть полезной возможность прицепить к версии включение определенной связки дорожек. Это не является частью спецификаций контейнера. Такую возможность обеспечивает Haali Media Splitter. Для реализации нужно добавить в файл тэгов раздел с: - именем "TRACKSETEX" - строкой вида "EditionUID VideotrackUID AudiotrackUID SubtitletrackUID Three-letter_language_code Optional_name", где "Three-letter_language_code" - трехбуквенное обозначение аудиопотока, а "Optional_name" - наименование связки (набора дорожек). Соответствующие нужным трекам UID можно посмотреть через mkvInfo. Вместо UID любого трека можно указать "." что будет оставлять соответствующий вид потока без изменений. Вместо UID трека субтитров можно указать "x" что будет означать отключение потока субтитров. При выборе какой либо версии активируется привязанный к её UID набор дорожек. В указанном ниже примере: - при выборе "Serie #1" включится русская дорожка без субтитров. (набор "for Serie #1") - при выборе "Serie #2" включится английская дорожка с указанным потоком субтитров. (набор "for Serie #2") Пример файла тэгов (tags.xml)<?xml version="1.0" encoding="UTF-8"?> <!-- <!DOCTYPE Tags SYSTEM "matroskatags.dtd"> --> <Tags> <Tag> <Targets> <EditionUID>418778243</EditionUID> <TargetTypeValue>50</TargetTypeValue> </Targets> <Simple> <Name>TITLE</Name> <String>Serie #1</String> <TagLanguage>und</TagLanguage> <DefaultLanguage>1</DefaultLanguage> </Simple> </Tag> <Tag> <Targets> <EditionUID>475116935</EditionUID> <TargetTypeValue>50</TargetTypeValue> </Targets> <Simple> <Name>TITLE</Name> <String>Serie #2</String> <TagLanguage>und</TagLanguage> <DefaultLanguage>1</DefaultLanguage> </Simple> </Tag> <Tag> <Simple> <Name>TRACKSETEX</Name> <String>418778243 . 1229391496 x rus for Serie #1</String> </Simple> <Simple> <Name>TRACKSETEX</Name> <String>475116935 . 4229142712 1107776681 eng for Serie #2</String> </Simple> </Tag> </Tags> ИллюстрацияСегменты и связывание разных файлов (линкованное видео)При помощи сегментов можно связать любые файлы mkv с одинаковыми параметрами (набор дорожек, кодеки).Самый простой способ применения - связать две части одного фильма. Как более интересный способ применения - воспроизведение сериала, который разбит на заставку, титры и собственно сам сюжет серии в виде отдельный файлов. Можно сделать так, чтобы в начале каждой серии запускалась заставка, а в конце - титры. Реализуется связывание следующим образом: при запуске файла, в котором прописаны связи, сканируется содержимое каталога с целью найти файл с указанным идентификатором. Не важно как назван файл, ориентир - идентификатор файла. Чтобы определить идентификатор файла нужно воспользоваться утилитой mkvinfo из комплекта MKVToolNix. Последние версии надо запускать с ключом "---gui" чтобы работать с привычным оконным интерфейсом. Самый простой способ - создать ярлык на "mkvInfo.exe" и в его свойствах, в строку запуска добавить этот ключ. ИллюстрацияОткрываем в ней файл который собираемся прицепить и получаем искомый идентификатор. Иллюстрация
ИллюстрацияДля этого в файле глав надо указать ссылку (идентификатор) на нужный файл в тэгах "<ChapterSegmentUID format="hex"></ChapterSegmentUID>" и указанный промежуток будет подцепляться из внешнего файла. Префикс "0x" перед каждой цифрой не обязателен. Так же не обязательно указывать ссылку на сам внешний файл, т.е. строка "<ChapterUID>3825996674</ChapterUID>" в примере ниже не обязательна. Время начала всегда определяется в пределах локальной шкалы видео из которого берется фрагмент. Пример файла глав (chapters.xml)<?xml version="1.0" encoding="UTF-8"?> <!-- <!DOCTYPE Tags SYSTEM "matroskatags.dtd"> --> <Chapters> <EditionEntry> <EditionFlagOrdered>1</EditionFlagOrdered> <EditionFlagHidden>0</EditionFlagHidden> <EditionFlagDefault>0</EditionFlagDefault> <EditionUID>418778243</EditionUID> <ChapterAtom> <ChapterDisplay> <ChapterString>Opening</ChapterString> <ChapterLanguage>und</ChapterLanguage> </ChapterDisplay> <ChapterUID>3825996674</ChapterUID> <ChapterSegmentUID format="hex">a8 e4 31 81 50 88 16 5f 86 a3 6c 99 0f 07 fa 0a</ChapterSegmentUID> <ChapterTimeStart>00:00:00.000000000</ChapterTimeStart> <ChapterFlagHidden>0</ChapterFlagHidden> <ChapterFlagEnabled>1</ChapterFlagEnabled> </ChapterAtom> <ChapterAtom> <ChapterDisplay> <ChapterString>Serie #1</ChapterString> <ChapterLanguage>und</ChapterLanguage> </ChapterDisplay> <ChapterUID>2294809483</ChapterUID> <ChapterTimeStart>00:00:05.000000000</ChapterTimeStart> <ChapterFlagHidden>0</ChapterFlagHidden> <ChapterFlagEnabled>1</ChapterFlagEnabled> </ChapterAtom> <ChapterAtom> <ChapterDisplay> <ChapterString>Ending</ChapterString> <ChapterLanguage>und</ChapterLanguage> </ChapterDisplay> <ChapterUID>3630189237</ChapterUID> <ChapterTimeStart>00:00:25.000000000</ChapterTimeStart> <ChapterFlagHidden>0</ChapterFlagHidden> <ChapterFlagEnabled>1</ChapterFlagEnabled> </ChapterAtom> </EditionEntry> </Chapters> AVI-Mux (AVI, MKV)Внимание! Есть информация, что AVI-Mux коверкает файлы. Пользуйтесь ею на свой страх и риск.AVI-Mux весьма функциональная прога, интерфейс и идеология работы схожи с MKVToolNix, но превосходит по возможностям. Их достаточно и не всегда понятно что же будет на выходе. Поэтому настоятельно рекомендую использовать голову при работе с ней. При склеивании AVI файлов, в отличие от VirtualDub, не ругается на всякие "глупости" вроде отличия fps (23.976 и 23.97599). Технические спецификацииПоддерживаемые входные потоки:
Ввод данныхВвод исходных данных осуществляется в верхнем окне при помощи вызова пункта "add" контекстного меню либо просто перекинув нужные файлы в это окно.Далее нужно сформировать выходные потоки. Для это достаточно просто дважды кликнуть мышкой по нужному файлу с списке и он будет добавлен в нижний список выхода в виде составляющих его потоков (видео+аудио). Если нужно объединить несколько фрагментов, то можно выделить два нужных фрагмента и более и нажать кнопку "generate data source from files". Эта же кнопка работает и для одного файла. При загрузке звука он автоматически добавляется в выходной поток. Кликнув в списке выхода кликнув по аудио в правой части программы активируется окно "delay (ms):" где можно выставить задержку в миллисекундах. В окне списка выходных потоков галочками отмечаем нужные. Удаление файлов из списка источников осуществляется так же при помощи пункта "remove" контекстного меню. Если поток используется в выходе, то при удалении программа предупредит об этом. Сохранение результата осуществляется кнопкой "start". ИллюстрацияВырезать фрагмент / удалить фрагментПосле того как сформировали выходной поток жмем кнопочку "settings" и находим в нижней левой части секцию "splitting".Доступные возможности:
Соответственно, чтобы вырезать нужный фрагмент, нам нужно указать 2 части и 3 точки разделения - две последние как раз и будут определять нужный фрагмент. Для удаления фрагмента придется расчленить исходное видео и склеить потом обратно только нужные фрагменты. ИллюстрацияСклеить два фрагментаЗагружаем оба фрагмента в список исходных данных. Выделяем их и жмем на кнопку "generate data source from files" и сохраняем результат.Добавить/удалить аудио дорожку/субтитрыЗагружаем исходные данные, т.е. наш фрагмент. Отмечаем нужные потоки галочками. При необходимости указываем сдвиг аудио в правой части программы, в окне "delay (ms)" (появляется если встать в списке выхода на аудио поток). Сохраняем результат.Извлечь поток (видео/аудио дорожку/субтитры)Загружаем исходные данные, т.е. наш фрагмент. Создаем выходной поток. Правой кнопкой мышки по нужной аудио дорожке вызываем пункт "extract binary" контекстного меню и сохраняем её в отдельный файл.Сохранение AVI без поддержки Open-DML для совместимости с бытовыми DVD проигрывателямиНажимаем кнопку "Settings", в появившемся окне нажимаем кнопку "AVI file structure" и убираем галки с пунктов "make REC lists" и "use Open-DML output".ИллюстрацияMP4Box (MP4/M4V)MP4Box является консольной программой, которая входит в состав проекта GPAC. Распространяется в исходниках. Для работы с ней нам понадобится графическая оболочка - Yamb. Скачать надо только версию с инсталлятором, т.к. она включает в себя скомпилированный MP4Box.В состав Yamb входит какая-то древняя библиотека MediaInfo.dll. В результате программа не видит субтитры, например, в распространенных на трекере релизах для Apple TV (*.M2V). Чтобы увидеть дорожки субтитров надо скачать и заменить в паке установки YAMB эту библиотеку :arrow: http://multi-up.com/1128347 Отредактировано Мikky72 Технические спецификацииПоддерживаемые входные потоки:
Создать/изменить MP4/3GPСлева выбираем пункт "Create". Справа - какой контейнер хотим получить на выходе.ИллюстрацияИллюстрацияИллюстрацияЕсли не возникло никаких ошибок, то получим MP4 файл. При возникновении ошибок более подробно можно посмотреть в протоколе, который вызывается из контекстного меню в этом же окне. ИллюстрацияВырезать фрагмент / удалить фрагментСлева выбираем пункт "Edit". Справа - "Click to split...".Иллюстрация
ИллюстрацияИллюстрацияСоответственно, чтобы удалить фрагмент нужно расчленить исходное видео и склеить потом обратно только нужные фрагменты. Склеить два фрагментаСлева выбираем пункт "Edit". Справа - "Click to join supported files.".ИллюстрацияЗдесь так же можно выбрать потоки и указать их свойства (кнопка "Properties" справа). Но делать это нужно с умом. В самом безобидном случае программа просто выдаст ошибку. ИллюстрацияИллюстрацияИзвлечь поток (видео/аудио дорожку/субтитры)Слева выбираем пункт "Edit". Справа - "Click to extract streams from...".Иллюстрация
ИллюстрацияtsMuxeR (TS, M2TS, Blu-Ray)Для работы с контейнером TS будем использовать удобный инструмент tsMuxeR. Последнюю версию можно скачать отсюда.Изначально программа разрабатывалась компанией SmartLabs, но в какой то момент они резко открестились от продукта. Последней разработанной ими версией была 1.10.6. Именно она описана в инструкции. Для разложения на потоки содержимого Blu-Ray диска настоятельно рекомендуется использовать программу eac3to, т.к. в ситуации, когда фильм состоит из кусков, она более грамотно компенсирует разницу в длине видео и аудио потоков фрагментов с целью избежать рассинхронизации видео и звука. Технические спецификацииПоддерживаемые выходные форматы:
Ввод/вывод данныхЗагрузка исходного фрагмента осуществляется при помощи кнопки "add". Остальные данные - в ходе работы. Не нужные входные данные и потоки данных удаляются кнопками "remove" в разделах "Input files" и "Tracks" соответственно.ИллюстрацияВ случае когда Blu-Ray-исходник разбит на несколько m2ts-файлов нужно загружать не конкретный m2ts-файл, а список воспроизведения в папке BDMV\PLAYLIST (mpls-файлы). Какой именно mpls-файл нужен подскажет программа BDInfo. В нижней части программы выставляем формат, который хотим получить.
Вырезать фрагмент / удалить фрагментПереходим на вкладку "Split & cut".ИллюстрацияРаздел "Splitting" - разделение на части:
Раздел "Cutting" - вырезание части: Чтобы вырезать фрагмент нужно активировать режим - поставить галочку на "Enable cutting". Далее указываем начало "Start" и конец "End" фрагмента в изменяемых величинах:
Процесс запускается кнопкой "Start ..." в самом низу окна программы. Не забываем, что процесс монтажа без пересжатия возможен только по ключевым кадрам. Поэтому точно по заданным критериям разрезать не получится, только по ближашим ключевым кадрам. Склеить два фрагментаЧтобы добавить фрагмент нужно использовать кнопку "join". При этом в окне "input files" увидим, что следующий фрагмент приплюсовался к предыдущему.ИллюстрацияПроцесс запускается кнопкой "Start ..." в самом низу окна программы. Склеить можно только фрагменты с одинаковыми потоками. В противном случае результат непредсказуем, т.к. программа на это не ругается, а начинает преобразовывать потоки добавленных фрагментов согласно параметрам потоков первого фрагмента. Добавить/удалить аудио дорожку/субтитрыДобавляем все ингридиенты при помощи кнопки "add". Оставляем галочки в списке потоков "Tracks" там где нужно. Кнопочками "Up / Down" выстраиваем потоки в нужном порядке. В разделе "General track options" можно задать сдвиг потока в миллисекундах и выставить язык звуковой дорожки в поле "Language". Для потоков "True HD AC3" и "DTS-HD" доступна возможность извлечения ядра в форматах "AC3" и "DTS" соответственно.ИллюстрацияРезультат сохраняем при момощи кнопки "Start ..." в самом низу окна программы. Извлечь поток (видео/аудио дорожку/субтитры)Оставляем галочки на нужных потоках в разделе "Tracks", выставляем режим "Output" в "Demux" и запускаем процесс кнопкой "Start demuxing".ИллюстрацияИзменить fps видеоНужно поставить курсор на видеопоток и на закладке "General track options" активировать возможность задать fps - поставить галочку на "Change fps". Далее остается только выбрать нужную частоту кадров из списка.ИллюстрацияРезультат сохраняем при момощи кнопки "Start ..." в самом низу окна программы. Опции выходного видеопотокаИзменение битрейтаНа вкладке "General" доступны опции изменения битрейта:
Опция "Restore cropped video to full size" - помогает восстановить видео с несоответствующим разрешением до полного кадра. При необходимости добавляются черные полосы. Разумеется видео при этом пересжимается. Для большего контроля над процессом рекомендуется пользоваться для этой цели другими инструментами. Опции формирования Blu-rayВкладка "Blu-ray" предназначена для управления параметрами формирования глав при создании образов диска формата Blu-ray.Раздел "Chapters":
- Программы для проверки контейнеров на ошибки структурыMKVmkvalidatorhttp://www.matroska.org/downloads/mkvalidator.htmlПрограмма консольная, без графического интерфейса. Запускать надо через командную строку. Командная строка вызывается через "Пуск->Выполнить", далее вводим "cmd" и нажимаем клавишу "enter". В открывшемся окне вводим команду: "c:\mkvalidator.exe" "c:\film.mkv" mkvalidator 0.2.2: the file appers to be valid mkvverifyhttp://www.alexander-noe.com/video/mkvverify/Программа консольная, без графического интерфейса. Запускать надо через командную строку. Командная строка вызывается через "Пуск->Выполнить", далее вводим "cmd" и нажимаем клавишу "enter". В открывшемся окне вводим команду: "c:\mkvverify.exe" "c:\film.mkv" -fullcheck В архиве присутствует файл scandir.bat, который при запуске будет проверять все файлы "*.mkv" в директории и запишет результат в файл error.txt. Таким образом можно проверять сразу несколько файлов. Разумеется mkvverify.exe должен находиться в той же директории. |
Главная » Кино, Видео и ТВ » Зарубежное кино |
Текущее время: 22-Ноя 08:49
Часовой пояс: UTC + 3
Вы не можете начинать темы
Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы можете скачивать файлы |