English | 简体中文
Command line tool to make Dolby Vison mp4.
- Select tracks from variety media files (mp4, ts, mkv, hevc, aac, eac3...)
- Keep metadata / track delay from source file
- Set language and name for each track
- Set global metadata (cover, title, copyright, comment, encoding tool)
- Accepted SDR / HDR10 / Dolby Vision Profile 5 or Profile 8
- Compatible with Apple devices (ATV, iOS, iPadOS, macOS)
- ffmpeg (>=5.0)
Read track info, extract stream - mp4box (>=2.1)
Mux video, audio, subtitle together - mediainfo (latest CLI version)
Read metadata - mp4muxer
Mux ES to DoVi mp4
Please ensure the version of these software, or the output may not be correct!
- Use ffmpeg to extract ES stream
- Use mp4muxer to make DoVi mp4
- Use mp4box to make final mp4
Now, DoViMuxer can read/set:
- Global Title
- Global Copyright
- Global Comment
- Global EncodingTool
- Track Name
- Track Language (ISO 639-2)
- Track Extended Language Tag (RFC 4646 language tag, Details on unicode.org)
Description:
DoViMuxer. Tool to make Dolby Vison mp4.
Usage:
DoViMuxer [<output>] [options]
Arguments:
<output> File output name []
Options:
-i <FILE> (REQUIRED) Add input(s)
-map <file[:type[:index]]> Select and re-order tracks. Example:
-map 0:0 Input 0, track 0
-map 0:a:0 Input 0, first audio track
-meta <[type:]index:key=value> Set mp4 track metadata. Example:
-meta a:0:lang=eng:name="English (Original)":elng="en-US"
-meta 1:lang=jpn
note: lang: ISO 639-2, elng: RFC 4646 tags
-delay <[type:]index:time> Set mp4 track delay (milliseconds). Example:
-delay a:0:-5000
-delay s:0:1000
-forced <[s:]index> Set mp4 subtitle track to [Forced]. Example:
-forced s:3
-default <[type:]index> Set mp4 audio or subtitle track to [Default]. Example:
-default s:3
-default a:1
-cover <FILE> Set mp4 cover image
-comment <comment> Set mp4 comment
-copyright <copyright> Set mp4 copyright
-title <title> Set mp4 title
-tool <tool> Set mp4 encoding tool
-ffmpeg <FILE> Set ffmpeg path
-mp4box <FILE> Set mp4box path
-mp4muxer <FILE> Set mp4muxer path
-mediainfo <FILE> Set mediainfo path
-y Overwrite [default: False]
-dvhe Prefer 'dvhe' rather than 'dvh1' [default: False]
-hev1 Prefer 'hev1' rather than 'hvc1' [default: False]
--nochap Skip chapters copy [default: False]
--debug Show details [default: False]
--version Show version information
-?, -h, --help Show help and usage information
Read info:
DoViMuxer -i source.mp4 -i source2.eac3
Remux DoVi mkv to mp4 and keep meta:
DoViMuxer -i source.mkv output.mp4
Remux DoVi ts to mp4 and keep meta:
DoViMuxer -i source.ts output.mp4
Advance use:
DoviMuxer ^
-i v.mp4 ^
-i a.eac3 ^
-i zh.srt ^
-i zh-TW.srt ^
-i zh-HK.srt ^
-i en.srt ^
-meta a:0:lang=eng:name="English":elng="en-US" ^
-meta s:0:lang=chi:name="Chinese Simplified":elng="zh-Hans" ^
-meta s:1:lang=chi:name="Chinese Traditional (TW)":elng="zh-Hant-TW" ^
-meta s:2:lang=chi:name="Chinese Traditional (HK)":elng="zh-Hant-HK" ^
-meta s:3:lang=chi:name="English":elng="en-US" ^
-title "DoVi EP01" -comment "This a Test" -tool "DoviMuxer v1.0.0" output.mp4
On Apple Devices, elng determines how the player displays the mp4 track name.
Tags list: https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
Here are some common tags:
| Elng | Display Name (简体中文系统显示) |
|---|---|
| zh-CN | 中文 |
| zh-Hans | 简体中文 |
| zh-Hant | 繁体中文 |
| zh-Hant-TW | 繁体中文(台湾) |
| zh-Hant-HK | 繁体中文(香港) |
| en-US | 英文 |
| ... | ... |
| ... | ... |
You can also use some trick to make player show clear track name. For example, different audio codecs (Dolby Digital Plus and AAC) in the same language are not distinguishable by default, you can set elng like this:
elng=zh-DDP => 中文(DDP)
elng=zh-AAC => 中文(AAC)
- HEVC tag must be
hvc1ordvh1 - Timed text
hdlrset tosbtl - Video tracks, audio tracks and subtitle tracks in different alternate group
- Display name depends on the extended language tag instead of reading the
nameproperty ofudtaas most players on Windows do
- Dual layer DoVi