I recorded with the iPAD, however I used a tape recorder which then saved the ambient audio as a MP3. If this was an AVI I could easily open VirtualDUB and use directstream copy to save without reencode.
Yamb is also failing to do the same, so sticking with MP4 and doing any lossless change is not an option. Nothing you can do except re-encode the video or stick to mp4. When mkvtoolnix remuxes the mp4 file this flag is lost because such a flag doesn't exist for mkv. The video has been recorded upside-down but a flag in the MP4 container tells players to rotate the video by 180° upon display (so that display is corrected). * MKVToolNix GUI: header editor: non-mandatory elements couldn't be removed anymore due to a regression while fixing #2320. This simplifies calculation when appending files and fixes rare cases of when progress report was obvious wrong (e.g. It's now based upon the total size of all source files and the current position within them instead of the number of frames/blocks to be processed. * mkvmerge: complete rewrite of the progress handling. * The timestamp of the first packet after a gap in the middle of the stream is now calculated based on the Ogg page the packet belongs to, and not based on the timestamps before the gap. This circumvents certain rounding errors. * mkvmerge will no longer insert "discard padding" elements if the difference between a) the calculated number of samples in the packet according to the granule position and b) the actual number of samples as calculated from the bitstream is one sample or less and if the packet isn't the last one in the stream. mkvmerge will now shift all timestamps up to 0 in such a case instead of inserting "discard padding" elements all over the place. * It also improves handling of invalid files where the first Ogg packet's granule position is smaller than the number of samples in the first packet (= the first sample's timestamp is smaller than 0). mkvmerge will keep those offsets now and inserts "discard padding" only where it's actually needed. * This fixes the first timestamp if the first Ogg packet's granule position is larger than the number of samples in the first packet (= if the first sample's timestamp is bigger than 0). Instead the algorithm is based on the Ogg page's granule position and which packet number is currently timestamped (special handling for the first and last packets in the stream). * mkvmerge: Ogg Opus reader: packet timestamps aren't calculated by summing up the duration of all packets starting with timestamp 0 anymore. * mkvmerge: audio packetizers: mkvmerge will now keep discard padding values if they're present for packets read from Matroska files. This avoids the JSON library throwing an exception and mkvmerge aborting on such data. * mkvmerge: JSON identification: mkvmerge will ensure that all strings passed to the JSON output modules are valid UTF-8 encoded strings by replacing invalid bytes with placeholder characters. Otherwise the first key frame of a video track might be dropped if it isn't the first in presentation order. * mkvmerge: MPEG TS reader: when reading MPLS mkvmerge will now compare the MPLS's start and end timestamps against the transport stream's PTS instead of its DTS. * mkvmerge: TrueHD/MLP packetizer dialog volume normalization removal isn't attempted if the track is an MLP track as the operation is only supported for TrueHD, not MLP. * mkvmerge: MLP code: fixed various issues preventing MLP from being parsed correctly. This is the HEVC analog to what was fixed for AVC in #2325.
* mkvmerge: HEVC/h.265: fixed file identification failing for certain elementary streams due to internal buffers not being cleared properly. * mkvmerge: AVC/h.264: fixed file identification failing for certain elementary streams due to internal buffers not being cleared properly.
Together with an additional fix to how translation files are located, MKVToolNix can now use all interface languages on macOS, too. * macOS: translations: updated the `build.sh` script to build `libiconv` and a complete `gettext`. * Linux: starting with release 25 an AppImage will be provided which should run on any Linux distribution released around the time of CentOS 7/Ubuntu 14.04 or later. * mkvmerge: Matroska & MPEG transport stream readers: the encoding of text subtitles read from Matroska files can now be changed with the `-sub-charset` parameter. * mkvmerge: SRT/ASS/SSA/WebVTT text subtitles: a warning is now emitted if invalid 8-bit characters are encountered outside valid multi-byte UTF-8 sequences. * mkvmerge: SRT/ASS/SSA text subtitles: for files for which no encoding has been specified, mkvmerge will try UTF-8 first before falling back to the system's default encoding.