
Media filesĪt a very high-level view, a media file is broken up into a container and its streams. Before we look at using FFmpeg, first we need to take a quick look at what a media file exactly is. In this article, we are interested in using it to convert files, so we won't be taking a deep dive into its entire feature set. It can be downloaded from the FFmpeg website or through most package managers.įFmpeg is a powerful tool that can do almost anything you can imagine with multimedia files. It's available on many different operating systems and is included in some operating systems by default. In this article I'll be using FFmpeg through the command-line tool ffmpeg, which is only a single, small piece of the FFmpeg project. Despite its name, it has nothing to do with the Moving Picture Experts Group or the myriad multimedia formats it has created. It's often used behind the scenes in many other media-related projects. Enter FFmpeg.įFmpeg is a collection of different projects for handling multimedia files. Tools like Audacity or Handbrake are fantastic, but sometimes you just want to change a file from one format into another quickly. There are many open source tools out there for editing, tweaking, and converting multimedia into exactly what you need. If in doubt about which method to use, try the concat demuxer. This method does not work for many formats, including MP4, due to the nature of these formats and the simplistic concatenation performed by this method. ffmpeg -i "concat:input1|input2" -codec copy output.mkv Use this method with formats that support file-level concatenation

$ ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.mp4įor Windows: (echo file 'first file.mp4' & echo file 'second file.mp4' )>list.txtįfmpeg -safe 0 -f concat -i list.txt -c copy output.mp4 Use this method when you want to avoid a re-encode and your format does not support file-level concatenation (most files used by general users do not support file-level concatenation). ffmpeg -i opening.mkv -i episode.mkv -i ending.mkv \ If you want to avoid the re-encode, you could re-encode just the inputs that don't match so they share the same codec and other parameters, then use the concat demuxer to avoid re-encoding everything. Note that this method performs a re-encode of all inputs. Use this method if your inputs do not have the same parameters (width, height, etc), or are not the same formats/codecs, or if you want to perform any filtering. FFmpeg has three concatenation methods: 1.
