1. Szablon linii komend#
2. Opis#
Ten program pobiera dane wejściowe z kilku plików multimedialnych i łączy ich strumienie (wszystkie lub tylko wybrane) w plik Matroska(tm); zobacz stronę internetową Matroska.
Important:
Kolejność opcji wiersza poleceń ma znaczenie. Jeśli dopiero zaczynasz korzystać z programu, przeczytaj sekcję „Kolejność opcji”.
2.1. Opcje globalne#
| Option | Description |
|---|---|
| -v, --verbose# |
Zwiększ szczegółowość. |
| -q, --quiet# |
Wycisz komunikaty wyjścia. |
| -o, --output nazwa-pliku# |
Zapisuje dane do pliku file-name. Jeśli używane jest dzielenie pliku, parametr ten jest traktowany nieco inaczej. Szczegółowe informacje znajdują się w opisie opcji --split. |
| -w, --webm# |
Tworzy plik zgodny z formatem WebM. Tryb ten jest również włączany, jeśli rozszerzenie nazwy pliku wyjściowego to "webm". Nakłada on kilka ograniczeń. Dozwolone są tylko kodeki wideo VP8 i VP9 oraz ścieżki audio Opus i Vorbis. Element nagłówka DocType zostaje zmieniony na "webm". W przypadku rozdziałów i tagów dozwolony jest tylko podzbiór elementów. mkvmerge(1) automatycznie usuwa wszystkie elementy niedozwolone przez specyfikację. |
| --title tytuł# |
Ustawia ogólny tytuł pliku wyjściowego, e.g. nazwę filmu. |
| --default-language kod-języka# |
Ustawia domyślny kod języka używany dla ścieżek, dla których nie ustawiono języka za pomocą opcji --language i dla których kontener źródłowy nie podaje języka. Domyślnym kodem języka jest „und”, oznaczający „nieokreślony”. |
2.2. Obsługa informacji o segmentach (opcje globalne)#
| Option | Description |
|---|---|
| --segmentinfo nazwa-pliku.xml# |
Odczytuje informacje o segmencie z pliku XML. Plik ten może zawierać elementy UID rodziny segmentu, UID segmentu oraz elementy poprzedniego i następnego segmentu. Przykładowy plik i DTD są dołączone do dystrybucji MKVToolNix. Szczegółowe informacje znajdują się w poniższej sekcji dotyczącej plików XML z informacjami o segmencie. |
| --segment-uid SID1,SID2,...# |
Ustawia identyfikatory UID segmentów, które mają być używane. Jest to rozdzielana przecinkami lista 128-bitowych identyfikatorów UID segmentów w standardowej postaci UID: liczby szesnastkowe z prefiksem "0x" lub bez niego, ze spacjami lub bez, zawierające dokładnie 32 cyfry. Jeśli SID zaczyna się od znaku =, jego pozostała część jest interpretowana jako nazwa pliku Matroska, z którego odczytywany jest identyfikator UID segmentu i używany jako wartość docelowa. Każdy utworzony plik zawiera jeden segment, a każdy segment ma jeden identyfikator UID. Jeśli podano więcej identyfikatorów UID niż utworzono segmentów, nadmiarowe identyfikatory UID są ignorowane. Jeśli podano mniej identyfikatorów UID niż utworzono segmentów, dla brakujących segmentów zostaną utworzone losowe identyfikatory UID. |
2.3. Obsługa rozdziałów i tagów (opcje globalne)#
| Option | Description |
|---|---|
| --chapter-language kod-języka# |
Ustawia kod języka ISO 639-2 zapisywany dla każdego wpisu rozdziału. Domyślnie jest to „eng”. Szczegółowe informacje znajdują się w poniższej sekcji dotyczącej rozdziałów. Tej opcji można używać zarówno dla prostych plików rozdziałów, jak i dla plików źródłowych zawierających rozdziały, ale bez informacji o języku rozdziałów, np. plików MP4 i OGM. Język ustawiony za pomocą tej opcji jest również używany podczas generowania rozdziałów za pomocą opcji --generate-chapters. |
| --chapter-charset zestaw-znaków# |
Ustawia zestaw znaków używany podczas konwersji prostych plików rozdziałów do UTF-8. Wyjaśnienie sposobu konwersji między zestawami znaków przez mkvmerge(1) znajduje się w sekcji dotyczącej plików tekstowych i zestawów znaków. Ta opcja ma również zastosowanie do rozdziałów kopiowanych z niektórych typów kontenerów, np. plików Ogg/OGM i MP4. Szczegółowe informacje znajdują się w poniższej sekcji dotyczącej rozdziałów. |
| --chapter-sync d[,o[/p]]# |
Dostosowuje kody czasowe ścieżki z id TID o d ms. ID ścieżek są takie same jak wyświetlone w opcji --identify (patrz rozdział ID ścieżek). o/p: przesuwa czas o wielkość o/p, aby naprawić liniowe odchyły. p domyślnie jest 1, jeśli nie jest ustawiony inaczej. Oba parametry o i p mogą być liczbami zmiennoprzecinkowymi. Domyślnie: brak ręcznej korekcji synchronizacji (co jest tożsame z d = 0 i o/p = 1.0). Tej opcji można użyć wielokrotnie dla jednego pliku wejściowego, za każdym razem wybierając inne identyfikatory ścieżek. |
| --generate-chapters mode# |
mkvmerge(1) może automatycznie tworzyć rozdziały. Obecnie obsługiwane są dwa tryby:
Nazwy nowych rozdziałów są określane przez opcję --generate-chapters-name-template. Język ustawia się za pomocą --chapter-language, które musi wystąpić przed opcją --generate-chapters. |
| --wygeneruj-szablon-nazw-rozdziałów format# |
Ustawia szablon nazw rozdziałów generowanych przez opcję --generate-chapters. Jeśli opcja nie zostanie użyta, zostanie zastosowany domyślny szablon „Chapter <NUM:2>”. W szablonie można używać kilku zmiennych, które podczas generowania rozdziału są zastępowane rzeczywistymi wartościami. Ciąg „<NUM>” zostanie zastąpiony numerem rozdziału. Ciąg „<START>” zostanie zastąpiony znacznikiem czasu rozpoczęcia rozdziału. Ciągi „<FILE_NAME>” i „<FILE_NAME_WITH_EXT>” są wypełniane tylko podczas generowania rozdziałów dla dołączanych plików. Zostaną zastąpione nazwą dołączanego pliku odpowiednio bez jego rozszerzenia lub wraz z nim. Należy pamiętać, że wstawiana jest tylko nazwa pliku i rozszerzenie, bez katalogu ani elementów określających dysk. Za pomocą „<NUM:places>” można określić minimalną liczbę cyfr numeru rozdziału, np. „<NUM:3>”. Jeśli liczba cyfr jest mniejsza od określonej wartości, wynikowy numer zostanie uzupełniony zerami z lewej strony. Format używany dla znacznika czasu rozpoczęcia można kontrolować za pomocą <START:format>. Jeśli nie zostanie podany, domyślnym formatem jest „%H:%M:%S”. Prawidłowe kody formatu to:
Ciąg „<TITLE>” jest wypełniany tylko podczas generowania rozdziałów dla dołączanych plików. Zostanie zastąpiony tytułem dołączanego pliku, jeśli taki tytuł istnieje. |
| --cue-chapter-name-format format# |
mkvmerge(1) obsługuje odczytywanie arkuszy CUE dla plików audio jako źródła rozdziałów. Arkusze CUE zwykle zawierają wpisy PERFORMER i TITLE dla każdego wpisu indeksu. mkvmerge(1) używa tych dwóch ciągów do utworzenia nazwy rozdziału. Za pomocą tej opcji można ustawić format tej nazwy. Jeśli ta opcja nie zostanie podana, mkvmerge(1) domyślnie używa formatu „%p - %t” (wykonawca, następnie spacja, myślnik, kolejna spacja i tytuł). Jeśli podano format, wszystko poza następującymi znakami specjalnymi jest kopiowane bez zmian, a znaki specjalne są zastępowane w następujący sposób:
|
| --chapters nazwa-pliku# |
Odczytuje informacje o rozdziałach z pliku file-name. Szczegółowe informacje znajdują się w poniższej sekcji dotyczącej rozdziałów. |
| --global-tags nazwa-pliku# |
Odczytuje globalne tagi z pliku file-name. Szczegółowe informacje znajdują się w poniższej sekcji dotyczącej tagów. |
2.4. Ogólna kontrola wyników (zaawansowane opcje globalne)#
| Option | Description |
|---|---|
| --track-order FID1:TID1,FID2:TID2,...# |
Ta opcja zmienia kolejność tworzenia ścieżek dla pliku wejściowego. Argument jest rozdzielaną przecinkami listą par identyfikatorów. Każda para zawiera najpierw identyfikator pliku (FID1), który jest po prostu numerem pliku w wierszu poleceń, zaczynając od 0. Drugi element to identyfikator ścieżki (TID1) z tego pliku. Jeśli pominięto niektóre identyfikatory ścieżek, ścieżki te zostaną utworzone po utworzeniu ścieżek podanych za pomocą tej opcji. Jeśli ta opcja nie zostanie podana, ścieżki będą najpierw sortowane według typu, a następnie według kolejności ich pliku źródłowego. Najpierw umieszczane są ścieżki wideo, następnie audio i napisy. Inne, rzadziej używane typy ścieżek są umieszczane na końcu. |
| --cluster-length parametr# |
Ogranicza liczbę bloków danych lub czas trwania danych w każdym klastrze. Parametr spec może być liczbą n bez jednostki albo liczbą d zakończoną „ms”. Jeśli nie użyto jednostki, mkvmerge(1) umieści w każdym klastrze najwyżej n bloków danych. Maksymalna liczba bloków wynosi 65535. Jeśli do liczby d dodano przyrostek „ms”, mkvmerge(1) umieści w każdym klastrze najwyżej d milisekund danych. Minimalna wartość d wynosi „100ms”, a maksymalna „32000ms”. Domyślnie mkvmerge(1) umieszcza w jednym klastrze najwyżej 65535 bloków danych i 5000 ms danych. Programy próbujące znaleźć określoną klatkę mogą przejść bezpośrednio tylko do klastra, a następnie muszą odczytać cały klaster. Dlatego tworzenie większych klastrów może prowadzić do niedokładnego lub wolnego wyszukiwania. |
| --clusters-in-meta-seek# |
Nakazuje mkvmerge(1) utworzenie na końcu pliku elementu meta seek zawierającego wszystkie klastry. Zobacz również sekcję dotyczącą układu pliku Matroska. |
| --timestamp-scale współczynnik# |
Wymusza współczynnik skali znaczników czasu o wartości factor. Prawidłowe wartości mieszczą się w zakresie od 1000 do 10000000 albo mają specjalną wartość -1. Zwykle mkvmerge(1) używa wartości 1000000, co oznacza, że znaczniki czasu i czasy trwania mają dokładność 1 ms. W przypadku plików, które nie zawierają ścieżki wideo, ale zawierają co najmniej jedną ścieżkę audio, mkvmerge(1) automatycznie dobiera współczynnik skali znaczników czasu tak, aby wszystkie znaczniki czasu i czasy trwania miały dokładność jednej próbki audio. Powoduje to większy narzut, ale umożliwia precyzyjne wyszukiwanie i wyodrębnianie. Jeśli użyta zostanie specjalna wartość -1, mkvmerge(1) zastosuje dokładność próbek nawet wtedy, gdy obecna jest ścieżka wideo. |
| --enable-durations# |
Zapisuje czasy trwania dla wszystkich bloków. Zwiększy to rozmiar pliku i obecnie nie daje odtwarzaczom żadnych dodatkowych korzyści. |
| --no-cues# |
Nakazuje mkvmerge(1) niewykonywanie tworzenia i zapisywania danych cue, które można porównać z indeksem w pliku AVI. Pliki Matroska(tm) mogą być odtwarzane bez danych cue, ale wyszukiwanie będzie prawdopodobnie mniej dokładne i wolniejsze. Używaj tej opcji tylko wtedy, gdy naprawdę potrzebujesz zaoszczędzić miejsce lub do celów testowych. Zobacz również opcję --cues, którą można określić dla każdego pliku wejściowego. |
| --no-date# |
Domyślnie mkvmerge(1) ustawia pole informacji o segmencie „date” na datę i godzinę rozpoczęcia multipleksowania. Za pomocą tej opcji pole to nie jest w ogóle zapisywane. |
| --data znacznik czasu# |
Ustawia pole DateUTC zapisywane w informacjach o segmencie. Znacznik czasu musi mieć format podobny do ISO 8601: YYYY-mm-ddTHH:MM:SSZ dla czasu UTC lub zawierać przesunięcie ±HH:MM (zamiast „T” można również użyć spacji), np. 2017-03-28T17:28:00Z lub 2017-03-28 17:28:00+02:00. Jeśli użyto razem z opcją --no-date, opcja --no-date ma pierwszeństwo i żadna data nie zostanie zapisana. |
| --disable-lacing# |
Wyłącza przeplatanie dla wszystkich ścieżek. Zwiększy to rozmiar pliku, szczególnie jeśli zawiera on wiele ścieżek audio. Ta opcja nie jest przeznaczona do codziennego użytku. |
| --disable-track-statistics-tags# |
Zwykle mkvmerge(1) zapisuje określone tagi zawierające statystyki dla każdej ścieżki. Jeśli takie tagi już istnieją, zostaną nadpisane. Są to BPS, DURATION, NUMBER_OF_BYTES i NUMBER_OF_FRAMES. Włączenie tej opcji uniemożliwia mkvmerge(1) zapisywanie tych tagów oraz modyfikowanie istniejących tagów o tych samych nazwach. |
| --disable-language-ietf# |
Zwykle mkvmerge(1) zapisuje nowe elementy językowe IETF BCP 47 oprócz starszych elementów językowych w nagłówkach ścieżek, rozdziałach i tagach. Jeśli ta opcja jest używana, zapisywane są tylko starsze elementy. |
| --normalize-language-ietf mode# |
Włącza normalizowanie wszystkich tagów językowych IETF BCP 47 do ich postaci kanonicznej w trybie „canonical”, do postaci z rozszerzonymi podtagami językowymi w trybie „extlang” albo wyłącza je za pomocą trybu „off”. Domyślnie stosowana jest normalizacja do postaci kanonicznej. W postaci kanonicznej wszystkie podtagi, dla których istnieją preferowane wartości, są zastępowane tymi preferowanymi wartościami. Na przykład „zh-yue-jyutping” jest konwertowane na „yue-jyutping”, a „fr-FX” na „fr-FR”. W przypadku postaci z rozszerzonymi podtagami językowymi najpierw tworzona jest postać kanoniczna. Następnie wszystkie języki główne, dla których istnieje rozszerzony podtag językowy, są zastępowane tym podtagiem i jego prefiksem. Na przykład „yue-jyutping” jest z powrotem konwertowane na „zh-yue-jyutping”, ale nie ma to wpływu na „fr-FR”, ponieważ „fr” nie jest rozszerzonym podtagiem językowym. |
| --stop-after-video-ends# |
Kończy przetwarzanie po zakończeniu głównej ścieżki wideo, odrzucając pozostałe pakiety innych ścieżek. |
2.5. Dzielenie plików, powiązanie, scalanie i łączenie (więcej opcji globalnych)#
| Option | Description |
|---|---|
| --split parametr# |
Dzieli plik wyjściowy po osiągnięciu określonego rozmiaru lub czasu. Należy pamiętać, że ścieżki można dzielić tylko bezpośrednio przed klatką kluczową. Dlatego punkt podziału może nieznacznie różnić się od określonego przez użytkownika. Na obecną chwilę mkvmerge(1) obsługuje cztery różne tryby:
W tym trybie dzielenia nazwa pliku wyjściowego jest traktowana inaczej niż podczas normalnego działania. Może zawierać wyrażenie podobne do printf, „%d”, wraz z opcjonalną szerokością pola, np. „%02d”. Jeśli takie wyrażenie występuje, bieżący numer pliku zostanie odpowiednio sformatowany i wstawiony w tym miejscu nazwy pliku. Jeśli takiego wzorca nie ma, bezpośrednio przed rozszerzeniem pliku przyjmowany jest wzorzec „-%03d”: „-o output.mkv” spowoduje utworzenie „output-001.mkv” itd. Jeśli nie ma rozszerzenia, „-%03d” zostanie dodane na końcu nazwy. Innym możliwym wzorcem jest „%c”, który zostanie zastąpiony nazwą pierwszego rozdziału w pliku. Należy pamiętać, że gdy występuje „%c”, wzorzec „-%03d” nie zostanie dodany automatycznie. |
| --link# |
Łączy pliki ze sobą podczas dzielenia pliku wyjściowego. Szczegółowe informacje znajdują się w poniższej sekcji dotyczącej łączenia plików. |
| --link-to-previous UID-segmentu# |
Łączy pierwszy plik wyjściowy z segmentem o identyfikatorze UID podanym w parametrze segment-UID. Szczegółowe informacje znajdują się w poniższej sekcji dotyczącej łączenia plików. Jeśli SID zaczyna się od znaku =, jego pozostała część jest interpretowana jako nazwa pliku Matroska, z którego odczytywany jest identyfikator UID segmentu i używany jako wartość docelowa. |
| --link-to-next UID-segmentu# |
Łączy ostatni plik wyjściowy z segmentem o identyfikatorze UID podanym w parametrze segment-UID. Szczegółowe informacje znajdują się w poniższej sekcji dotyczącej łączenia plików. Jeśli SID zaczyna się od znaku =, jego pozostała część jest interpretowana jako nazwa pliku Matroska, z którego odczytywany jest identyfikator UID segmentu i używany jako wartość docelowa. |
| --append-mode tryb# |
Określa, jak kody czasowe są przeliczane podczas scalania plików. Parametr tryb może mieć dwie wartości: 'file', który jest domyślny oraz 'track'. Gdy mkvmerge dołącza ścieżkę (od tej pory nazywaną „track2_1”) z drugiego pliku (nazywanego „file2”) do ścieżki (nazywanej „track1_1”) z pierwszego pliku (nazywanego „file1”), musi przesunąć wszystkie znaczniki czasu dla „track2_1” o określoną wartość. W trybie „file” jest to najwyższy znacznik czasu napotkany w „file1”, nawet jeśli pochodzi z innej ścieżki niż „track1_1”. W trybie „track” przesunięcie jest równe najwyższemu znacznikowi czasu ścieżki „track1_1”. Niestety mkvmerge nie potrafi niezawodnie określić, którego trybu należy użyć. Dlatego domyślnie wybierany jest tryb „file”. Tryb „file” zwykle działa lepiej w przypadku plików utworzonych niezależnie od siebie, np. podczas dołączania plików AVI lub MP4. Tryb „track” może działać lepiej w przypadku źródeł, które są w zasadzie częściami jednego dużego pliku, np. plików VOB i EVO. Ścieżki napisów są zawsze traktowane tak, jakby aktywny był tryb „file”, nawet jeśli faktycznie używany jest tryb „track”. |
| --append-to SFID1:STID1:DFID1:DTID1[,...]# |
Ta opcja określa, do której ścieżki zostanie dołączona inna ścieżka. Każda specyfikacja zawiera cztery identyfikatory: identyfikator pliku, identyfikator ścieżki, drugi identyfikator pliku i drugi identyfikator ścieżki. Pierwsza para, „identyfikator pliku źródłowego” i „identyfikator ścieżki źródłowej”, wskazuje ścieżkę, która ma zostać dołączona. Druga para, „identyfikator pliku docelowego” i „identyfikator ścieżki docelowej”, wskazuje ścieżkę, do której zostanie dołączona pierwsza ścieżka. Jeśli ta opcja nie została podana, używane jest standardowe mapowanie. W ramach tego mapowania każda ścieżka z bieżącego pliku jest dołączana do ścieżki z poprzedniego pliku o tym samym identyfikatorze ścieżki. Ułatwia to dołączanie, gdy film został podzielony na dwie części, a oba pliki mają taką samą liczbę ścieżek i identyfikatory ścieżek, za pomocą polecenia mkvmerge -o output.mkv part1.mkv +part2.mkv. |
| +# |
Pojedynczy znak „+” powoduje dołączenie następnego pliku zamiast dodania go jako osobnego źródła. Znak „+” można również umieścić przed nazwą następnego pliku. Dlatego poniższe dwa polecenia są równoważne: $ mkvmerge -o cały.mkv plik1.mkv + plik2.mkv $ mkvmerge -o cały.mkv plik1.mkv +plik2.mkv |
| ( plik1 plik2 )# |
Jeśli w parze nawiasów kwadratowych znajduje się wiele nazw plików, drugi i wszystkie kolejne pliki zostaną dołączone do pierwszego pliku wymienionego w nawiasach. Jest to alternatywna składnia dla użycia znaku „+” między nazwami plików. Dlatego poniższe dwa polecenia są równoważne: $ mkvmerge -o cały.mkv plik1.mkv + plik2.mkv $ mkvmerge -o cały.mkv plik1.mkv +plik2.mkv |
| =# |
W przypadku niektórych typów plików (strumienie programowe MPEG = VOB) mkvmerge(1) zwykle szuka w tym samym katalogu co plik wejściowy plików o tej samej nazwie bazowej, różniących się tylko kolejnym numerem (np. „VTS_01_1.VOB”, „VTS_01_2.VOB”, „VTS_01_3.VOB” itd.), i traktuje wszystkie te pliki tak, jakby były połączone w jeden duży plik. Ta opcja, czyli pojedynczy znak „=”, powoduje, że mkvmerge nie szuka tych dodatkowych plików. Znak „=” można również umieścić przed nazwą następnego pliku. Dlatego poniższe dwa polecenia są równoważne: $ mkvmerge -o cały.mkv = plik1.mkv $ mkvmerge -o cały.mkv =plik1.mkv |
| ( plik1 plik2 )# |
Jeśli w parze nawiasów okrągłych znajduje się wiele nazw plików, pliki te będą traktowane tak, jakby zostały połączone w jeden duży plik, którego zawartość stanowi zawartość każdego z plików ułożona kolejno. Można tego używać np. dla plików VOB pochodzących z płyty DVD lub strumieni transportowych MPEG. Nie można tego używać, jeśli każdy plik zawiera własny zestaw nagłówków, co zwykle ma miejsce w przypadku samodzielnych plików, takich jak AVI lub MP4. Umieszczenie nazwy pliku w nawiasach okrągłych również uniemożliwia mkvmerge(1) wyszukiwanie dodatkowych plików o tej samej nazwie bazowej, jak opisano w opcji =. Dlatego te dwa wiersze poleceń są równoważne: $ mkvmerge -o wyjściowy.mkv = plik.mkv
$ mkvmerge -o wyjściowy.mkv '(' plik.mkv ')'
Należy zwrócić uwagę na kilka rzeczy:
|
2.6. Obsługa załączników (więcej globalnych opcji)#
| Option | Description |
|---|---|
| --attachment-description opis# |
Zwykły tekstowy opis poniższego załącznika. Dotyczy następnej opcji --attach-file lub --attach-file-once. |
| --attachment-mime-type typ MIME# |
Typ MIME następującego załącznika. Używany razem z opcją --attach-file lub --attach-file-once. Lista oficjalnie rozpoznawanych typów MIME może się znajdować na stronie domowej IANA. Typ MIME jest wymagany dla określenia załącznika. Jeśli dla załącznika nie podano typu MIME, jego typ zostanie wykryty automatycznie. |
| --attachment-name nazwa# |
Ustawia nazwę, która zostanie zapisana w pliku wyjściowym dla tego załącznika. Jeśli ta opcja nie zostanie podana, nazwa zostanie wyprowadzona z nazwy pliku załącznika podanej za pomocą opcji --attach-file lub --attach-file-once. |
| --attach-file nazwa-pliku, --attach-file-once nazwa-pliku # |
Tworzy załącznik plikowy wewnątrz pliku Matroska(tm). Różnica między obiema postaciami polega na tym, że podczas dzielenia pliki dołączone za pomocą opcji --attach-file są dołączane do wszystkich plików wyjściowych, natomiast pliki dołączone za pomocą --attach-file-once są dołączane tylko do pierwszego utworzonego pliku. Jeśli dzielenie nie jest używane, obie opcje działają tak samo. mkvextract(1) można użyć do wyodrębnienia załączonych plików z pliku Matroska(tm). |
| --enable-legacy-font-mime-types# |
Włącza używanie starszych typów MIME dla określonych typów załączników czcionek. Na przykład dla czcionek TrueType zostanie użyty „application/x-truetype-font” zamiast „fonts/ttf”. Dotyczy to zarówno nowych załączników, jeśli ich typ MIME jest wykrywany automatycznie, jak i istniejących załączników, których zapisane typy MIME zostaną przemapowane na starsze typy. Dotyczy to typów MIME „font/sfnt”, „font/ttf” i „font/collection”, które są mapowane na „application/x-truetype-fonts”, oraz „font/otf”, który jest mapowany na „application/vnd.ms-opentype”. |
2.7. Opcje mogące być użyte dla każdego pliku wejściowego#
| Option | Description |
|---|---|
| -a, --audio-tracks [!]n,m,...# |
Kopiuje ścieżki audio n, m itd. Liczby są identyfikatorami ścieżek, które można uzyskać za pomocą opcji --identify. Nie są to po prostu numery ścieżek (zobacz sekcję identyfikatory ścieżek). Domyślnie kopiowane są wszystkie ścieżki audio. Zamiast identyfikatorów ścieżek można również podać kody języków ISO 639-2. Zadziała to tylko w przypadku plików źródłowych, które udostępniają tagi języka dla swoich ścieżek. Domyślnie: kopiuj wszystkie ścieżki tego rodzaju. Jeśli identyfikatory są poprzedzone znakiem !, znaczenie zostaje odwrócone: kopiowane są wszystkie ścieżki tego typu z wyjątkiem tych wymienionych po znaku !. |
| -d, --video-tracks [!]n,m,...# |
Kopiuje ścieżki wideo n, m itd. Liczby są identyfikatorami ścieżek, które można uzyskać za pomocą opcji --identify. Nie są to po prostu numery ścieżek (zobacz sekcję identyfikatory ścieżek). Domyślnie kopiowane są wszystkie ścieżki wideo. Zamiast identyfikatorów ścieżek można również podać kody języków ISO 639-2. Zadziała to tylko w przypadku plików źródłowych, które udostępniają tagi języka dla swoich ścieżek. Jeśli identyfikatory są poprzedzone znakiem !, znaczenie zostaje odwrócone: kopiowane są wszystkie ścieżki tego typu z wyjątkiem tych wymienionych po znaku !. |
| -s, --subtitle-tracks [!]n,m,...# |
Kopiuje ścieżki napisów n, m itd. Liczby są identyfikatorami ścieżek, które można uzyskać za pomocą opcji --identify. Nie są to po prostu numery ścieżek (zobacz sekcję identyfikatory ścieżek). Domyślnie kopiowane są wszystkie ścieżki napisów. Zamiast identyfikatorów ścieżek można również podać kody języków ISO 639-2. Zadziała to tylko w przypadku plików źródłowych, które udostępniają tagi języka dla swoich ścieżek. Jeśli identyfikatory są poprzedzone znakiem !, znaczenie zostaje odwrócone: kopiowane są wszystkie ścieżki tego typu z wyjątkiem tych wymienionych po znaku !. |
| -b, --button-tracks [!]n,m,...# |
Kopiuje ścieżki przycisków n, m itd. Liczby są identyfikatorami ścieżek, które można uzyskać za pomocą opcji --identify. Nie są to po prostu numery ścieżek (zobacz sekcję identyfikatory ścieżek). Domyślnie kopiowane są wszystkie ścieżki przycisków. Zamiast identyfikatorów ścieżek można również podać kody języków ISO 639-2. Zadziała to tylko w przypadku plików źródłowych, które udostępniają tagi języka dla swoich ścieżek. Jeśli identyfikatory są poprzedzone znakiem !, znaczenie zostaje odwrócone: kopiowane są wszystkie ścieżki tego typu z wyjątkiem tych wymienionych po znaku !. |
| --track-tags [!]n,m,...# |
Kopiuje tagi dla ścieżek n, m itd. Liczby są identyfikatorami ścieżek, które można uzyskać za pomocą opcji --identify (zobacz sekcję identyfikatory ścieżek). Nie są to po prostu numery ścieżek. Domyślnie kopiowane są tagi dla wszystkich ścieżek. Jeśli identyfikatory są poprzedzone znakiem !, znaczenie zostaje odwrócone: kopiowane jest wszystko z wyjątkiem identyfikatorów wymienionych po znaku !. |
| -m, --attachments [!]n[:all|first],m[:all|first],...# |
Kopiuje załączniki o identyfikatorach n, m itd. do wszystkich plików wyjściowych albo tylko do pierwszego. Po każdym identyfikatorze można podać „:all” (domyślnie, jeśli nie podano żadnego wariantu) lub „:first”. Jeśli aktywne jest dzielenie, załączniki, których identyfikatory określono jako „:all”, są kopiowane do wszystkich wynikowych plików, natomiast pozostałe tylko do pierwszego pliku wyjściowego. Jeśli dzielenie nie jest aktywne, oba warianty mają taki sam efekt. Domyślnie wszystkie załączniki są kopiowane do wszystkich plików wyjściowych. Jeśli identyfikatory są poprzedzone znakiem !, znaczenie zostaje odwrócone: kopiowane jest wszystko z wyjątkiem identyfikatorów wymienionych po znaku !. |
| -A, --no-audio# |
Żadna ścieżka dźwiękowa nie jest kopiowana z tego pliku. |
| -D, --no-video# |
Żadne ścieżki obrazu nie są kopiowane z tego pliku. |
| -S, --no-subtitles# |
Żadna ścieżka napisów nie jest kopiowana z tego pliku. |
| -B, --no-buttons# |
Żadna ścieżka przycisków nie jest kopiowana z tego pliku. |
| -T, --no-track-tags# |
Żadne pliki tagów nie są kopiowane z tego pliku. |
| --no-chapters# |
Żadne rozdziały nie są kopiowane z tego pliku. |
| -M, --no-attachments# |
Żadne załączniki nie są kopiowane z tego pliku. |
| --no-global-tags# |
Żadne globalne tagi nie są kopiowane z tego pliku. |
| --regenerate-track-uids# |
Gdy ta opcja jest używana dla źródłowego pliku Matroska, mkvmerge(1) utworzy nowe losowe unikalne identyfikatory ścieżek zamiast zachowywać istniejące identyfikatory z pliku. Istniejące identyfikatory UID ścieżek w rozdziałach i tagach odczytanych z tego samego pliku zostaną przemapowane na nowo wygenerowane wartości. To zachowanie jest automatycznie włączane dla plików Matroska utworzonych przez program MakeMKV. Powodem jest to, że MakeMKV używa kolejnych numerów (1, 2, 3…) jako identyfikatorów UID zamiast generować losowe wartości. |
| -y, --sync TID:d[,o[/p]]# |
Dostosowuje kody czasowe ścieżki z id TID o d ms. ID ścieżek są takie same jak wyświetlone w opcji --identify (patrz rozdział ID ścieżek). o/p: przesuwa czas o wielkość o/p, aby naprawić liniowe odchyły. p domyślnie jest 1, jeśli nie jest ustawiony inaczej. Oba parametry o i p mogą być liczbami zmiennoprzecinkowymi. Domyślnie: brak ręcznej korekcji synchronizacji (co jest tożsame z d = 0 i o/p = 1.0). Tej opcji można użyć wielokrotnie dla jednego pliku wejściowego, za każdym razem wybierając inne identyfikatory ścieżek. |
| --cues TID:none|iframes|all# |
Określa, dla których bloków mają być tworzone wpisy cue (indeksu) dla danej ścieżki (zobacz sekcję identyfikatory ścieżek). „none” uniemożliwia tworzenie wpisów cue. W przypadku „iframes” do arkusza cue trafiają tylko bloki bez odwołań wstecznych ani do przodu (= klatki I w ścieżkach wideo). „all” powoduje, że mkvmerge(1) tworzy wpisy cue dla wszystkich bloków, co znacznie zwiększy rozmiar pliku. Domyślną wartością jest „iframes” dla ścieżek wideo i napisów oraz „none” dla ścieżek audio. Zobacz również opcję --no-cues, która uniemożliwia tworzenie wpisów cue niezależnie od użytych opcji --cues. Tej opcji można użyć wielokrotnie dla jednego pliku wejściowego, za każdym razem wybierając inne identyfikatory ścieżek. |
| --default-track-flag TID[:bool]# |
Ustawia dla podanej ścieżki flagę „ścieżka domyślna” (zobacz sekcję identyfikatory ścieżek), jeśli opcjonalny argument bool ma wartość 1 lub nie został podany. Flaga zostanie ustawiona, jeśli kontener źródłowy nie udostępnia tych informacji, a użytkownik nie określi ich za pomocą tej opcji. Jeśli użytkownik nie wybierze jawnie ścieżki podczas odtwarzania, odtwarzacz powinien wybrać jedną ze ścieżek z ustawioną flagą „ścieżka domyślna”, uwzględniając preferencje użytkownika, takie jak preferowany język. Tej opcji można użyć wielokrotnie dla jednego pliku wejściowego, za każdym razem wybierając inne identyfikatory ścieżek. |
| --track-enabled-flag TID[:bool]# |
Ustawia dla podanej ścieżki flagę „ścieżka włączona” (zobacz sekcję identyfikatory ścieżek) na wartość bool (0 lub 1; domyślnie 1, jeśli nie podano). Ścieżki są domyślnie włączone, jeśli nie określono dla nich żadnej opcji, a kontener źródłowy również nie udostępnia tych informacji. Do odtwarzania powinny być brane pod uwagę tylko ścieżki, których flaga „ścieżka włączona” jest ustawiona. Tej opcji można użyć wielokrotnie dla jednego pliku wejściowego, za każdym razem wybierając inne identyfikatory ścieżek. |
| --forced-display-flag TID[:bool]# |
Ustawia dla podanej ścieżki flagę „wymuszona widoczność” (zobacz sekcję identyfikatory ścieżek), jeśli opcjonalny argument bool ma wartość 1 lub nie został podany. Używaj tej opcji dla ścieżek zawierających tekst wyświetlany na ekranie lub dialogi w języku obcym. Tej opcji można użyć wielokrotnie dla jednego pliku wejściowego, za każdym razem wybierając inne identyfikatory ścieżek. |
| --hearing-impaired-flag TID[:bool]# |
Ustawia dla podanej ścieżki flagę „dla osób niedosłyszących” (zobacz sekcję identyfikatory ścieżek), jeśli opcjonalny argument bool ma wartość 1 lub nie został podany. Flagę tę można ustawić, jeśli ścieżka jest odpowiednia dla osób z zaburzeniami słuchu. Tej opcji można użyć wielokrotnie dla jednego pliku wejściowego, za każdym razem wybierając inne identyfikatory ścieżek. |
| --visual-impaired-flag TID[:bool]# |
Ustawia dla podanej ścieżki flagę „dla osób niedowidzących” (zobacz sekcję identyfikatory ścieżek), jeśli opcjonalny argument bool ma wartość 1 lub nie został podany. Flagę tę można ustawić, jeśli ścieżka jest odpowiednia dla osób z zaburzeniami wzroku. Tej opcji można użyć wielokrotnie dla jednego pliku wejściowego, za każdym razem wybierając inne identyfikatory ścieżek. |
| --text-descriptions-flag TID[:bool]# |
Ustawia dla podanej ścieżki flagę „opisy tekstowe” (zobacz sekcję identyfikatory ścieżek), jeśli opcjonalny argument bool ma wartość 1 lub nie został podany. Flagę tę można ustawić, jeśli ścieżka zawiera tekstowe opisy treści wideo przeznaczone do odtwarzania za pomocą systemu zamiany tekstu na mowę dla osób z zaburzeniami wzroku. Tej opcji można użyć wielokrotnie dla jednego pliku wejściowego, za każdym razem wybierając inne identyfikatory ścieżek. |
| --original-flag TID[:bool]# |
Ustawia dla podanej ścieżki flagę „oryginalny język” (zobacz sekcję identyfikatory ścieżek), jeśli opcjonalny argument bool ma wartość 1 lub nie został podany. Flagę tę można ustawić, jeśli ścieżka jest w oryginalnym języku treści, a nie jest tłumaczeniem. Tej opcji można użyć wielokrotnie dla jednego pliku wejściowego, za każdym razem wybierając inne identyfikatory ścieżek. |
| --commentary-flag TID[:bool]# |
Ustawia dla podanej ścieżki flagę „komentarz” (zobacz sekcję identyfikatory ścieżek), jeśli opcjonalny argument bool ma wartość 1 lub nie został podany. Flagę tę można ustawić, jeśli ścieżka zawiera komentarz. Tej opcji można użyć wielokrotnie dla jednego pliku wejściowego, za każdym razem wybierając inne identyfikatory ścieżek. |
| --track-name TID:nazwa# |
Ustawia nazwę podanej ścieżki (zobacz sekcję identyfikatory ścieżek) na name. |
| --language TID:język# |
Ustawia język podanej ścieżki (zobacz sekcję identyfikatory ścieżek). Dozwolone są zarówno kody języków ISO 639-2, jak i kody krajów ISO 639-1. Kody krajów zostaną automatycznie przekonwertowane na kody języków. Wszystkie języki wraz z ich kodami ISO 639-2 można wyświetlić za pomocą opcji --list-languages. Tej opcji można użyć wielokrotnie dla jednego pliku wejściowego, za każdym razem wybierając inne identyfikatory ścieżek. |
| -t, --tags TID:nazwa-pliku# |
Odczytuje tagi dla ścieżki o numerze TID z pliku file-name. Szczegółowe informacje znajdują się w poniższej sekcji dotyczącej tagów. |
| --aac-is-sbr TID[:0|1]# |
Informuje mkvmerge(1), że ścieżka o identyfikatorze TID jest ścieżką SBR AAC (znaną również jako HE-AAC lub AAC+). Ta opcja jest potrzebna, jeśli a) plik źródłowy jest plikiem AAC (nie plikiem Matroska(tm)) oraz b) plik AAC zawiera dane SBR AAC. Powodem użycia tej opcji jest techniczna niemożność automatycznego odróżnienia zwykłych danych AAC od danych SBR AAC bez dekodowania całej klatki AAC. Ze względu na kilka kwestii patentowych dotyczących dekoderów AAC mkvmerge(1) nigdy nie będzie zawierać tego etapu dekodowania. Dlatego w przypadku plików SBR AAC ta opcja jest obowiązkowa. Jeśli opcja zostanie pominięta, wynikowy plik może nie odtwarzać się prawidłowo, a nawet może nie odtwarzać się wcale. Jeśli plik źródłowy jest plikiem Matroska(tm), element CodecID powinien wystarczyć do wykrycia SBR AAC. Jeśli jednak CodecID jest nieprawidłowy, tej opcji można użyć do jego poprawienia. Jeśli mkvmerge błędnie wykryje, że plik AAC jest plikiem SBR, do identyfikatora ścieżki można dodać „:0”. |
| --audio-emphasis TID:n|symbolic-name# |
Ustawia uwypuklenie dla ścieżki audio o identyfikatorze TID. Tryb może być liczbą n (określone wartości od 0 do 16) albo nazwą symboliczną. Wszystkie prawidłowe liczby i nazwy symboliczne można wyświetlić za pomocą opcji --list-audio-emphasis. |
| --reduce-to-core TID# |
Niektóre kodeki audio mają stratny rdzeń oraz opcjonalne rozszerzenia umożliwiające bezstratne dekodowanie. Ta opcja nakazuje mkvmerge(1) kopiować tylko rdzeń, bez rozszerzeń. Domyślnie mkvmerge(1) kopiuje zarówno rdzeń, jak i rozszerzenia. Obecnie tylko ścieżki DTS są obsługiwane przez tę opcję. Ścieżki TrueHD zawierające wbudowany rdzeń AC-3 są natomiast pokazywane jako dwie oddzielne ścieżki, które użytkownik może wybrać do skopiowania. Przy DTS taki sposób nie zadziałałby, jako że rozszerzenia HD nie mogą być zdekodowane oddzielnie - odwrotnie jak w przypadku danych TrueHD. |
| --remove-dialog-normalization-gain TID# |
Niektóre kodeki audio zawierają pola nagłówka informujące dekoder lub odtwarzacz o zastosowaniu wzmocnienia (zwykle ujemnego) w celu normalizacji dialogów. Ta opcja nakazuje mkvmerge(1) usunąć lub zminimalizować to wzmocnienie poprzez modyfikację odpowiednich pól nagłówka. Obecnie ta opcja dotyczy tylko ścieżek AC-3, DTS i TrueHD. |
| --timestamps TID:nazwa-pliku# |
Odczytuje z pliku file-name znaczniki czasu, które mają być używane dla określonego identyfikatora ścieżki. Te znaczniki czasu bezwzględnie zastępują znaczniki czasu, które mkvmerge(1) normalnie oblicza. Przeczytaj sekcję dotyczącą zewnętrznych plików znaczników czasu. |
| --default-duration TID:x# |
Wymusza domyślny czas trwania danej ścieżki na określoną wartość. Modyfikuje również znaczniki czasu ścieżki tak, aby odpowiadały domyślnemu czasowi trwania. Do argumentu x należy dodać przyrostek „s”, „ms”, „us”, „ns”, „fps”, „p” lub „i”, aby określić odpowiednio domyślny czas trwania w sekundach, milisekundach, mikrosekundach, nanosekundach, „klatkach na sekundę”, „klatkach progresywnych na sekundę” lub „klatkach z przeplotem na sekundę”. Sama liczba x może być liczbą zmiennoprzecinkową lub ułamkiem. Jeśli domyślny czas trwania nie jest wymuszany, mkvmerge spróbuje wyznaczyć domyślny czas trwania ścieżki na podstawie kontenera i/lub zakodowanego strumienia bitów dla niektórych typów ścieżek, np. AVC/H.264 lub MPEG-2. Tej opcji można również użyć do zmiany FPS ścieżek wideo bez konieczności korzystania z zewnętrznego pliku znaczników czasu. |
| --fix-bitstream-timing-information TID[:0|1]# |
Zwykle mkvmerge(1) nie zmienia informacji o czasie (częstotliwości klatek/pól) zapisanych w strumieniu bitów wideo. Za pomocą tej opcji informacje te są dostosowywane tak, aby odpowiadały informacjom o czasie w kontenerze. Informacje o czasie w kontenerze mogą pochodzić z różnych źródeł: z wiersza poleceń (zobacz opcję --default-duration), z kontenera źródłowego lub mogą być wyprowadzone ze strumienia bitów. Note: To zostało zaimplementowane jak dotąd tylko dla ścieżek obrazu AVC/H.264. |
| --compression TID:n# |
Wybiera metodę kompresji używaną dla ścieżki. Należy pamiętać, że odtwarzacz również musi obsługiwać tę metodę. Prawidłowe wartości to „none”, „zlib” oraz „mpeg4_p2”/„mpeg4p2”. Metoda kompresji „mpeg4_p2”/„mpeg4p2” to specjalna metoda kompresji zwana „usuwaniem nagłówka”, dostępna tylko dla ścieżek wideo MPEG4 część 2. Domyślną metodą kompresji dla niektórych typów napisów jest kompresja „zlib”. Jest to również metoda kompresji obsługiwana przez większość, jeśli nie wszystkie, aplikacji do odtwarzania. Obsługa innych metod kompresji niż „none” nie jest gwarantowana. |
2.8. Opcje mające zastosowanie tylko do ścieżek obrazu#
| Option | Description |
|---|---|
| -f, --fourcc TID:FourCC# |
Wymusza ustawienie FourCC na podaną wartość. Działa tylko dla ścieżek wideo w „trybie zgodności z MS”. |
| --display-dimensions TID:szerokośćxwysokość# |
Pliki Matroska(tm) zawierają dwie wartości określające właściwości wyświetlania, które odtwarzacz powinien brać pod uwagę podczas odtwarzania: wyświetlana szerokość i wysokość. Te wartości mogą być ustawione z tą opcją, np. '1:640x480'. Innym sposobem określenia wartości jest użycie opcji --aspect-ratio lub --aspect-ratio-factor (zobacz poniżej). Opcje te wykluczają się wzajemnie. |
| --aspect-ratio TID:ratio|width/height# |
Pliki Matroska(tm) zawierają dwie wartości określające właściwości wyświetlania, które odtwarzacz powinien brać pod uwagę podczas odtwarzania: wyświetlana szerokość i wysokość. Za pomocą tej opcji mkvmerge(1) automatycznie obliczy szerokość i wysokość wyświetlania, bazując na oryginalnej szerokości i wysokości obrazu oraz proporcjach obrazu. Proporcje mogą być podane zarówno jako liczba zmiennoprzecinkowa proporcja, jak i jako ułamek 'szerokość/wysokość', np. '16/9'. Innym sposobem określenia wartości jest użycie opcji --aspect-ratio-factor lub --display-dimensions (zobacz powyżej i poniżej). Opcje te wykluczają się wzajemnie. |
| --aspect-ratio-factor TID:współczynnik|n/d# |
Innym sposobem ustawienia proporcji obrazu jest podanie factor. Oryginalne proporcje obrazu są najpierw mnożone przez ten factor, a następnie wynik jest używany jako docelowe proporcje obrazu. Innym sposobem określenia wartości jest użycie opcji --aspect-ratio lub --display-dimensions (zobacz powyżej). Opcje te wykluczają się wzajemnie. |
| --cropping TID:lewo,góra,prawo,dół# |
Ustawia parametry przycinania pikseli ścieżki wideo na podane wartości. |
| --color-matrix-coefficients TID:n# |
Ustawia współczynniki macierzy wideo używane do wyznaczania wartości luminancji i chrominancji na podstawie składowych koloru czerwonego, zielonego i niebieskiego. Parametr n jest liczbą całkowitą z zakresu od 0 do 10. Prawidłowe wartości i ich znaczenie: 0: GBR, 1: BT709, 2: nieokreślone, 3: zarezerwowane, 4: FCC, 5: BT470BG, 6: SMPTE 170M, 7: SMPTE 240M, 8: YCOCG, 9: BT2020 — nieokreślona luminancja, 10: BT2020 — stała luminancja |
| --color-bits-per-channel TID:n# |
Ustawia liczbę zakodowanych bitów dla kanału koloru. Wartość 0 oznacza, że liczba bitów jest nieokreślona. |
| --chroma-subsample TID:hori,vert# |
Liczba pikseli usuwanych z kanałów Cr i Cb dla każdego piksela, który nie został usunięty w poziomie/pionie. Przykład: dla wideo z próbkowaniem chrominancji 4:2:0 parametr powinien mieć wartość TID:1,1. |
| --cb-subsample TID:hori,vert# |
Liczba pikseli usuwanych z kanału Cb dla każdego piksela, który nie został usunięty w poziomie/pionie. Jest to wartość dodawana do --chroma-subsample. Przykład: dla wideo z próbkowaniem chrominancji 4:2:1 opcja --chroma-subsample powinna mieć wartość TID:1,0, a Cb-subsample powinno mieć wartość TID:1,0. |
| --chroma-siting TID:hori,vert# |
Ustawia sposób rozmieszczenia chrominancji w poziomie/pionie (0: nieokreślone, 1: współlokalizowane u góry, 2: połowa). |
| --color-range TID:n# |
Ustawia ograniczenie zakresu kolorów (0: nieokreślony, 1: zakres telewizyjny, 2: pełny zakres (bez ograniczania), 3: określony przez MatrixCoefficients/TransferCharacteristics). |
| --color-transfer-characteristics TID:n# |
Charakterystyka przesyłu wideo. Prawidłowe wartości i ich znaczenie: 0: zarezerwowane, 1: ITU-R BT.709, 2: nieokreślone, 3: zarezerwowane, 4: krzywa gamma 2.2, 5: krzywa gamma 2.8, 6: SMPTE 170M, 7: SMPTE 240M, 8: liniowa, 9: logarytmiczna, 10: logarytmiczna — pierwiastek kwadratowy, 11: IEC 61966-2-4, 12: rozszerzona przestrzeń barw ITU-R BT.1361, 13: IEC 61966-2-1, 14: ITU-R BT.2020 10-bit, 15: ITU-R BT.2020 12-bit, 16: SMPTE ST 2084, 17: SMPTE ST 428-1; 18: ARIB STD-B67 (HLG) |
| --color-primaries TID:n# |
Ustawia kolory podstawowe wideo. Prawidłowe wartości i ich znaczenie: 0: zarezerwowane, 1: ITU-R BT.709, 2: nieokreślone, 3: zarezerwowane, 4: ITU-R BT.470M, 5: ITU-R BT.470BG, 6: SMPTE 170M, 7: SMPTE 240M, 8: FILM, 9: ITU-R BT.2020, 10: SMPTE ST 428-1, 22: luminofory JEDEC P22 |
| --max-content-light TID:n# |
Ustawia maksymalną jasność pojedynczego piksela (Maximum Content Light Level) w kandelach na metr kwadratowy (cd/m²). Wartość n powinna być nieujemną liczbą całkowitą. |
| --max-frame-light TID:n# |
Ustawia maksymalną jasność pojedynczej pełnej klatki (Maximum Frame-Average Light Level) w kandelach na metr kwadratowy (cd/m²). Wartość n powinna być nieujemną liczbą całkowitą. |
| --chromaticity-coordinates TID:red-x,red-y,green-x,green-y,blue-x,blue-y# |
Ustawia współrzędne chromatyczności czerwonej/zielonej/niebieskiej zgodnie z definicją CIE 1931. |
| --white-color-coordinates TID:x,y# |
Ustawia współrzędne chromatyczności koloru białego zgodnie z definicją CIE 1931. |
| --max-luminance TID:float# |
Ustawia maksymalną luminancję w kandelach na metr kwadratowy (cd/m²). Wartość powinna być mniejsza niż 9999,99. |
| --min-luminance TID:float# |
Ustawia minimalną luminancję w kandelach na metr kwadratowy (cd/m²). Wartość powinna być mniejsza niż 999,9999. |
| --projection-type TID:method# |
Ustawia używaną metodę projekcji wideo. Prawidłowe wartości to 0 (projekcja prostokątna), 1 (projekcja equirectangular), 2 (projekcja sześcianowa) i 3 (projekcja siatkowa). |
| --projection-private TID:data# |
Ustawia dane prywatne dotyczące wyłącznie określonej projekcji. Dane należy podać jako liczby szesnastkowe z prefiksem "0x" lub bez niego, ze spacjami lub bez. |
| --projection-pose-yaw TID:float# |
Określa obrót odchylenia względem projekcji. |
| --projection-pose-pitch TID:float# |
Określa obrót rzutu. |
| --projection-pose-roll TID:float# |
Określa obrót rzutu. |
| --field-order TID:n# |
Ustawia kolejność pól dla ścieżki wideo o identyfikatorze TID. Kolejność musi być jedną z następujących wartości: 0: progresywne; 1: z przeplotem, z górnym polem wyświetlanym jako pierwsze i zapisanym jako pierwsze; 2: nieokreślona kolejność pól; 6: z przeplotem, z dolnym polem wyświetlanym jako pierwsze i zapisanym jako pierwsze; 9: z przeplotem, z dolnym polem wyświetlanym jako pierwsze i górnym polem zapisanym jako pierwsze; 14: z przeplotem, z górnym polem wyświetlanym jako pierwsze i dolnym polem zapisanym jako pierwsze |
| --stereo-mode TID:n|symbolic-name# |
Ustawia tryb stereoskopowy dla ścieżki wideo o identyfikatorze TID. Trybem może być liczba n od 0 do 14 albo nazwa symboliczna. Wszystkie prawidłowe liczby i nazwy można wyświetlić za pomocą opcji --list-stereo-modes. |
2.9. Opcje mające zastosowanie tylko do ścieżek napisów#
| Option | Description |
|---|---|
| --sub-charset TID:zestaw-znaków# |
Ustawia zestaw znaków używany do konwersji napisów UTF-8 na UTF-8 dla podanego identyfikatora ścieżki. Jeśli nie zostanie określony, zestaw znaków zostanie wyprowadzony z bieżących ustawień regionalnych. Należy pamiętać, że zestaw znaków nie jest potrzebny w przypadku napisów odczytywanych z plików Matroska(tm) ani ze strumieni Kate, ponieważ są one zawsze przechowywane w UTF-8. Wyjaśnienie sposobu konwersji między zestawami znaków przez mkvmerge(1) znajduje się w sekcji dotyczącej plików tekstowych i zestawów znaków. Tej opcji można użyć wielokrotnie dla jednego pliku wejściowego, za każdym razem wybierając inne identyfikatory ścieżek. |
2.10. Pozostałe opcje#
| Option | Description |
|---|---|
| -i, --identify nazwa-pliku# |
Pozwala mkvmerge(1) przeanalizować pojedynczy plik i zgłosić jego typ, ścieżki zawarte w pliku oraz ich identyfikatory. Jeśli użyto tej opcji, jedyną inną dozwoloną opcją jest nazwa pliku. Format wyjściowy używany dla wyniku można zmienić za pomocą opcji --identification-format. |
| -J file-name# |
Jest to wygodny alias dla „--identification-format json --identify file-name”. |
| -F, --identification-format format# |
Określa format wyjściowy używany przez opcję --identify. Obsługiwane są następujące formaty: text (domyślny, jeśli ta opcja nie jest używana) oraz json.
|
| --probe-range-percentage percentage# |
Typy plików takie jak strumienie programowe i transportowe MPEG (.vob, .m2ts) wymagają przeanalizowania określonej ilości danych w celu wykrycia wszystkich ścieżek zawartych w pliku. Ilość ta wynosi 0,3% rozmiaru pliku źródłowego lub 10 MB, w zależności od tego, która wartość jest większa. Jeśli wiadomo, że ścieżki są obecne, ale nie zostały znalezione, za pomocą tej opcji można zmienić procent danych poddawanych analizie. Minimalna wartość 10 MB jest wbudowana i nie można jej zmienić. |
| --list-audio-emphasis# |
"BZ2" -- biblioteka formatu kompresji bzlib(tm). Wpływa na sposób kompresji w opcji --compression. |
| --list-languages# |
Wyświetla wszystkie języki i ich kody ISO 639-2, których można używać z opcją --language. |
| --list-stereo-modes# |
"BZ2" -- biblioteka formatu kompresji bzlib(tm). Wpływa na sposób kompresji w opcji --compression. |
| -l, --list-types# |
Lista obsługiwanych plików wejściowych. |
| --priority priorytet# |
Ustawia priorytet procesu, z którym działa mkvmerge(1). Prawidłowe wartości to „lowest”, „lower”, „normal”, „higher” i „highest”. Jeśli nie podano żadnej wartości, używana jest „normal”. W systemach uniksowych mkvmerge(1) używa funkcji nice(2). Dlatego tylko superużytkownik może używać wartości „higher” i „highest”. W systemie Windows wszystkie wartości mogą być używane przez każdego użytkownika. Wybranie wartości „lowest” powoduje również ustawienie najniższego możliwego priorytetu operacji wejścia/wyjścia, oprócz najniższego możliwego priorytetu procesu. |
| --command-line-charset zestaw-znaków# |
Ustawia zestaw znaków, z którego mają być konwertowane ciągi podane w wierszu poleceń. Domyślnie używany jest zestaw znaków określony przez bieżące ustawienia regionalne systemu. Ustawienie to dotyczy argumentów następujących opcji: --title, --track-name i --attachment-description. |
| --output-charset zestaw-znaków# |
Ustawia zestaw znaków, do którego konwertowane są ciągi znaków przeznaczone do wyprowadzenia. Domyślnie jest to zestaw znaków określony przez bieżącą lokalizację systemu. |
| -r, --redirect-output nazwa-pliku# |
Zapisuje wszystkie powiadomienia do pliku nazwa-pliku zamiast do konsoli. Podczas gdy może być to robione łatwo z przekierowaniem wyjścia, są przypadki, gdy ta opcja właśnie jest potrzebna: gdy terminal ponownie interpretuje plik wyjściowy przed zapisaniem do pliku. Uznawany będzie zestaw znaków ustawiony z opcją --output-charset. |
| --no-bom# |
Zazwyczaj pliki tekstowe utworzone i zakodowane w jednym z wariantów UTF rozpoczynają się od znacznika kolejności bajtów (BOM). Użycie tej opcji wyłącza zapisywanie tego znacznika kolejności bajtów. |
| --flush-on-close# |
Nakazuje programowi przelanie wszystkich danych z pamięci podręcznej do pamięci masowej podczas zamykania plików otwartych do zapisu. Można tego użyć, aby zapobiec utracie danych podczas przerw w dostawie prądu lub obejść pewne problemy z systemem operacyjnym lub sterownikami. Wadą jest to, że multipleksowanie będzie trwało dłużej, ponieważ program mkvmerge będzie czekał, aż wszystkie dane zostaną zapisane w pamięci masowej, zanim zakończy działanie. Szczegółowe omówienie zalet i wad można znaleźć w zgłoszeniach nr 2469 i 2480 w systemie śledzenia błędów MKVToolNix. |
| --ui-language kod# |
Wymusza użycie tłumaczeń dla kodu parameter języka (np. "de_DE” dla tłumaczeń na język niemiecki). Wprowadzenie "list” jako kodu parameter spowoduje, że program wyświetli listę dostępnych tłumaczeń. |
| --abort-on-warnings# |
Nakazuje programowi przerwanie po wyemitowaniu pierwszego ostrzeżenia. Kodem wyjścia programu będzie 1. |
| --deterministyczny seed# |
Włącza tworzenie plików identycznych bajt po bajcie, jeśli ta sama wersja mkvmerge(1) jest używana z tymi samymi plikami źródłowymi, tym samym zestawem opcji i tym samym ziarnem. Należy pamiętać, że w tym trybie pole informacji o segmencie „date” nie jest zapisywane. Ziarno może być dowolnym ciągiem znaków i nie musi być liczbą. Wynik w postaci plików identycznych bajtowo jest gwarantowany wyłącznie przy spełnieniu następujących warunków:
Użycie innych wersji mkvmerge(1) lub innych opcji wiersza poleceń może skutkować utworzeniem tego samego pliku identycznego bajt po bajcie, ale nie jest to gwarantowane. |
| --debug temat# |
Włącz debugowanie dla konkretnej funkcji. Ta opcja jest użyteczna tylko dla deweloperów. |
| --engage funkcja# |
Włącz funkcje eksperymentalne. Listę dostępnych funkcji można uzyskać za pomocą komendy mkvmerge --engage list. Te funkcje nie są przeznaczone do użytku w normalnych sytuacjach. |
| --gui-mode# |
Włącza tryb GUI. W tym trybie mogą być generowane specjalnie sformatowane linie, które informują interfejs GUI o aktualnym stanie rzeczy. Komunikaty te mają formatt '#GUI#message'. Po komunikacie mogą następować pary klucz/wartość, np '#GUI#message#key1=value1#key2=value2…'. Ani komunikaty, ani klucze nie są tłumaczone i zawsze są wyświetlane w języku angielskim. |
| @options-file.json# |
Odczytuje dodatkowe argumenty wiersza poleceń z pliku options-file. Więcej informacji znajduje się w sekcji dotyczącej plików opcji. Jeśli chcesz użyć znaku @ jako pierwszego znaku argumentu opcji takiej jak „--title”, musisz poprzedzić go drugim znakiem @. Przykład: $ mkvmerge -o midnight-s01e01.mkv --title @@midnight midnight-s01e01.mp4 |
| --capabilities# |
Wyświetla informacje o opcjonalnych funkcjach, które zostały wkompilowane, i kończy działanie. Pierwszy wiersz zawiera informacje o wersji. Wszystkie kolejne wiersze zawierają dokładnie jedno słowo, którego obecność oznacza, że dana funkcja została wkompilowana. Dostępne są następujące funkcje:
|
| -h, --pomoc# |
Pokaż informację o sposobie użycia opcji i wyjdź. |
| -V, --wersja# |
Pokaż informację o wersji i wyjdź. |
3. Użycie#
Dla każdego pliku użytkownik może wybrać, które ścieżki ma pobrać mkvmerge(1). Wszystkie zostaną umieszczone w pliku określonym za pomocą opcji -o. Listę znanych i obsługiwanych formatów źródłowych można uzyskać za pomocą opcji -l.
Important:
Kolejność opcji wiersza poleceń ma znaczenie. Jeśli dopiero zaczynasz korzystać z programu, przeczytaj sekcję „Kolejność opcji”.
4. Kolejność opcji#
Kolejność wprowadzania opcji ma znaczenie w przypadku niektórych opcji. Opcje dzielą się na dwie kategorie:
-
Opcje wpływające na cały program i niezwiązane z żadnym plikiem wejściowym. Należą do nich między innymi --command-line-charset, --output i --title. Można je umieścić w dowolnym miejscu wiersza poleceń.
-
Opcje wpływające na pojedynczy plik wejściowy lub pojedynczą ścieżkę w pliku wejściowym. Wszystkie te opcje dotyczą następnego pliku wejściowego w wierszu poleceń. Wszystkie opcje dotyczące tego samego pliku wejściowego (lub ścieżek z tego samego pliku) można zapisać w dowolnej kolejności, o ile wszystkie wystąpią przed nazwą tego pliku wejściowego. Przykładami opcji dotyczących pliku wejściowego są --no-chapters lub --chapter-charset. Przykładami opcji dotyczących pojedynczej ścieżki są --default-duration lub --language.
Opcje są przetwarzane od lewej do prawej. Jeśli opcja wystąpi wielokrotnie w tym samym zakresie, użyte zostanie jej ostatnie wystąpienie. Dlatego w poniższym przykładzie tytuł zostanie ustawiony na „Something else”:
$ mkvmerge -o wyjściowy.mkv --title "To i tamto" wejściowy.avi --title "Coś innego"
Poniższy przykład pokazuje, że użycie opcji --language dwukrotnie jest prawidłowe, ponieważ są one używane w różnych zakresach. Mimo że dotyczą tego samego identyfikatora ścieżki, dotyczą różnych plików wejściowych, a więc mają różne zakresy:
$ mkvmerge -o wyjściowy.mkv --language 0:fre français.ogg --language 0:pol polski.ogg
5. Przykłady#
Załóżmy, że masz plik o nazwie MyMovie.avi, a ścieżkę audio w osobnym pliku, np. „MyMovie.wav”. Najpierw chcesz zakodować audio do OggVorbis(tm):
$ oggenc -q4 -oMójPlik.ogg MójPlik.wav
Po kilku minutach możesz połączyć obraz i dźwięk:
$ mkvmerge -o MójFilm-z-dźwiękiem.mkv MójFilm.avi MójFilm.ogg
Jeśli Twój AVI zawiera już ścieżkę audio, zostanie ona również skopiowana (jeśli mkvmerge(1) obsługuje format audio). Aby tego uniknąć, po prostu wykonaj
$ mkvmerge -o MójFilm-z-dźwiękiem.mkv -A MójFilm.avi MójFilm.ogg
Po kilku minutach namysłu zgrywasz kolejną ścieżkę audio, np. komentarz reżysera lub inny język, do „MyMovie-add-audio.wav”. Zakoduj ją ponownie i połącz z drugim plikiem:
$ oggenc -q4 -oMójFilm-dodatk-audio.ogg MójFilm-dodatk-audio.wav $ mkvmerge -o MF-kompletny.mkv MójFilm-z-dźwiękiem.mkv MójFilm-dodatk-audio.ogg
Taki sam wynik może być osiągnięty z
$ mkvmerge -o MF-kompletny.mkv -A MójFilm.avi MójFilm.ogg MójFilm-dodatk-audio.ogg
Teraz uruchom mplayer(tm) i ciesz się filmem. Jeśli masz wiele ścieżek audio (lub nawet ścieżek wideo), możesz wskazać mplayer(tm), którą ścieżkę ma odtwarzać, za pomocą opcji „-vid” i „-aid”. Identyfikatory zaczynają się od 0 i nie rozróżniają ścieżek wideo od audio.
Jeśli ścieżka audio wymaga synchronizacji, można to łatwo zrobić. Najpierw sprawdź, jaki identyfikator ma ścieżka Vorbis, za pomocą
$ mkvmerge --identify braksynchro.ogg
Teraz możesz użyć tego ID w następującej linii komend:
$ mkvmerge -o synchro.mkv -A źródło.avi -y 12345:200 bezsynchro.ogg
Spowoduje to dodanie 200 ms ciszy na początku ścieżki audio o identyfikatorze 12345 pobranej z „outofsync.ogg”.
Niektóre filmy zaczynają się prawidłowo zsynchronizowane, ale z czasem tracą synchronizację. W przypadku takich filmów można określić współczynnik opóźnienia stosowany do wszystkich znaczników czasu — żadne dane nie są dodawane ani usuwane. Jeśli więc współczynnik będzie zbyt duży lub zbyt mały, uzyskasz złe rezultaty. Przykładowo odcinek, który transkodowałem, był pod koniec filmu rozjechany o 0.2 sekundy, a film miał 77340 klatek. Przy 29.97fps 0.2 sekundy odpowiada około 6 klatkom. Dlatego wykonałem
$ mkvmerge -o synchro.mkv -y 23456:0,77346/77340 bezsynchro.mkv
Wynik jest poprawny.
Opcje synchronizacji można w ten sam sposób wykorzystać także do napisów.
W przypadku napisów tekstowych można użyć oprogramowania Windows (np. SubRipper(tm)) albo pakietu subrip(tm) znajdującego się w źródłach transcode(1), w katalogu „contrib/subrip”. Ogólny proces wygląda następująco:
-
wyodrębnia surową ścieżkę napisów ze źródła:
$ tccat -i /ścieżka/do/skopiowanego/dvd/ -T 1 -L | tcextract -x ps1 -t vob -a 0x20 | subtitle2pgm -o mójplik
-
konwertuje wynikowe obrazy PGM na tekst przy pomocy gocr:
$ pgm2txt mójplik
-
sprawdź pisownię w powstałych plikach tekstowych:
$ ispell -d polski *txt
-
konwertuje pliki tekstowe do pliku SRT:
$ srttool -s -w -i mójplik.srtx -o mójplik.srt
Wynikowy plik można wykorzystać jako kolejny plik wejściowy dla programu mkvmerge(1):
$ mkvmerge -o mójfilm.mkv mójfilm.avi mójfilm.srt
Jeśli chcesz określić język dla danej ścieżki, można to łatwo zrobić. Najpierw sprawdź kod ISO 639-2 swojego języka. mkvmerge(1) może wyświetlić wszystkie te kody:
$ mkvmerge --list-languages
Znajdź na liście potrzebne języki. Załóżmy, że do pliku Matroska(tm) dodałeś dwie ścieżki audio i chcesz ustawić ich kody językowe, a ich identyfikatory ścieżek to 2 i 3. Można to zrobić za pomocą
$ mkvmerge -o z-kodami-język.mkv --language 2:pol --language 3:eng bez-kodów-język.mkv
Jak widać, opcji --language można używać wielokrotnie.
Być może chcesz również, aby odtwarzacz używał języka niderlandzkiego jako języka domyślnego. Masz także dodatkowe napisy, np. po angielsku i francusku, i chcesz, aby odtwarzacz domyślnie wyświetlał francuskie. Można to zrobić za pomocą
$ mkvmerge -o z-kodami-język.mkv --language 2:pol --language 3:dut --default-track-flag 3 bez-kodów-język.mkv --language 0:eng english.srt --default-track-flag 0 --language 0:fre french.srt
Jeśli w wyjściu mkvinfo(1) nie widzisz określonych przez siebie flag języka lub domyślnej ścieżki, przeczytaj sekcję dotyczącą wartości domyślnych.
Wyłącz kompresję dla pliku wejściowego.
$ mkvmerge -o bez-kompresji.mkv --compression -1:none MójFilm.avi --compression -1:none mójfilm.srt
6. Identyfikatory ścieżek#
6.1. Zwykłe identyfikatory ścieżek#
Niektóre opcje mkvmerge(1) wymagają identyfikatora ścieżki, aby określić, do której ścieżki mają być zastosowane. Identyfikatory te są wyświetlane przez czytniki podczas demultipleksowania bieżącego pliku wejściowego lub gdy mkvmerge(1) jest wywoływany z opcją --identify. Przykład takiego wyjścia:
$ mkvmerge -i v.mkv Plik 'v.mkv': kontener: Matroska Track ID 0: obraz (V_MS/VFW/FOURCC, DIV3) Track ID 1: dźwięk (A_MPEG/L3)
Nie myl ID ścieżki, które jest przypisywane do ścieżek w plikach wnikowych MKV, z ID ścieżek z plików wejściowych. Tylko ID ścieżek wejściowych jest wykorzystywane w opcjach wymagających tychże wartości.
Należy również pamiętać, że każdy plik wejściowy ma własny zestaw identyfikatorów ścieżek. Dlatego identyfikatory ścieżek dla pliku „file1.ext”, zgłaszane przez „mkvmerge --identify”, nie zmieniają się niezależnie od tego, ile innych plików wejściowych jest obecnych ani na której pozycji używany jest plik „file1.ext”.
Identyfikatory utworów są przypisywane w następujący sposób:
-
Pliki AVI: Ścieżka obrazu ma ID 0. Ścieżki dźwiękowe dostają ID w porządku rosnącym, zaczynając od 1.
-
Pliki AAC, AC-3, MP3, SRT i WAV: Jedna "ścieżka" w tych plikach dostaje ID 0.
-
Większość pozostałych plików: identyfikatory ścieżek są przypisywane w kolejności, w jakiej ścieżki są znajdowane w pliku, począwszy od 0.
Opcje używające identyfikatorów ścieżek to te, których opis zawiera „TID”. Identyfikatorów ścieżek używają również następujące opcje: --audio-tracks, --video-tracks, --subtitle-tracks, --button-tracks i --track-tags.
6.2. Specjalne identyfikatory utworów#
Istnieje kilka identyfikatorów o specjalnym znaczeniu, które nie występują w wynikach identyfikacji.
Specjalny identyfikator ścieżki „-1” jest symbolem wieloznacznym i powoduje zastosowanie podanej opcji do wszystkich ścieżek odczytanych z pliku wejściowego.
Specjalny identyfikator ścieżki „-2” odnosi się do rozdziałów w pliku źródłowym. Obecnie tylko opcja --sync używa tego specjalnego identyfikatora. Alternatywnie zamiast --sync -2:… można użyć opcji --chapter-sync ….
7. Obsługa języków#
Matroska(tm) obsługuje dwa różne typy elementów językowych: stary, przestarzały element „Language” zawierający trzyznakowe kody ISO 639-2 oraz nowe tagi „LanguageIETF” zawierające tagi językowe IETF BCP 47. Wszystkie opcje mkvmerge(1), które przyjmują język, akceptują tag językowy BCP 47. mkvmerge(1) w miarę możliwości wyprowadzi wartość przestarzałego elementu „Language” z tagu językowego BCP 47.
Podczas identyfikowania pliku w trybie JSON istniejące elementy nagłówka ścieżki „LanguageIETF” są wyprowadzane jako właściwość ścieżki language_ietf.
Podczas zapisywania pliku mkvmerge(1) zawsze zapisuje elementy „LanguageIETF”, „ChapLanguageIETF” i „TagLanguageIETF” (dwa ostatnie tylko wtedy, gdy odpowiednio zapisywane są rozdziały lub tagi). Oprócz tych elementów zapisywane będą również odpowiadające im stare elementy; zostaną one ustawione na część kodu ISO 639-2 tagu językowego BCP 47. Na przykład gdy język ścieżki zostanie ustawiony na sr-Cyrl-RS, „LanguageIETF” zostanie ustawiony na sr-Cyrl-RS, a stary element „Language” na srp.
Podczas odczytywania istniejących plików (plików Matroska, plików XML rozdziałów lub tagów itd.), które już zawierają elementy „…LanguageIETF”, istniejące elementy zostaną zachowane. W przeciwnym razie elementy „…LanguageIETF” zostaną dodane na podstawie opcji wiersza poleceń i innych istniejących, przestarzałych elementów „…Language”.
Tworzenie nowych elementów można całkowicie wyłączyć za pomocą opcji wiersza poleceń --disable-language-ietf, która działa na wszystkie trzy nowe elementy.
Metodę normalizacji stosowaną dla rozszerzonych podtagów językowych można wybrać za pomocą parametru --normalize-language-ietf.
8. Pliki tekstowe i konwersje zestawów znaków#
Note:
Ta sekcja dotyczy wszystkich programów MKVToolNix, nawet jeśli wspomina tylko o mkvmerge(1).
8.1. Wprowadzenie#
Cały tekst w pliku Matroska(tm) jest zakodowany w UTF-8. Oznacza to, że mkvmerge(1) musi konwertować każdy odczytywany plik tekstowy, a także każdy tekst podany w wierszu poleceń, z jednego zestawu znaków do UTF-8. Oznacza to również, że dane wyjściowe mkvmerge(1) muszą być konwertowane z UTF-8 z powrotem do tego zestawu znaków, np. jeśli używane jest nieangielskie tłumaczenie z opcją --ui-language lub w przypadku tekstu pochodzącego z pliku Matroska(tm).
mkvmerge(1) wykonuje tę konwersję automatycznie na podstawie obecności znacznika kolejności bajtów (w skrócie: BOM) lub bieżących ustawień regionalnych systemu. Sposób wywnioskowania zestawu znaków z ustawień regionalnych zależy od systemu operacyjnego, na którym uruchomiony jest mkvmerge(1).
8.2. Znaczniki kolejności bajtów (BOM)#
Pliki tekstowe rozpoczynające się od znacznika BOM są już zakodowane w jednym z wariantów UTF. mkvmerge(1) obsługuje pięć następujących trybów: UTF-8, UTF-16 Little Endian i Big Endian oraz UTF-32 Little Endian i Big Endian. Pliki tekstowe z BOM są automatycznie konwertowane do UTF-8. Wszystkie parametry, które w innym przypadku ustawiałyby zestaw znaków dla takiego pliku (np. --sub-charset), są po cichu ignorowane.
8.3. Linuks i inne systemy uniksopodobne, włączając w to macOS#
W systemach uniksowych mkvmerge(1) używa wywołania systemowego setlocale(3), które z kolei korzysta ze zmiennych środowiskowych LANG, LC_ALL i LC_CTYPE. Wynikowy zestaw znaków często jest jednym z UTF-8 lub rodziny ISO-8859-* i jest używany dla wszystkich operacji na plikach tekstowych, kodowania ciągów w wierszu poleceń oraz wyjścia na konsolę.
8.4. Windows#
W systemie Windows domyślny zestaw znaków używany do konwersji plików tekstowych jest określany przez wywołanie systemowe GetACP().
Odczytywanie wiersza poleceń odbywa się za pomocą funkcji GetCommandLineW(), która już zwraca ciąg Unicode. Dlatego opcja --command-line-charset jest w systemie Windows ignorowana.
Dane wyjściowe na konsoli składają się z trzech scenariuszy:
-
Jeśli wyjście jest przekierowywane za pomocą opcji --redirect-output, domyślnym zestawem znaków jest UTF-8. Można to zmienić za pomocą --output-charset.
-
Jeśli wyjście jest przekierowywane przez samo cmd.exe, np. za pomocą mkvinfo file.mkv > info.txt, zestaw znaków jest zawsze UTF-8 i nie można go zmienić.
-
W przeciwnym razie (podczas bezpośredniego zapisywania na konsolę) używana jest funkcja Windows WriteConsoleW(), a opcja --output-charset jest ignorowana. Konsola powinna być w stanie wyświetlić wszystkie znaki Unicode, dla których zainstalowano odpowiednią obsługę językową (np. znaki chińskie mogą nie być wyświetlane w angielskich wersjach systemu Windows).
8.5. Opcje linii komend#
Istnieją następujące opcje umożliwiające określenie zestawów znaków:
-
--sub-charset dla tekstowych plików napisów oraz tekstowych ścieżek napisów przechowywanych w formatach kontenerów, dla których nie można jednoznacznie określić zestawu znaków (np. pliki Ogg),
-
--chapter-charset dla tekstowych plików rozdziałów oraz rozdziałów i tytułów plików przechowywanych w formatach kontenerów, dla których nie można jednoznacznie określić zestawu znaków (np. pliki Ogg z informacjami o rozdziałach, tytułami ścieżek i plików itd.; pliki MP4 z informacjami o rozdziałach),
-
--command-line-charset dla wszystkich ciągów w wierszu poleceń,
-
--output-charset dla wszystkich ciągów zapisywanych na konsoli lub w pliku, jeśli wyjście zostało przekierowane za pomocą opcji --redirect-output. W systemach innych niż Windows domyślnym zestawem znaków wyjściowych jest bieżący zestaw znaków systemu. W systemie Windows domyślnie używany jest UTF-8 zarówno przy przekierowaniu za pomocą --redirect-output, jak i za pomocą samego cmd.exe, np. mkvinfo file.mkv > info.txt.
9. Pliki opcji#
Plik opcji to plik, z którego mkvmerge(1) może odczytać dodatkowe argumenty wiersza poleceń. Można go użyć w celu obejścia niektórych ograniczeń powłoki lub systemu operacyjnego podczas uruchamiania programów zewnętrznych, takich jak ograniczona długość wiersza poleceń.
Plik opcji zawiera dane w formacie JSON. Jego zawartość musi być prawidłową tablicą JSON składającą się wyłącznie z ciągów JSON. Kodowanie pliku musi być UTF-8. Plik nie powinien zaczynać się od znacznika kolejności bajtów (BOM), ale jeśli taki znacznik występuje, zostanie pominięty.
Zasady stosowane do znaków specjalnych wymagających ucieczki wewnątrz JSON są zgodne z oficjalną specyfikacją JSON, RFC 7159.
Nazwa pliku opcji musi być podana jako argument wiersza poleceń poprzedzony znakiem „@”.
Wiersz poleceń mkvmerge -o "my file.mkv" -A "a movie.avi" sound.ogg można przekształcić w następujący plik opcji JSON o nazwie np. options.json:
[ "-o", "c:\Matroska\my file.mkv", "--title", "#65", "-A", "a movie.avi", "sound.ogg"]
Odpowiadające mu polecenie będzie wówczas wyglądać następująco: mkvmerge @options.json.
10. Jak powiązać pliki/segmenty#
Matroska(tm) wspiera łączenie plików, czyli znakowanie pliku jako poprzednika lub następcę obecnego pliku. Aby wyrazić się precyzyjniej, to nie pliki są łączone ze sobą, tylko segmenty Matroska(tm). Jako że większość plików najpewniej zawiera tylko jeden segment Matroska(tm) dlatego używa się terminu "łączenie plików", jednakże "łączenie segmentów" byłoby bardziej odpowiednie.
Każdy segment jest identyfikowany przez unikalny 128-bitowy identyfikator UID segmentu. UID ten jest automatycznie generowany przez mkvmerge(1). Łączenie odbywa się przede wszystkim poprzez umieszczenie identyfikatorów UID segmentów (w skrócie: SID) poprzedniego/następnego pliku w informacjach nagłówka segmentu. mkvinfo(1) wyświetla te identyfikatory SID, jeśli je znajdzie.
Jeśli plik jest dzielony na kilka mniejszych plików i używane jest łączenie, znaczniki czasu nie rozpoczną się ponownie od 0, lecz będą kontynuowane od miejsca, w którym zakończył się poprzedni plik. Dzięki temu zachowany zostaje czas bezwzględny, nawet jeśli poprzednie pliki nie są dostępne (np. podczas strumieniowania). Jeśli łączenie nie jest używane, znaczniki czasu powinny rozpoczynać się od 0 dla każdego pliku. Domyślnie mkvmerge(1) nie używa łączenia plików. Jeśli chcesz z niego korzystać, możesz je włączyć opcją --link. Ta opcja jest użyteczna tylko wtedy, gdy włączone jest również dzielenie.
Niezależnie od tego, czy dzielenie jest aktywne, użytkownik może nakazać mkvmerge(1) połączenie utworzonych plików z określonymi identyfikatorami SID. Służą do tego opcje --link-to-previous i --link-to-next. Opcje te przyjmują identyfikator segmentu SID w formacie wyświetlanym przez mkvinfo(1): 16 liczb szesnastkowych z zakresu od 0x00 do 0xff, każda poprzedzona „0x”, np. „0x41 0xda 0x73 0x66 0xd9 0xcf 0xb2 0x1e 0xae 0x78 0xeb 0xb4 0x5e 0xca 0xb3 0x93”. Można również użyć krótszej postaci: 16 liczb szesnastkowych z zakresu od 0x00 do 0xff, bez przedrostków „0x” i bez spacji, np. „41da7366d9cfb21eae78ebb45ecab393”.
Jeśli używane jest dzielenie, pierwszy plik zostanie połączony z identyfikatorem SID podanym za pomocą --link-to-previous, a ostatni plik z identyfikatorem SID podanym za pomocą --link-to-next. Jeśli dzielenie nie jest używane, jedyny plik wyjściowy zostanie połączony z obydwoma identyfikatorami SID.
11. Wartości domyślne#
Specyfikacja Matroska(tm) stwierdza, że niektóre elementy mają wartość domyślną. Zwykle element nie jest zapisywany w pliku, jeśli jego wartość jest równa wartości domyślnej, aby zaoszczędzić miejsce. Elementami, których użytkownik może nie zauważyć w wyjściu mkvinfo(1), są elementy language i default track flag. Wartością domyślną dla language jest język angielski („eng”), a dla default track flag wartość true. Dlatego jeśli dla ścieżki użyto --language 0:eng, nie pojawi się ona w wyjściu mkvinfo(1).
12. Załączniki#
Być może chcesz również przechowywać kilka zdjęć razem z plikiem Matroska(tm) albo używasz napisów SSA i potrzebujesz specjalnej, bardzo rzadkiej czcionki TrueType(tm). W takich przypadkach możesz dołączyć te pliki do pliku Matroska(tm). Nie zostaną one po prostu dopisane do pliku, lecz osadzone w jego wnętrzu. Odtwarzacz może następnie wyświetlać te pliki (w przypadku „zdjęć”) lub używać ich do renderowania napisów (w przypadku „czcionek TrueType(tm)”).
Oto przykład dołączenia zdjęcia i czcionki TrueType(tm) do pliku wyjściowego:
$ mkvmerge -o wyjściowy.mkv -A wideo.avi audio.ogg \ --attachment-description "Ja i moja grupa poza sceną na małej imprezie" \ --attachment-mime-type image/jpeg \ --attach-file ja_i_moja_grupa.jpg \ --attachment-description "Prawdziwie rzadka i niewiarygodnie ładna czcionka" \ --attachment-type application/octet-stream \ --attach-file naprawdę_świetna_czcionka.ttf
Jeśli jako plik wejściowy używany jest plik Matroska(tm) zawierający załączniki, mkvmerge(1) skopiuje załączniki do nowego pliku. Wybór tego, które załączniki są kopiowane, a które nie, można zmienić za pomocą opcji --attachments i --no-attachments.
13. Rozdziały#
System rozdziałów Matroska(tm) jest bardziej rozbudowany niż stary system używany przez pliki OGM. Pełną specyfikację można znaleźć na stronie internetowej Matroska.
mkvmerge(1) obsługuje dwa rodzaje plików rozdziałów jako dane wejściowe. Pierwszy format, nazywany „prostym formatem rozdziałów”, jest taki sam jak format oczekiwany przez narzędzia OGM. Drugi format to format rozdziałów oparty na XML, obsługujący wszystkie funkcje rozdziałów Matroska(tm).
Oprócz dedykowanych plików rozdziałów mkvmerge(1) może również odczytywać rozdziały z innych formatów plików (np. MP4, Ogg, Blu-rayów lub DVD).
13.1. Prosty format rozdziałów#
Ten format składa się z par wierszy rozpoczynających się odpowiednio od „CHAPTERxx=” i „CHAPTERxxNAME=”. Pierwszy zawiera znacznik czasu rozpoczęcia, a drugi tytuł. Oto przykład:
CHAPTER01=00:00:00.000 CHAPTER01NAME=Rozdział I CHAPTER02=00:02:30.000 CHAPTER02NAME=Rozdział II CHAPTER03=00:02:42.300 CHAPTER03NAME=Rozdział III
mkvmerge(1) przekształci każdą parę wierszy w jeden element Matroska(tm) ChapterAtom. Nie ustawia żadnego elementu ChapterTrackNumber, co oznacza, że wszystkie rozdziały dotyczą wszystkich ścieżek w pliku.
Ponieważ jest to plik tekstowy, może być konieczna konwersja zestawu znaków. Wyjaśnienie sposobu konwersji między zestawami znaków przez mkvmerge(1) znajduje się w sekcji dotyczącej plików tekstowych i zestawów znaków.
13.2. Format rozdziałów oparty o XML#
Format rozdziałów oparty o XML wygląda następująco:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Chapters SYSTEM "matroskachapters.dtd">
<Chapters>
<EditionEntry>
<ChapterAtom>
<ChapterTimeStart>00:00:30.000</ChapterTimeStart>
<ChapterTimeEnd>00:01:20.000</ChapterTimeEnd>
<ChapterDisplay>
<ChapterString>A short chapter</ChapterString>
<ChapterLanguage>eng</ChapterLanguage>
</ChapterDisplay>
<ChapterAtom>
<ChapterTimeStart>00:00:46.000</ChapterTimeStart>
<ChapterTimeEnd>00:01:10.000</ChapterTimeEnd>
<ChapterDisplay>
<ChapterString>A part of that short chapter</ChapterString>
<ChapterLanguage>eng</ChapterLanguage>
</ChapterDisplay>
</ChapterAtom>
</ChapterAtom>
</EditionEntry>
</Chapters>
W tym formacie możliwe są trzy rzeczy, które nie są możliwe w prostym formacie rozdziałów:
-
Można ustawić znacznik czasu zakończenia rozdziału,
-
rozdziały mogą być zagnieżdżone,
-
można ustawić język i kraj.
Dystrybucja mkvtoolnix zawiera kilka przykładowych plików w podkatalogu doc, które można wykorzystać jako podstawę.
Poniżej wymieniono obsługiwane tagi XML, ich typy danych oraz, jeśli dotyczy, prawidłowe zakresy ich wartości:
Chapters (nadrzędny)
EditionEntry (nadrzędny)
EditionUID (liczba całkowita nieujemna, poprawny zakres: 1 <= wartość)
EditionFlagHidden (liczba całkowita nieujemna, poprawny zakres: 0 <= wartość <= 1)
EditionFlagDefault (liczba całkowita nieujemna, poprawny zakres: 0 <= wartość <= 1)
EditionFlagOrdered (liczba całkowita nieujemna, poprawny zakres: 0 <= wartość <= 1)
ChapterAtom (nadrzędny)
ChapterAtom (nadrzędny)
ChapterUID (liczba całkowita nieujemna, poprawny zakres: 1 <= wartość)
ChapterTimeStart (liczba całkowita nieujemna)
ChapterTimeEnd (liczba całkowita nieujemna)
ChapterFlagHidden (liczba całkowita nieujemna, poprawny zakres: 0 <= wartość <= 1)
ChapterFlagEnabled (liczba całkowita nieujmena, poprawny zakres: 0 <= wartość <= 1)
ChapterSegmentUID (liczba binarna, poprawny zakres: 1 <= długość w bajtach)
ChapterSegmentEditionUID (liczba całkowita nieujemna, poprawny zakres: 1 <= wartość)
ChapterPhysicalEquiv (liczba całkowita nieujemna)
ChapterTrack (nadrzędny)
ChapterTrackNumber (liczba całkowita nieujemna, poprawny zakres: 1 <= wartość)
ChapterDisplay (nadrzędny)
ChapterString (wyraz UTF-8)
ChapterLanguage (wyraz UTF-8)
ChapterCountry (wyraz UTF-8)
ChapterProcess (nadrzędny)
ChapterProcessCodecID (liczba całkowita nieujemna)
ChapterProcessPrivate (liczba binarna)
ChapterProcessCommand (nadrzędny)
ChapterProcessTime (liczba całkowita nieujemna)
ChapterProcessData (liczba binarna)
13.3. Czytanie rozdziałów z płyt Blu-ray#
mkvmerge(1) może odczytywać rozdziały z niezaszyfrowanych płyt Blu-ray. W tym celu można podać ścieżkę do jednej z list odtwarzania MPLS za pomocą parametru --chapters.
Przykład: --chapters /srv/blurays/BigBuckBunny/BDMV/PLAYLIST/00001.mpls
13.4. Czytanie rozdziałów z płyt DVD#
Jeśli MKVToolNix został skompilowany z biblioteką libdvdread(tm), mkvmerge(1) może odczytywać rozdziały z płyt DVD. W tym celu można podać ścieżkę do jednego z katalogów lub plików na płycie DVD za pomocą parametru --chapters. Ponieważ płyty DVD mogą zawierać więcej niż jeden tytuł, a każdy tytuł ma własny zestaw rozdziałów, na końcu argumentu z nazwą pliku można dodać dwukropek i żądany numer tytułu. Domyślny numer tytułu to 1.
Przykład: --chapters /srv/dvds/BigBuckBunny/VIDEO_TS:2
13.5. Uwagi ogólne#
Podczas dzielenia plików mkvmerge(1) odpowiednio dostosuje również rozdziały. Oznacza to, że każdy plik będzie zawierał tylko wpisy rozdziałów, które go dotyczą, a znaczniki czasu zostaną przesunięte tak, aby odpowiadały nowym znacznikom czasu każdego pliku wyjściowego.
mkvmerge(1) może kopiować rozdziały ze źródłowych plików Matroska(tm), chyba że zostanie to jawnie wyłączone opcją --no-chapters. Rozdziały ze wszystkich źródeł (plików Matroska(tm), plików Ogg, plików MP4, tekstowych plików rozdziałów) zwykle nie są łączone, lecz trafiają do osobnych elementów ChapterEditions. Tylko jeśli rozdziały są odczytywane z kilku plików Matroska(tm) lub XML, które mają takie same identyfikatory UID edycji, rozdziały zostaną połączone w jeden element ChapterEdition. Jeśli takie połączenie ma być wykonywane również w innych sytuacjach, użytkownik musi najpierw wyodrębnić rozdziały ze wszystkich źródeł za pomocą mkvextract(1), ręcznie połączyć pliki XML, a następnie je zmultipleksować.
14. Tagi#
14.1. Wprowadzenie#
Matroska(tm) wspiera rozszerzony zestaw tagów będący już nieaktualnym oraz nowy, prostszy system jaki jest używany w większości innych kontenerów: KLUCZ=WARTOŚĆ. Jednakże, w pliku Matroska(tm) te tagi mogą być również zagnieżdżone, i oba elementy KLUCZ oraz WARTOŚĆ żyją własnym życiem. Przykładowy plik example-tags-2.xml pokazuje jak używać nowego systemu.
14.2. Zakres tagów#
tagi Matroska(tm) nie odnoszą się z automatu do całego pliku. Mogą określać cały plik, ale mogą również określać różne części składowe pliku: jedną lub kilka ściezek, jeden lub kilka rozdziałów, a nawet kombinację obydwu. Odnośnik do specyfikacji Matroska dostarczy więcej informacji.
Należy pamiętać, że tagi są powiązane ze ścieżkami lub rozdziałami za pomocą elementu tagu Matroska(tm) Targets, a identyfikatory UID używane do tego powiązania nie są identyfikatorami ścieżek używanymi przez mkvmerge(1) w innych miejscach. Zamiast tego używane są identyfikatory UID, które mkvmerge(1) oblicza automatycznie (jeśli ścieżka pochodzi z formatu innego niż Matroska(tm)) lub które są kopiowane z pliku źródłowego, jeśli plik źródłowy ścieżki jest plikiem Matroska(tm). Dlatego przed przekazaniem pliku do mkvmerge(1) trudno jest określić, których identyfikatorów UID użyć w pliku tagów.
mkvmerge(1) udostępnia dwie opcje dodawania tagów do plików Matroska(tm): --global-tags i --tags. Różnica polega na tym, że pierwsza opcja, --global-tags, powoduje zastosowanie tagów do całego pliku poprzez usunięcie wszystkich wspomnianych wcześniej elementów Targets. Druga opcja, --tags, automatycznie wstawia identyfikator UID wygenerowany przez mkvmerge(1) dla tagu określonego za pomocą części TID opcji --tags.
14.3. Przykład#
Załóżmy, że chcesz dodać tagi do ścieżki wideo odczytanej z pliku AVI. Polecenie mkvmerge --identify file.avi informuje, że identyfikator ścieżki wideo (nie myl tego identyfikatora z UID!) wynosi 0. Utwórz więc plik tagów, pomiń wszystkie elementy Targets i wywołaj mkvmerge(1):
$ mkvmerge -o plik.mkv --tags 0:tagi.xml plik.avi
14.4. Format pliku tagów#
mkvmerge(1) obsługuje format plików tagów oparty na XML. Format ten jest bardzo ściśle wzorowany na specyfikacji Matroska. Zarówno dystrybucja binarna, jak i źródłowa MKVToolNix zawiera przykładowy plik example-tags-2.xml, który po prostu wymienia wszystkie znane tagi i może służyć jako podstawa rzeczywistych plików tagów.
Podstawowe informacje są następujące:
-
Elementem najwyższego poziomu musi być <Tags>.
-
Jeden logiczny tag znajduje się wewnątrz jednej pary znaczników XML <Tag>.
-
Białe spacje bezpośrednio przed i za zawartością znacznika są ignorowane.
14.5. Typy danych#
Nowy system tagowania Matroska(tm) zna tylko dwa typy danych: ciąg UTF-8 i typ binarny. Pierwszy jest używany dla nazwy tagu i elementu <String>, natomiast typ binarny jest używany dla elementu <Binary>.
Ponieważ dane binarne nie mieszczą się bezpośrednio w pliku XML, mkvmerge(1) obsługuje dwie dodatkowe metody przechowywania danych binarnych. Jeśli zawartość tagu XML rozpoczyna się od znaku „@”, następujący po nim tekst jest traktowany jako nazwa pliku. Zawartość odpowiedniego pliku jest kopiowana do elementu Matroska(tm).
W przeciwnym razie dane są oczekiwane w kodowaniu Base64. Jest to kodowanie, które przekształca dane binarne w ograniczony zestaw znaków ASCII i jest używane np. w programach pocztowych. mkvextract(1) wyprowadza dane elementów binarnych w kodowaniu Base64.
Przestarzały system tagowania obsługuje jeszcze kilka typów danych, które można znaleźć w oficjalnej specyfikacji tagów Matroska(tm). Ponieważ mkvmerge(1) nie obsługuje już tego systemu, typy te nie są tutaj opisane.
14.6. Znane tagi dla formatu XML#
Poniżej wymieniono obsługiwane tagi XML, ich typy danych oraz, jeśli dotyczy, prawidłowe zakresy ich wartości:
Tagi (master) Tag (master) Targets (master) TargetTypeValue (liczba całkowita bez znaku) TargetType (ciąg UTF-8) TrackUID (liczba całkowita bez znaku) EditionUID (liczba całkowita bez znaku) ChapterUID (liczba całkowita bez znaku) AttachmentUID (liczba całkowita bez znaku) Simple (master) Simple (master) Name (ciąg UTF-8) TagLanguage (ciąg UTF-8) DefaultLanguage (liczba całkowita bez znaku) String (ciąg UTF-8) Binary (binarny)
15. Informacje o segmencie#
Za pomocą pliku XML z informacjami o segmencie można ustawić określone wartości w polu nagłówka „informacje o segmencie” pliku Matroska(tm). Wszystkich tych wartości nie można ustawić za pomocą innych opcji wiersza poleceń.
Inne pola nagłówka „informacje o segmencie” można ustawiać za pomocą opcji wiersza poleceń, ale nie za pomocą pliku XML. Dotyczy to np. opcji --title i --timestamp-scale.
Istnieją również elementy, których nie można ustawić ani za pomocą opcji wiersza poleceń, ani plików XML. Należą do nich następujące elementy: DateUTC (znany również jako „data multipleksowania”), MuxingApp, WritingApp i Duration. Są one zawsze ustawiane przez mkvmerge(1).
Poniżej wymieniono obsługiwane tagi XML, ich typy danych oraz, jeśli dotyczy, prawidłowe zakresy ich wartości:
Info (master) SegmentUID (binarny, prawidłowy zakres: długość w bajtach == 16) SegmentFilename (ciąg UTF-8) PreviousSegmentUID (binarny, prawidłowy zakres: długość w bajtach == 16) PreviousSegmentFilename (ciąg UTF-8) NextSegmentUID (binarny, prawidłowy zakres: długość w bajtach == 16) NextSegmentFilename (ciąg UTF-8) SegmentFamily (binarny, prawidłowy zakres: długość w bajtach == 16) ChapterTranslate (master) ChapterTranslateEditionUID (liczba całkowita bez znaku) ChapterTranslateCodec (liczba całkowita bez znaku) ChapterTranslateID (binarny)
16. rozmieszczenie elementów w pliku Matroska#
Układ pliku Matroska(tm) jest dość elastyczny. mkvmerge(1) tworzy plik w zdefiniowany wcześniej sposób. Wynikowy plik wygląda następująco:
[nagłówek EBML] [segment {meta seek #1} [informacje o segmencie] [informacje o ścieżce] {załączniki} {rozdziały} [klaster 1] {klaster 2} ... {klaster n} {indeks cue} {meta seek #2} {tagi}]
Elementy w nawiasach klamrowych są opcjonalne i zależą od zawartości oraz użytych opcji. Kilka uwag:
-
meta seek nr 1 zawiera tylko niewielką liczbę elementów poziomu 1 i tylko wtedy, gdy faktycznie istnieją: załączniki, rozdziały, punkty cue, tagi oraz meta seek nr 2. Starsze wersje mkvmerge(1) umieszczały w tym elemencie meta seek również klastry. Dlatego konieczne było wykonanie pewnych niedokładnych szacunków w celu zarezerwowania wystarczającej ilości miejsca. Często kończyło się to niepowodzeniem. Obecnie w meta seek nr 2 przechowywane są tylko klastry, a meta seek nr 1 odwołuje się do elementu meta seek nr 2.
-
Elementy załączników, rozdziałów i tagów będą obecne tylko, jeśli zostaną dodane.
Najmniejszy możliwy plik Matroska(tm) wyglądałby następująco:
[nagłówek EBML] [segment [informacja o segmencie] [informacja o ścieżce] [klaster 1]]
Może tak być w przypadku plików zawierających wyłącznie dźwięk.
17. Zewnętrzne pliki kodów czasowych#
mkvmerge(1) pozwala użytkownikowi samodzielnie określić znaczniki czasu dla określonej ścieżki. Można tego użyć do tworzenia plików z wideo o zmiennej liczbie klatek na sekundę lub do uwzględniania przerw w audio. Klatka w tym przypadku jest jednostką, którą mkvmerge(1) tworzy osobno dla każdego bloku Matroska(tm). W przypadku wideo jest to dokładnie jedna klatka, a w przypadku audio jeden pakiet danego typu audio. Na przykład dla AC-3 będzie to pakiet zawierający 1536 próbek.
Pliki znaczników czasu używane podczas dołączania ścieżek do siebie należy określać tylko dla pierwszej części łańcucha ścieżek. Na przykład jeśli dołączasz dwa pliki, v1.avi i v2.avi, i chcesz użyć znaczników czasu, wiersz poleceń powinien wyglądać mniej więcej tak:
$ mkvmerge ... --timestamps 0:moje_kody_czasowe.txt v1.avi +v2.avi
mkvmerge(1) rozpoznaje cztery formaty. Pierwszy wiersz zawsze zawiera numer wersji. Puste wiersze, wiersze zawierające wyłącznie białe znaki oraz wiersze rozpoczynające się od „#” są ignorowane.
17.1. Format kodów czasowych v1#
Ten format rozpoczyna się od wiersza wersji. Drugi wiersz określa domyślną liczbę klatek na sekundę. Wszystkie kolejne wiersze zawierają trzy liczby oddzielone przecinkami: klatkę początkową (0 oznacza pierwszą klatkę), klatkę końcową oraz liczbę klatek w tym zakresie. FPS jest liczbą zmiennoprzecinkową z kropką „.” jako separatorem dziesiętnym. Zakresy mogą zawierać przerwy, dla których używana jest domyślna wartość FPS. Przykład:
# format kodów czasowych v1 przykładowo 27.930 800,1000,25 1500,1700,30
17.2. Format kodów czasowych v2#
W tym formacie każdy wiersz zawiera znacznik czasu odpowiadający danej klatce. Znacznik czasu musi być podany z dokładnością do milisekund. Może być liczbą zmiennoprzecinkową, ale nie musi nią być. Musisz podać co najmniej tyle wierszy ze znacznikami czasu, ile klatek znajduje się w ścieżce. Znaczniki czasu w tym pliku muszą być posortowane. Przykład dla 25 kl./s:
# format kodów czasowych v2 0 40 80
17.3. Format kodów czasowych v3#
W tym formacie każdy wiersz zawiera czas trwania w sekundach, po którym opcjonalnie podawana jest liczba klatek na sekundę. Obie wartości mogą być liczbami zmiennoprzecinkowymi. Jeśli liczba klatek na sekundę nie jest podana, używana jest wartość domyślna. W przypadku audio należy pozwolić kodekowi samodzielnie obliczać znaczniki czasu klatek. W tym celu należy użyć wartości 0.0 jako liczby klatek na sekundę. Można również tworzyć przerwy w strumieniu, używając słowa kluczowego „gap”, po którym podaje się czas trwania przerwy. Przykład dla pliku audio:
# format kodów czasowych v3 przykładowo 0.0 25.325 7.530,38.236 przerwa, 10.050 2.000,38.236
17.4. Format kodów czasowych v4#
Ten format jest identyczny z formatem v2. Jedyna różnica polega na tym, że znaczniki czasu nie muszą być posortowane. Ten format prawie nigdy nie powinien być używany.
18. Kody zakończenia#
mkvmerge(1) kończy działanie z jednym z trzech kodów wyjścia:
-
0 -- Ten kod zakończenia oznacza, że muksowanie zostało zakończone powodzeniem.
-
1 -- W tym przypadku mkvmerge(1) wyświetlił co najmniej jedno ostrzeżenie, ale multipleksowanie było kontynuowane. Ostrzeżenie jest poprzedzone tekstem „Warning:”. W zależności od występujących problemów wynikowy plik może być poprawny lub nie. Zaleca się sprawdzenie zarówno ostrzeżenia, jak i wynikowego pliku.
-
2 -- Ten kod wyjścia jest używany po wystąpieniu błędu. mkvmerge(1) kończy działanie natychmiast po wyświetleniu komunikatu o błędzie. Komunikaty o błędach obejmują zakres od nieprawidłowych argumentów wiersza poleceń, przez błędy odczytu/zapisu, aż po uszkodzone pliki.
19. Zmienne środowiskowe#
mkvmerge(1) używa domyślnych zmiennych określających ustawienia regionalne systemu (np. LANG oraz rodziny LC_*). Dodatkowe zmienne:
| Option | Description |
|---|---|
| MKVMERGE_DEBUG, MKVTOOLNIX_DEBUG i jego skrócona forma MTX_DEBUG# |
Zawartość jest traktowana tak, jakby została przekazana za pomocą opcji --debug. |
| MKVMERGE_ENGAGE, MKVTOOLNIX_ENGAGE i jego skrócona forma MTX_ENGAGE# |
Zawartość jest traktowana tak, jakby została przekazana za pomocą opcji --engage. |
20. Zobacz także#
mkvinfo(1), mkvextract(1), mkvpropedit(1), mkvtoolnix-gui(1)
21. Strona www#
Najnowsza wersja jest zawsze dostępna pod adresem domowym MKVToolNix.