FFmpeg: Select specific decoder
Posted: Fri Sep 28, 2018 8:39 pm
For some formats, FFmpeg may offer different encoders/decoders to choose from.
For encoding this is quite clear, as one has to specify which codec to use anyway - and therefore already choosing the desired encoder.
When decoding however the syntax for selecting which decoder is used is not that clear:
You specify the "codec" before the input filename.
For example if you want to framemd5 a Jpeg2000 file, you can choose between "libopenjpeg" and FFmpeg's internal/native decoder "jpeg2000":
Decoding using the native decoder:
Using the OpenJPEG library:
In the output, you will see the corresponding decoder actually used:
This is just an example using JPEG2000, but for other formats the principle is the same - only the names are different
For encoding this is quite clear, as one has to specify which codec to use anyway - and therefore already choosing the desired encoder.
When decoding however the syntax for selecting which decoder is used is not that clear:
You specify the "codec" before the input filename.
For example if you want to framemd5 a Jpeg2000 file, you can choose between "libopenjpeg" and FFmpeg's internal/native decoder "jpeg2000":
Decoding using the native decoder:
Code: Select all
$ ffmpeg -c:v jpeg2000 -i INPUT -f framemd5 OUTPUT.framemd5
Code: Select all
$ ffmpeg -c:v libopenjpeg -i INPUT -f framemd5 OUTPUT.framemd5
Stream mapping:
Stream #0:0 -> #0:0 (jpeg2000 (native) -> rawvideo (native))
Stream mapping:
Stream #0:0 -> #0:0 (jpeg2000 (libopenjpeg) -> rawvideo (native))
This is just an example using JPEG2000, but for other formats the principle is the same - only the names are different