


MP4 doesn't officially support AC3 audio so the audio track should be converted into a supported format (eg. Now you have remuxed streams from matroska container into mp4 container without losing any quality. Depending on usage AC3 audio track should be re-encoded into something else before muxing. I had to add -fps 24 option because MP4Box didn't detect video fps correctly. Saving to video.mp4: 0.500 secs Interleaving MP4Box -fps 24 -add video.h264 -add audio.ac3 video.mp4 AVC-H264 import - frame size 1280 x 720 at 24.000 FPS Container format: AVC/h.264 elementary streamĮxtracting track 2 with the CodecID 'A_AC3' to the file 'audio.ac3'. Mkvextract tracks video.mkv 1:video.h264 2:audio.ac3 Extracting track 1 with the CodecID 'V_MPEG4/ISO/AVC' to the file 'video.h264'. Then extract video and audio according to their tracks with: Mkvmerge -identify video.mkv File 'video.mkv': container: Matroska Get needed software sudo apt-get install gpac mkvtoolnixĮxtract video and audio from matroska fileįirst you need to check what tracks the matroska file contains with For example, mp4 does not support SubRip subtitles (. So check if your chosen container format, be it mkv, mp4 or even avi has support for all the content in your files (video, audio, subtitles, data, etc).

Some containers may not support some formats. Add -map 0 if you want to select all streams from the input. For example, if your input has two video streams and one audio stream then only the video stream with the largest frame size will be selected. Think of it like a copy and paste.ĭefault stream selection behavior is to select only one stream per stream type. codec copy stream copies, or "re-muxes", the streams from the input to the output without re-encoding. It auto-detects a Matroska to MP4 container conversion based on input/output filenames. It is one of the backends for many of the GUI tools mentioned in other answers.Ĭhanging container without re-enconding content could not be simpler: ffmpeg -i input.mkv -codec copy output.mp4 Libav is a fork of FFmpeg, which Ubuntu switched to for a few years until Ubuntu 15.04. Perhaps the easiest tool for that is ffmpeg, or avconv from the libav-tools package.
