FFmpeg does not directly allow or disallow specific file extensions; instead, it supports numerous encodings and file formats and can handle various types of media files. When using FFmpeg, you specify input and output files, including their respective extensions.
For example, if you want to convert an MP4 video file to WebM format, you can use the following command:
shellffmpeg -i input.mp4 output.webm
In this command, the -i flag is followed by the input file name (here, input.mp4), and the output file (output.webm) is directly specified at the end. FFmpeg infers the file format based on the input extension and selects the appropriate encoder based on the output extension.
If you attempt to use an unsupported file extension, it will provide an error message indicating that the file format is unrecognized. However, typically, FFmpeg supports most popular media file formats.
Sometimes, the file extension may be incorrect, or you may need to override FFmpeg's automatic format inference. In such cases, you can use the -f option to explicitly specify the format. For example:
shellffmpeg -f mp3 -i input.wrong_extension -c:a libvorbis output.ogg
In this example, even if the input file extension is incorrect (.wrong_extension), we explicitly tell FFmpeg that the input file is in MP3 format using -f mp3. Then, we specify the output file as Ogg Vorbis format and use the libvorbis encoder for encoding.
Overall, FFmpeg's handling of file extensions is based on its built-in support for various media formats. You can obtain a complete list of supported file formats and codecs by checking FFmpeg's documentation or using the ffmpeg -formats and ffmpeg -codecs commands.