MAKEMKVCON(1)

NAME
makemkvcon - Decrypt DVD and Blu-ray discs to your hard disk using a simple command line interface.

SYNOPSIS
makemkvcon [OPTIONS] COMMAND [PARAMETERS]

DESCRIPTION
MakeMKV is a simple solution to convert video that you own into a free and patents-unencumbered format which can be played everywhere. MakeMKV is a format converter, otherwise called a "transcoder". It converts the video clips from proprietary (and usually encrypted) disc into a set of MKV files, preserving most information but not changing it in any way. Additionally MakeMKV can instantly stream decrypted video without intermediate conversion to wide range of media players.

GENERAL OPTIONS
The options described below apply to all makemkvcon COMMANDS.

--messages=FILE
    Output all messages to FILE instead of stdandard output. The following special FILE names are recognized:
    FILE | Special Meaning
    -stdout | standard output
    -stderr | standard error
    -null | disable output

--progress=FILE
    Output all progress messages to FILE. By default no progress is output. The same special FILE names as supported by --messages are recognized, with one addition:
    FILE | Special Meaning
    -same | output to the same FILE as --messages

--debug[=FILE]
    Enable debug messages, and, optionally, output those messages to FILE instead of the debug location specified in program preferences.

--directio=BOOL
    Disable direct disc access if BOOL is false. Enable direct disc access if BOOL is true.

--noscan
    Do not access any media while scanning a disc, and do not check for media insertion and removal. This option may be helpful when other applications are actively accessing discs in other drives. It does not, however, alleviate the need to MakeMKV to have exclusive access to the disc drive you specify to this program.

--cache=SIZE
    Specify the maximum SIZE of the read cache used by MakeMKV (in megabytes). By default this program may consume a very large amount of memory. Although this high memory consumption allows MakeMKV to quickly and efficiently buffer chunks of data from the DVD or Blu-ray disc, it may noticeably slow down memory-constrained systems or those with very little free RAM. If you choose to limit the cache SIZE with this option, please keep in mind that 128 MB is the recommended minimum for streaming and backup, at least 512 MB is necessary for smooth DVD conversion, and at least 1024 MB is necessary for smooth Blu-ray conversion.

CONVERSION OPTIONS
The options described below are for source conversion and apply only to the mkv COMMAND.

--minlength=LENGTH
    Only capture titles that are at least LENGTH seconds long.

STREAMING OPTIONS
The options described below are for network related and apply only to the stream COMMAND.

--upnp=BOOL
    Disable Universal Plug-and-Play (UPNP) streaming if BOOL is false. Enable UPNP streaming if BOOL is true.

--bindip=ADDRESS
    Exclusively bind the UPNP server to ADDRESS. By default server binds to the first available address, and its local web server listens on all available addresses.

--bindport=PORT
    Bind the web server to PORT instead of 51000.

BACKUP OPTIONS
The options described below related to backup purposes and apply only to the backup COMMAND.

--decrypt
    Decrypt stream files during backup. By default a strict backup will be made, which means nothing is decrypted sans this option.

AUTOMATION OPTIONS
The options described below are designed to be used by those wishing to automate aspects of this program. They are particularly useful in shell scripts.

-r, --robot
    Enable automation mode. In this mode MakeMKV will output more information in a format that is easier to parse by scripts (particularly with regular expressions), but may slightly hinder direct human consumption. All output is line-based and flushed on line end. All strings are quoted, and all control characters and quotes are escaped by backlashes. If you intend to automate this program, it is highly recommended that you use this option. Some options make reference to apdefs.h, which is among the open-source components of MakeMKV and can be found in the makemkv-oss source package in Debian. These values will not change in future versions.

COMMANDS
Each instantiation of this program requires a COMMAND. This COMMAND determines, on a holistic level, which action MakeMKV should attempt to perform. All supported commands are described below.

info SOURCE
    Print detailed descriptory information about the SOURCE disc.

mkv SOURCE TITLE_ID DESTINATION_DIRECTORY
    Save the title on the SOURCE disc with the ID TITLE_ID to an MKV file in the directory DESTINATION_DIRECTORY.

