Megogo UA
Samsung UA
+ Ответить в теме
Показано с 1 по 1 из 1

Тема: FAQ : Работа с mkv контейнером на примере программы MKVToolNix

  1. #1
    HD-любитель 2faust is on a distinguished road
    Регистрация
    15.05.2008
    Сообщений
    48
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 постах

    Lightbulb FAQ : Работа с mkv контейнером на примере программы MKVToolNix

    Контейнер MKV

    Matroska - проект, который нацелен на создание продвинутого мультимедийного формата с набором необходимых инструментов для работы с этим форматом.

    Возможности формата, закладываемые в Matroska:
    • трансляция по Интернету (протоколы HTTP и RTP);
    • быстрая перемотка в файле;
    • устойчивость к ошибкам;
    • экранные меню (как на DVD дисках);
    • разбиение файла на главы (Chapters);
    • переключаемые на лету субтитры;
    • переключаемые звуковые дорожки;
    • модульная расширяемость;

    Контейнера не включает в себя форматов сжатия видео и кодеков (таких, как MP3 или JPEG). Это упаковка, которая может содержать большое число потоков аудио, видео и субтитров, позволяя пользователю хранить в одном файле целый фильм и проигрывать его мультимедиа-проигрывателем.

    Matroska является открытым проектом (open standard), т.е. личного использования она абсолютно бесплатна, а техническая спецификация формата битового потока доступна любому, даже компаниям, желающим встроить поддержку формата в свои продукты (для этого потребуется специальная лицензия). Исходный код всех библиотек, созданных группой разработчиков проекта Matroska распространяется на условиях LGPL (библиотека для проигрывания, написанная на C с использованием целочисленной арифметики, распространятся также на условиях лицензии BSD).

    Matroska является прямой открытой альтернативой контейнерам AVI, ASF video, MOV, RealMedia, MP4, MPG.

    Для работы с контейнером MKV используем утилиту mkvMerge входящую в состав mkvToolNix.

    Загрузка исходного фрагмента осуществляется при помощи кнопки "add":



    Вырезать фрагмент, сделать сэмпл

    Переходим на вкладку "Global". Ставим галочку "Enable splitting...". Теперь нам доступны несколько режимов:
    1. "...after this size" - удобна для нарезки на одинаковые фрагменты, например, на болванки CD-R.
    2. "...after this duration" - аналогично первому пункту, только мерой является не размер, а продолжительность фрагмента.
    3. "...after timecodes" - самая функциональная опция, служит для нарезки так как вам угодно. Достаточно перечислить через запятую время по которому будет осуществлено разрезание. Формат времени: "HH:MM:SS.nnnnnnnnn". Миллисекунды можно не указывать.
    Вводить времена нужно без пробелов, т.е так: "00:30:00,00:31:00,00:33:00". Получим три части по 30, 1 и 2 минуты соответственно.



    Опция "max. number of files" позволяет ограничить количество фрагментов, если вам нужны, допустим, только первые два.

    Склеить два фрагмента

    Добавляем кнопкой "add" первый фрагмент и кнопкой "append" все последующие, указываем куда сохранить результат и жмем кнопку "Start muxing":



    После чего появится окно процесса, в котором в случае возникновения ошибок будет выведена вся необходимая информация в окне ошибок.

    Добавить/удалить аудио дорожку/субтитры

    Добавляем все ингридиенты при помощи кнопки "add". Оставляем галочки там где нужно. Кнопочками "Up / Down" выстраиваем потоки в нужном порядке. При необходимости можно задать сдвиг, а так же сжать или растянуть аудио дорожку. Для задания сдвига укажем на вкладке "Format specific options" в поле "Delay (in ms)" нужное смещение. Положительное для задержки, отрицательное для опережения. Чтобы растянуть дорожку нужно на вкладке "Format specific options" в поле "Stretch by" указать коэффициент изменения длины.

    Не все дорожки могут быть сжаты, потому как не все форматы оперативно получают поддержку. Да и делать это лучше отдельно, чтобы четко осознавать свои деяния и контролировать сам процесс.




    На закладке "General track option" можно выставить следующие параметры:
    • "Default track flag" - если выставить в значение "yes", то поток будет проигрываться по-умолчанию.
    • "Track name" - наименование потока, например, "Комментарии режиссера", "Ду***ж", "Закадровый"...
    • "Language" - язык потока.



    Извлечь поток (видео/аудио дорожку/субтитры)

    Для этого понадобиться прога mkvExtract. Содержимое архива нужно распаковать в папку, где установлен mkvToolNix.

    Выбираем подопытного. Указываем куда будем расчленять. Отмечаем галочками нужные части. Для видео потребуется указать расширение файла (контейнер). Жмем кнопочку "Extract":



    Сегменты и связывание разных файлов.

    При помощи сегментов можно связать любые файлы mkv с одинаковыми параметрами (набор дорожек, кодеки).

    Самый простой способ применения - связать две части одного фильма. Как более интересный способ применения - воспроизведение сериала, который разбит на заставку, титры и собственно сам сюжет серии в виде отдельный файлов. Можно сделать так, чтобы в начале каждой серии запускалась заставка, а в конце - титры.

    Реализуется связывание следующим образом: при запуске файла, в котором прописаны связи, сканируется содержимое каталога с целью найти файл с указанным идентификатором. Не важно как назван файл, ориентир - идентификатор файла.

    Чтобы определить идентификатор файла нужно воспользоваться утилитой mkvinfo из комплекта mkvToolNix.

    Открываем в ней файл который собираемся прицепить и получаем искомый идентификатор.



    Далее открываем в mkvMerge файл к которому собираемся прицепить и на закладке "Global" прописываем идентификатор прицепляемого файла.
    • "Previous Segment UID" - перед файлом.
    • "Next Segment UID" - после файла.



    Так же есть возможность ссылаться не на весь файл целиком, а на его произвольную часть.

    Для этого в файле глав надо указать ссылку (идентификатор) на нужный файл в тэгах "<ChapterSegmentUID format="hex"></ChapterSegmentUID>" и указанный промежуток будет подцепляться из внешнего файла. Префикс "0x" перед каждой цифрой не обязателен.

    Пример файла глав (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>
    Последний раз редактировалось 2faust; 12.07.2008 в 20:47.

+ Ответить в теме

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
Megogo UA