Default ffmpeg codec when nothing is specified

Sam picture Sam · Jul 22, 2013 · Viewed 13.2k times · Source

If I import a file to use with ffmpeg but dont specify anything about the codecs of any of the streams, will ffmpeg do anything? Is the default action to just copy the codecs? Or will ffmpeg encode the input file using some default codec?

Would the following two commands be the same? Or will the second re-encode and take ages?

ffmpeg -i input.mkv -c:v copy -c:a copy output.mp4

ffmpeg -i input.mkv output.mp4

Answer

llogan picture llogan · Jul 22, 2013

If I import a file to use with ffmpeg but dont specify anything about the codecs of any of the streams, will ffmpeg do anything?

ffmpeg will re-encode each stream in the input using default encoders. The encoders used will depend on how you configured ffmpeg. For example, if available libx264 will be the default encoder for mp4 output, but if not then mpeg4 will be used. By default ffmpeg will only re-encode one stream of each type and will ignore the rest (see stream selection).

Of your two commands the first one will use stream copy mode for the video and audio. Your second command will re-encode.