stream SOURCE
    Start a local streaming server backed by the titles on SOURCE.

backup SOURCE DESTINATION_DIRECTORY
    Faithfully backup the contents of SOURCE to the DESTINATION_DIRECTORY on your hard disk.

SOURCES
Since MakeMKV is primarily designed to operate on optical media, each COMMAND must be immediately postfixed by a SOURCE. However, because this program supports a wide range of input sources - including ISO images, directories, optical discs, and raw devices - each SOURCE must be specified according to the source specification detailed below. The prefixes mandated by this specification hint to MakeMKV the type of media it should attempt to access. If in doubt, try the disc SOURCE; it is the most commonly used.
SOURCE | Description
iso:FILE | Open the ISO image specified by FILE.
file:DIRECTORY | Open the files contained in DIRECTORY.
disc:DISC_ID | Open the optical disc with the ID DISC_ID. Use the info command to get a list available DISC_ID's.
dev:DEVICE | Open the raw device with the name DEVICE. On Linux the first optical disc drive (and hence the first available DEVICE) is typically /dev/sr0.

MESSAGE FORMATS
There are several different types of messages that MakeMKV might generate. Each type is documented below. The short codes documented first are used to prefix messages in --robot mode. Message Output Format: MSG:code,flags,count,message,format,param0,param1,...
MSG | Description
code | unique message code which should be used to identify a particular string in a language-neutral way
flags | message flags (see AP_UIMSG_xxx flags in apdefs.h)
count | number of parameters
message | raw message string suitable for output
format | localized format string used for the message
param[0-9]+ | parameter for the message
Current Progress Title Format: PRGC:code,id,name
Total Progress Title Format: PRGT:code,id,name
PRGC|PRGT | Description
code | unique message code
id | operation sub-id
name | name string
Progress Bar Format (for current and total progress): PRGV:current,total,max
PRGV | Description
current | current progress value
total | total progress value
max | maximum possible value for a progress bar (constant)
Drive Scan Message Format: DRV:index,visible,enabled,flags,drive_name,disc_name
DRV | Description
index | drive index
visible | set to 1 if drive is present
enabled | set to 1 if drive is accessible
flags | media flags (see AP_DskFsFlagXXX in apdefs.h)
drive name | drive name string
disc name | disc name string
Disc Information Output Format: TCOUT:count
TCOUT | Description
count | number of titles on the disc
Disc Information Format: CINFO:id,code,value
Title Information Format: TINFO:id,code,value
Stream Information Format: SINFO:id,code,value
CINFO|TINFO|SINFO | Description
id | attribute id (see AP_ItemAttributeId in apdefs.h)
code | message code (if the attribute value is a constant string)
value | attribute value

EXAMPLES
The following examples demonstrate the proper syntax for performing various common operations. If you need more help interpreting them, read the documentation above, and use common sense. 1. Copy all titles from the first disc, and save them as decrypted MKV files in the Videos directory in your home folder.
    makemkvcon mkv disc:0 all ~/Videos 2. List all available disc drives.
    makemkvcon -r --cache=1 info disc:9999 3. Decrypt and backup the first disc to /tmp in automation mode with progress output.
    makemkvcon backup --decrypt --cache=16 --noscan -r --progress=-same disc:0 /tmp 4. Start a UPNP streaming server with all output suppressed on port 51000 with the address 192.168.1.102.
    makemvcon stream --upnp=1 --cache=128 --bindip=192.168.1.102 --bindport=51000 --messages=-none

AUTHOR
This manual page was written by Karl Lenz <xorangekiller@gmail.com> for the Debian project (but may be used by others).

COPYRIGHT
2007-2014 GuinpinSoft Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. The MakeMKV console interface is provided "as is" with no warranty. This program is proprietary software: you can redistribute it under the terms of the MakeMKV End-User License Agreement (EULA) as provided by GuinpinSoft Incorporated. On Debian systems, the complete text of this license can be found in "/usr/share/doc/makemkv-cli/copyright".

SEE ALSO
makemkv(1), mmdtsdec(1), ffmpeg(1), vlc(1), mpv(1)