![]() |
MainConcept AVC Decoder Plug-in for FFmpeg 3.2.0
|
The following briefly describes how to use the MainConcept AVC/H.264 Decoder plug-in for FFmpeg.
The command line format should follow the structure below, depending on which operating system you are using.
The following is a sample command line:
ffmpeg -c omx_dec_avc -omx_core omxil_core.dll -omx_name OMX.MainConcept.dec_avc.video -omx_param_dec "skip=0:loop_filter=1:smp_mode=0:osd=0:low_latency=0:mv_precision=0:deinterlacing_flag=0" -i source.h264 output.yuv -y
-omx_core omxil_core.dll
, you need to specify -omx_core libomxil_core.so
on Linux.The following is a sample command line:
ffmpeg -c omx_dec_avc -omx_core libomxil_core.so -omx_name OMX.MainConcept.dec_avc.video -omx_param_dec "skip=0:loop_filter=1:smp_mode=0:osd=0:low_latency=0:mv_precision=0:deinterlacing_flag=0" -i source.h264 output.yuv -y
All settings below are optional parameters for omx_param_dec parameters (mc-codec-params)
Function | Description |
---|---|
omx_param_dec | Specifies parameters from the AVC/H.264 decoder on the command line. Use : as a separator and = as a value set for the key, e.g. -omx_param_dec "skip=0:loop_filter=1:smp_mode=0:osd=0:low_latency=0:mv_precision=0:deinterlacing_flag=0" These arguments match the MainConcept AVC/H.264 Decoder settings. See Parameters for more information. |
acc_mode | Specifies whether to use software ("sw"), Intel Quick Sync Video ("iqsv") or NVIDIA NVDEC ("nvdec") decoding. IQSV and NVDEC are GPU decoding modes. |
On Windows, you have two additional acceleration modes "dxva1" (deprecated) and "dxva2" that are using DirectX Video Acceleration.
-omx_core omxil_core.dll
, you need to specify -omx_core libomxil_core.so
on Linux.ffmpeg -c omx_dec_avc -omx_core omxil_core.dll -omx_name OMX.MainConcept.dec_avc.video -i source.h264 output.yuv -y
ffmpeg -c omx_dec_avc -omx_core omxil_core.dll -omx_name OMX.MainConcept.dec_avc.video -i source.mp4 output.yuv -y
ffmpeg -c omx_dec_avc -omx_core omxil_core.dll -omx_name OMX.MainConcept.dec_avc.video -omx_param_dec "acc_mode=2" -i source.mp4 output.yuv -y
ffmpeg -c omx_dec_avc -omx_core omxil_core.dll -omx_name OMX.MainConcept.dec_avc.video -omx_param_dec "acc_mode=0" -i source.mp4 output.yuv -y
ffmpeg -c omx_dec_avc -omx_core omxil_core.dll -omx_name OMX.MainConcept.dec_avc.video -omx_param_dec "skip=0:loop_filter=1:smp_mode=0:osd=0:low_latency=0:mv_precision=0:deinterlacing_flag=0" -i source.h264 output.yuv -y
ffmpeg -c omx_dec_avc -omx_core omxil_core.dll -omx_name OMX.MainConcept.dec_avc.video -omx_param_dec "skip=2" -i source.h264 output.yuv -y
ffmpeg -c omx_dec_avc -omx_core omxil_core.dll -omx_name OMX.MainConcept.dec_avc.video -omx_param_dec "skip=1" -i source.h264 output.yuv -y
ffmpeg -c omx_dec_avc -omx_core omxil_core.dll -omx_name OMX.MainConcept.dec_avc.video -omx_param_dec "loop_filter=0" -i source.h264 output.yuv -y
ffmpeg -c omx_dec_avc -omx_core omxil_core.dll -omx_name OMX.MainConcept.dec_avc.video -omx_param_dec "loop_filter=2" -i source.h264 output.yuv -y
ffmpeg -c omx_dec_avc -omx_core omxil_core.dll -omx_name OMX.MainConcept.dec_avc.video -omx_param_dec "smp=1" -i source.h264 output.yuv -y
ffmpeg -c omx_dec_avc -omx_core omxil_core.dll -omx_name OMX.MainConcept.dec_avc.video -omx_param_dec "smp=2" -i source.h264 output.yuv -y
ffmpeg -c omx_dec_avc -omx_core omxil_core.dll -omx_name OMX.MainConcept.dec_avc.video -omx_param_dec "osd=1" -i source.h264 output.yuv -y
ffmpeg -c omx_dec_avc -omx_core omxil_core.dll -omx_name OMX.MainConcept.dec_avc.video -omx_param_dec "mv_precision=1" -i source.h264 output.yuv -y
ffmpeg -c omx_dec_avc -omx_core omxil_core.dll -omx_name OMX.MainConcept.dec_avc.video -omx_param_dec "mv_precision=2" -i source.h264 output.yuv -y
ffmpeg -c omx_dec_avc -omx_core omxil_core.dll -omx_name OMX.MainConcept.dec_avc.video -omx_param_dec "deinterlacing_flag=2" -i source.h264 output.yuv -y
ffmpeg -c omx_dec_avc -omx_core omxil_core.dll -omx_name OMX.MainConcept.dec_avc.video -omx_param_dec "low_latency=1" -i source.h264 output.yuv -y
ffmpeg -c omx_dec_avc -omx_core omxil_core.dll -omx_name OMX.MainConcept.dec_avc.video -omx_param_dec "deinterlacing_flag=1" -i source.h264 output.yuv -y
ffmpeg -c omx_dec_avc -omx_core omxil_core.dll -omx_name OMX.MainConcept.dec_avc.video -omx_param_dec "deinterlacing_flag=3" -i source.h264 output.yuv -y
ffmpeg -vsync 0 -c omx_dec_avc -omx_core omxil_core.dll -omx_name OMX.MainConcept.dec_avc.video -omx_param_dec "acc_mode=nvdec" -i inputfile.h264 out.yuv -y
ffmpeg -vsync 0 -c omx_dec_avc -omx_core omxil_core.dll -omx_name OMX.MainConcept.dec_avc.video -omx_param_dec "acc_mode=iqsvc" -i inputfile.h264 out.yuv -y
ffmpeg -vsync 0 -c omx_dec_avc -omx_core omxil_core.dll -omx_name OMX.MainConcept.dec_avc.video -omx_param_dec "acc_mode=sw" -i inputfile.h264 out.yuv -y
The MainConcept AVC/H.264 Decoder plug-in for FFmpeg allows you to change the following decoder settings and parameters on the command-line.
acc_toolset_map
cpu:
hardware-accelerated decoding off (enables software decoding only)d3d9:
decodes on GPU using the DirectX 9Ex APId3d11:
decodes on GPU using the DirectX 11 APIskip
0
: obey quality messages, respond to quality messages from a downstream filter by skipping frames (default)1
: skip P and B frames, decode I-frames only (frame type is determined by the type of first slice of the first coded picture of a frame or complimentary field pair)2
: skip non-reference B-frames, decode I and P frames only, skips B-frames, even if they are used for reference _ 3
: skip none, decode all frames and disregard quality messages from a downstream filterloop_filter
0
: disable loop filter, so filtering will be skipped (note that this can result in artifacts in pictures (default)1
: filtering will be applied according to the stream parameters2
: filtering will be applied only to frames marked as 'reference' (note that this can result in artifacts in pictures)smp
0
: SMP is disabled, only single-thread decoding is used1
: SMP is automatically selected by the decoder, i.e. it checks for multi-threading and uses "by picture" mode, if available2
: SMP is enabled, pictures are decoded on logical CPUs in parallel3
: SMP is enabled, slices of the same picture are decoded on logical CPUs in parallel (this is relevant for multi-slice pictures)osd
0
: OSD disabled (default)1
: OSD enabled, i.e. information is displayed on the screenmv_precision
0
: quarter-pixel limit precision of motion vectors (default)1
: half-pixel limit precision of motion vectors2
: full-pixel limit precision of motion vectorsdeinterlacing_flag
0
: weave, do not deinterlace, i.e. output interleaved fields (default)1
: vertical filter deinterlace, applies vertical deinterlace functionality2
: field interpolation, deinterlace by interpolation3
: VMR deinterlacing, put correct interlacing flags on output samples and let VMR (Video Mixing Renderer) decide on deinterlacing4
: auto, automatic deinterlace if picture type is field or MBAFFlow_latency
0
: feature is disabled (default)1
: feature is enabled