Moritz Bunkus - ( Open Source)
MKVToolNix is a handy and powerful set of tools for easily creating and working with Matroska (.MKV) files.
MKVtoolnix is a handy application that helps you to work with Matroska - a multimedia container that allows to unite in a single file video, audio and subtitle tracks, taking the concept of mkvextract GUI but empowered with some additional features. The application lets you extract the audio, video and subtitles of MKV container, mix new audio tracks, videos or subtitles, convert videos and audios to Matroska (MKV) format, offering the possibility to choose the default audio or add more, and the same with subtitle tracks. In addition, you can retouch MKVToolnix quality and appearance of the video. MKVToolnix supports the many formats such as for video: 264, AVC, H.264, AVI, DRC, MP4, MPG, MPEG, M1V, M2V, EVO, MKV, OGG, MOV, RA, RAM, RMVB, VC1; audio: AC3, AAC, M4A, MP4, DTS, FLAC, OGG, MP2, MP3, MKA, TTA, WAV, WV and subtitles: SRT, ASS, SSA, USF, XML, IDX.
New features and enhancements:
mkvmerge: AVC/h.264 parser: mkvmerge will now drop all frames before the first key frame as they cannot be decoded properly anyway.
mkvmerge: HEVC/h.265 parser: mkvmerge will now drop all frames before the first key frame as they cannot be decoded properly anyway.
mkvmerge: HEVC/h.265 parser: added a workaround for invalid values for the "default display window" in the VUI parameters of sequence parameter sets.
Bug fixes:
mkvmerge: MP4 reader: fixed track offsets being wrong in certain situations regarding the presence or absence of edit lists (elst atoms) & composition timestamps (ctts atoms).
mkvmerge: MP4 reader: offsets in "ctts" are now always treated as signed integers, even with version 0 atoms.
mkvinfo: the timestamps of SimpleBlocks with negative timestamps are now shown correctly.
mkvmerge: Matroska reader: fixed handling BlockGroups and SimpleBlocks with negative timestamps.
mkvmerge: MP3 packetizer: the MP3 packetizer will no longer drop timestamps from source containers if they go backwards. This keeps A/V in sync for files where the source was in sync even though their timestamps arent monotonic increasing.
mkvmerge: AVC/h.264 parser: mkvmerge will now drop timestamps from the source container if no frame is emitted for that timestamp.
mkvmerge: HEVC/h.265 parser: mkvmerge will now drop timestamps from the source container if no frame is emitted for that timestamp.
mkvextract: SSA/ASS: fixed extraction when the "Format" line in the "[Events]" section contains less fields than the default for SSA/ASS would indicate.