ffmpeg libx264 h264_nvenc 编码参数解析
主要AVOptions
公有AVOptions
-preset
主要用来调节编码速度和质量的平衡,虽然libx264和h264_nvenc都有此参数,但是该参数的可选项却不完全相同:
preset是通过设置一系列编码参数来实现调节编码速度和质量的效果的,
e.g. -preset faster
是做了如下设置 --no-mixed-refs --rc-lookahead 20 --ref 2 --subme 4 --weightp 1
详细信息见文章最后一章的x264 encoding options。
libx264 有10个选项
速度由快到慢,速度越慢,质量越好,压缩比越大;默认是medium。
- ultrafast
- superfast
- veryfast
- faster
- fast
- medium
- slow
- slower
- veryslow
- placebo
h264_nvenc 有11个选项
默认是medium。
- slow
- medium
- fast
- hp
- hq
- bd
- ll
- llhq
- llhp
- lossless
- losslesshp
针对 libx264做过简单的各选项对比测试,结果如下图
-profile
用来设置画质级别, 默认级别为 high:
- Baseline Profile:基本画质。支持I/P 帧,只支持无交错(Progressive)和CAVLC;
- Main profile:主流画质。提供I/P/B 帧,支持无交错(Progressive)和交错(Interlaced), 也支持CAVLC 和CABAC 的支持;
- High profile:高级画质。在main Profile 的基础上增加了8x8内部预测、自定义量化、 无损视频编码和更多的YUV 格式;
H.264 Baseline profile和Main profile都是针对8位样本数据、4:2:0格式(YUV)的视频序列。在相同配置情况下,High profile(HP)可以比Main profile(MP)降低10%的码率。 根据应用领域的不同,Baseline profile多应用于实时通信领域,Main profile多应用于流媒体领域,High profile则多应用于广电和存储领域。
除了这三项之外,high还衍生出了 high10、 high422、 high444、high444p 等参数。。。。。
该参数覆盖的用户设置项见文章最后一章的x264 encoding options。
-level
-crf
-cq
crf可以根据视频的运动和静止动态的进行压缩。
与crf、cq、qp、vbr、cbr相关的解析可以参考:Understanding Rate Control Modes (x264, x265, vpx) 和 CRF Guide (Constant Rate Factor in x264 and x265)
libx264
-crf d Select the quality for constant quality mode (from -1 to FLT_MAX) (default -1)
h264_nvenc
-cq Set target quality level (0 to 51, 0 means automatic) for constant quality mode in VBR rate control (from 0 to 51) (default 0)
-qp
类似于
crf
,但相同比特率下质量更差,建议使用crf
libx264
Constant quantization parameter rate control method (from -1 to INT_MAX) (default -1)
h264_nvenc
Constant quantization parameter rate control method (from -1 to 51) (default -1)
libx264 专有参数
-tune
为特定类型的源或情况调整设置
主要参数有
- film ( 电影、真人类型)
- animation (动画)
- grain (需要保留大量的grain时用,高比特率编码)
- stillimage (静态图像编码时使用)
- psnr (为提高psnr做了优化的参数)
- ssim (为提高ssim做了优化的参数)
- fastdecode (可以快速解码的参数)
- zerolatency (零延迟,用在需要非常低的延迟的情况下,比如电视电话会议的编码)
详细 help 信息
libx264 AVOptions
查看指令
ffmpeg -h encoder=libx264
ffmpeg version 4.1 Copyright (c) 2000-2018 the FFmpeg developersbuilt with Apple LLVM version 10.0.0 (clang-1000.11.45.5)configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1_1 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gpl --enable-libmp3lame --enable-libopus --enable-libsnappy --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-opencl --enable-videotoolboxlibavutil 56. 22.100 / 56. 22.100libavcodec 58. 35.100 / 58. 35.100libavformat 58. 20.100 / 58. 20.100libavdevice 58. 5.100 / 58. 5.100libavfilter 7. 40.101 / 7. 40.101libavresample 4. 0. 0 / 4. 0. 0libswscale 5. 3.100 / 5. 3.100libswresample 3. 3.100 / 3. 3.100libpostproc 55. 3.100 / 55. 3.100
Encoder libx264 [libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10]:General capabilities: delay threadsThreading capabilities: autoSupported pixel formats: yuv420p yuvj420p yuv422p yuvj422p yuv444p yuvj444p nv12 nv16 nv21 yuv420p10le yuv422p10le yuv444p10le nv20le
libx264 AVOptions:-preset <string> E..V..... Set the encoding preset (cf. x264 --fullhelp) (default "medium")-tune <string> E..V..... Tune the encoding params (cf. x264 --fullhelp)-profile <string> E..V..... Set profile restrictions (cf. x264 --fullhelp)-fastfirstpass <boolean> E..V..... Use fast settings when encoding first pass (default true)-level <string> E..V..... Specify level (as defined by Annex A)-passlogfile <string> E..V..... Filename for 2 pass stats-wpredp <string> E..V..... Weighted prediction for P-frames-a53cc <boolean> E..V..... Use A53 Closed Captions (if available) (default true)-x264opts <string> E..V..... x264 options-crf <float> E..V..... Select the quality for constant quality mode (from -1 to FLT_MAX) (default -1)-crf_max <float> E..V..... In CRF mode, prevents VBV from lowering quality beyond this point. (from -1 to FLT_MAX) (default -1)-qp <int> E..V..... Constant quantization parameter rate control method (from -1 to INT_MAX) (default -1)-aq-mode <int> E..V..... AQ method (from -1 to INT_MAX) (default -1)none E..V.....variance E..V..... Variance AQ (complexity mask)autovariance E..V..... Auto-variance AQautovariance-biased E..V..... Auto-variance AQ with bias to dark scenes-aq-strength <float> E..V..... AQ strength. Reduces blocking and blurring in flat and textured areas. (from -1 to FLT_MAX) (default -1)-psy <boolean> E..V..... Use psychovisual optimizations. (default auto)-psy-rd <string> E..V..... Strength of psychovisual optimization, in <psy-rd>:<psy-trellis> format.-rc-lookahead <int> E..V..... Number of frames to look ahead for frametype and ratecontrol (from -1 to INT_MAX) (default -1)-weightb <boolean> E..V..... Weighted prediction for B-frames. (default auto)-weightp <int> E..V..... Weighted prediction analysis method. (from -1 to INT_MAX) (default -1)none E..V.....simple E..V.....smart E..V.....-ssim <boolean> E..V..... Calculate and print SSIM stats. (default auto)-intra-refresh <boolean> E..V..... Use Periodic Intra Refresh instead of IDR frames. (default auto)-bluray-compat <boolean> E..V..... Bluray compatibility workarounds. (default auto)-b-bias <int> E..V..... Influences how often B-frames are used (from INT_MIN to INT_MAX) (default INT_MIN)-b-pyramid <int> E..V..... Keep some B-frames as references. (from -1 to INT_MAX) (default -1)none E..V.....strict E..V..... Strictly hierarchical pyramidnormal E..V..... Non-strict (not Blu-ray compatible)-mixed-refs <boolean> E..V..... One reference per partition, as opposed to one reference per macroblock (default auto)-8x8dct <boolean> E..V..... High profile 8x8 transform. (default auto)-fast-pskip <boolean> E..V..... (default auto)-aud <boolean> E..V..... Use access unit delimiters. (default auto)-mbtree <boolean> E..V..... Use macroblock tree ratecontrol. (default auto)-deblock <string> E..V..... Loop filter parameters, in <alpha:beta> form.-cplxblur <float> E..V..... Reduce fluctuations in QP (before curve compression) (from -1 to FLT_MAX) (default -1)-partitions <string> E..V..... A comma-separated list of partitions to consider. Possible values: p8x8, p4x4, b8x8, i8x8, i4x4, none, all-direct-pred <int> E..V..... Direct MV prediction mode (from -1 to INT_MAX) (default -1)none E..V.....spatial E..V.....temporal E..V.....auto E..V.....-slice-max-size <int> E..V..... Limit the size of each slice in bytes (from -1 to INT_MAX) (default -1)-stats <string> E..V..... Filename for 2 pass stats-nal-hrd <int> E..V..... Signal HRD information (requires vbv-bufsize; cbr not allowed in .mp4) (from -1 to INT_MAX) (default -1)none E..V.....vbr E..V.....cbr E..V.....-avcintra-class <int> E..V..... AVC-Intra class 50/100/200 (from -1 to 200) (default -1)-me_method <int> E..V..... Set motion estimation method (from -1 to 4) (default -1)dia E..V.....hex E..V.....umh E..V.....esa E..V.....tesa E..V.....-motion-est <int> E..V..... Set motion estimation method (from -1 to 4) (default -1)dia E..V.....hex E..V.....umh E..V.....esa E..V.....tesa E..V.....-forced-idr <boolean> E..V..... If forcing keyframes, force them as IDR frames. (default false)-coder <int> E..V..... Coder type (from -1 to 1) (default default)default E..V.....cavlc E..V.....cabac E..V.....vlc E..V.....ac E..V.....-b_strategy <int> E..V..... Strategy to choose between I/P/B-frames (from -1 to 2) (default -1)-chromaoffset <int> E..V..... QP difference between chroma and luma (from INT_MIN to INT_MAX) (default -1)-sc_threshold <int> E..V..... Scene change threshold (from INT_MIN to INT_MAX) (default -1)-noise_reduction <int> E..V..... Noise reduction (from INT_MIN to INT_MAX) (default -1)-x264-params <string> E..V..... Override the x264 configuration using a :-separated list of key=value parameters
h264_nvenc AVOptions
查看指令
ffmpeg -h encoder=h264_nvenc
ffmpeg version 3.3.8 Copyright (c) 2000-2018 the FFmpeg developersbuilt with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-36)configuration: --prefix=/root/ffmpeg_build --pkg-config-flags=--static --extra-cflags='-I/root/ffmpeg_build/include -I/usr/local/cuda/include' --extra-ldflags='-L/root/ffmpeg_build/lib -L/usr/local/cuda/lib64' --extra-libs=-lpthread --extra-libs=-lm --bindir=/root/bin --enable-gpl --enable-libfdk_aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree --enable-cuda --enable-cuvid --enable-nvenc --enable-libnpplibavutil 55. 58.100 / 55. 58.100libavcodec 57. 89.100 / 57. 89.100libavformat 57. 71.100 / 57. 71.100libavdevice 57. 6.100 / 57. 6.100libavfilter 6. 82.100 / 6. 82.100libswscale 4. 6.100 / 4. 6.100libswresample 2. 7.100 / 2. 7.100libpostproc 54. 5.100 / 54. 5.100
Encoder h264_nvenc [NVIDIA NVENC H.264 encoder]:General capabilities: delayThreading capabilities: noneSupported pixel formats: yuv420p nv12 p010le yuv444p yuv444p16le bgr0 rgb0 cuda
h264_nvenc AVOptions:-preset <int> E..V.... Set the encoding preset (from 0 to 11) (default medium)default E..V....slow E..V.... hq 2 passesmedium E..V.... hq 1 passfast E..V.... hp 1 passhp E..V....hq E..V....bd E..V....ll E..V.... low latencyllhq E..V.... low latency hqllhp E..V.... low latency hplossless E..V....losslesshp E..V....-profile <int> E..V.... Set the encoding profile (from 0 to 3) (default main)baseline E..V....main E..V....high E..V....high444p E..V....-level <int> E..V.... Set the encoding level restriction (from 0 to 51) (default auto)auto E..V....1 E..V....1.0 E..V....1b E..V....1.0b E..V....1.1 E..V....1.2 E..V....1.3 E..V....2 E..V....2.0 E..V....2.1 E..V....2.2 E..V....3 E..V....3.0 E..V....3.1 E..V....3.2 E..V....4 E..V....4.0 E..V....4.1 E..V....4.2 E..V....5 E..V....5.0 E..V....5.1 E..V....-rc <int> E..V.... Override the preset rate-control (from -1 to INT_MAX) (default -1)constqp E..V.... Constant QP modevbr E..V.... Variable bitrate modecbr E..V.... Constant bitrate modevbr_minqp E..V.... Variable bitrate mode with MinQPll_2pass_quality E..V.... Multi-pass optimized for image quality (only for low-latency presets)ll_2pass_size E..V.... Multi-pass optimized for constant frame size (only for low-latency presets)vbr_2pass E..V.... Multi-pass variable bitrate mode-rc-lookahead <int> E..V.... Number of frames to look ahead for rate-control (from -1 to INT_MAX) (default -1)-surfaces <int> E..V.... Number of concurrent surfaces (from 0 to 64) (default 32)-cbr <boolean> E..V.... Use cbr encoding mode (default false)-2pass <boolean> E..V.... Use 2pass encoding mode (default auto)-gpu <int> E..V.... Selects which NVENC capable GPU to use. First GPU is 0, second is 1, and so on. (from -2 to INT_MAX) (default any)any E..V.... Pick the first device availablelist E..V.... List the available devices-delay <int> E..V.... Delay frame output by the given amount of frames (from 0 to INT_MAX) (default INT_MAX)-no-scenecut <boolean> E..V.... When lookahead is enabled, set this to 1 to disable adaptive I-frame insertion at scene cuts (default false)-forced-idr <boolean> E..V.... If forcing keyframes, force them as IDR frames. (default false)-b_adapt <boolean> E..V.... When lookahead is enabled, set this to 0 to disable adaptive B-frame decision (default true)-spatial-aq <boolean> E..V.... set to 1 to enable Spatial AQ (default false)-temporal-aq <boolean> E..V.... set to 1 to enable Temporal AQ (default false)-zerolatency <boolean> E..V.... Set 1 to indicate zero latency operation (no reordering delay) (default false)-nonref_p <boolean> E..V.... Set this to 1 to enable automatic insertion of non-reference P-frames (default false)-strict_gop <boolean> E..V.... Set 1 to minimize GOP-to-GOP rate fluctuations (default false)-aq-strength <int> E..V.... When Spatial AQ is enabled, this field is used to specify AQ strength. AQ strength scale is from 1 (low) - 15 (aggressive) (from 1 to 15) (default 8)-cq <int> E..V.... Set target quality level (0 to 51, 0 means automatic) for constant quality mode in VBR rate control (from 0 to 51) (default 0)-aud <boolean> E..V.... Use access unit delimiters (default false)-bluray-compat <boolean> E..V.... Bluray compatibility workarounds (default false)-init_qpP <int> E..V.... Initial QP value for P frame (from -1 to 51) (default -1)-init_qpB <int> E..V.... Initial QP value for B frame (from -1 to 51) (default -1)-init_qpI <int> E..V.... Initial QP value for I frame (from -1 to 51) (default -1)-qp <int> E..V.... Constant quantization parameter rate control method (from -1 to 51) (default -1)
x264 encoding options
查看指令
x264 --fullhelp
x264 core:155 r2917 0a84d98
Syntax: x264 [options] -o outfile infileInfile can be raw (in which case resolution is required),or YUV4MPEG (*.y4m),or Avisynth if compiled with support (yes).or libav* formats if compiled with lavf support (no) or ffms support (no).
Outfile type is selected by filename:.264 -> Raw bytestream.mkv -> Matroska.flv -> Flash Video.mp4 -> MP4 if compiled with GPAC or L-SMASH support (no)
Output bit depth: 8/10
.
Options:-h, --help List basic options--longhelp List more options--fullhelp List all optionsExample usage:Constant quality mode:x264 --crf 24 -o <output> <input>Two-pass with a bitrate of 1000kbps:x264 --pass 1 --bitrate 1000 -o <output> <input>x264 --pass 2 --bitrate 1000 -o <output> <input>Lossless:x264 --qp 0 -o <output> <input>Maximum PSNR at the cost of speed and visual quality:x264 --preset placebo --tune psnr -o <output> <input>Constant bitrate at 1000kbps with a 2 second-buffer:x264 --vbv-bufsize 2000 --bitrate 1000 -o <output> <input>Presets:--profile <string> Force the limits of an H.264 profileOverrides all settings.- baseline:--no-8x8dct --bframes 0 --no-cabac--cqm flat --weightp 0No interlaced.No lossless.- main:--no-8x8dct --cqm flatNo lossless.- high:No lossless.- high10:No lossless.Support for bit depth 8-10.- high422:No lossless.Support for bit depth 8-10.Support for 4:2:0/4:2:2 chroma subsampling.- high444:Support for bit depth 8-10.Support for 4:2:0/4:2:2/4:4:4 chroma subsampling.--preset <string> Use a preset to select encoding settings [medium]Overridden by user settings.- ultrafast:--no-8x8dct --aq-mode 0 --b-adapt 0--bframes 0 --no-cabac --no-deblock--no-mbtree --me dia --no-mixed-refs--partitions none --rc-lookahead 0 --ref 1--scenecut 0 --subme 0 --trellis 0--no-weightb --weightp 0- superfast:--no-mbtree --me dia --no-mixed-refs--partitions i8x8,i4x4 --rc-lookahead 0--ref 1 --subme 1 --trellis 0 --weightp 1- veryfast:--no-mixed-refs --rc-lookahead 10--ref 1 --subme 2 --trellis 0 --weightp 1- faster:--no-mixed-refs --rc-lookahead 20--ref 2 --subme 4 --weightp 1- fast:--rc-lookahead 30 --ref 2 --subme 6--weightp 1- medium:Default settings apply.- slow:--direct auto --rc-lookahead 50 --ref 5--subme 8 --trellis 2- slower:--b-adapt 2 --direct auto --me umh--partitions all --rc-lookahead 60--ref 8 --subme 9 --trellis 2- veryslow:--b-adapt 2 --bframes 8 --direct auto--me umh --merange 24 --partitions all--ref 16 --subme 10 --trellis 2--rc-lookahead 60- placebo:--bframes 16 --b-adapt 2 --direct auto--slow-firstpass --no-fast-pskip--me tesa --merange 24 --partitions all--rc-lookahead 60 --ref 16 --subme 11--trellis 2--tune <string> Tune the settings for a particular type of sourceor situationOverridden by user settings.Multiple tunings are separated by commas.Only one psy tuning can be used at a time.- film (psy tuning):--deblock -1:-1 --psy-rd <unset>:0.15- animation (psy tuning):--bframes {+2} --deblock 1:1--psy-rd 0.4:<unset> --aq-strength 0.6--ref {Double if >1 else 1}- grain (psy tuning):--aq-strength 0.5 --no-dct-decimate--deadzone-inter 6 --deadzone-intra 6--deblock -2:-2 --ipratio 1.1--pbratio 1.1 --psy-rd <unset>:0.25--qcomp 0.8- stillimage (psy tuning):--aq-strength 1.2 --deblock -3:-3--psy-rd 2.0:0.7- psnr (psy tuning):--aq-mode 0 --no-psy- ssim (psy tuning):--aq-mode 2 --no-psy- fastdecode:--no-cabac --no-deblock --no-weightb--weightp 0- zerolatency:--bframes 0 --force-cfr --no-mbtree--sync-lookahead 0 --sliced-threads--rc-lookahead 0--slow-firstpass Don't force these faster settings with --pass 1:--no-8x8dct --me dia --partitions none--ref 1 --subme {2 if >2 else unchanged}--trellis 0 --fast-pskipFrame-type options:-I, --keyint <integer or "infinite"> Maximum GOP size [250]-i, --min-keyint <integer> Minimum GOP size [auto]--no-scenecut Disable adaptive I-frame decision--scenecut <integer> How aggressively to insert extra I-frames [40]--intra-refresh Use Periodic Intra Refresh instead of IDR frames-b, --bframes <integer> Number of B-frames between I and P [3]--b-adapt <integer> Adaptive B-frame decision method [1]Higher values may lower threading efficiency.- 0: Disabled- 1: Fast- 2: Optimal (slow with high --bframes)--b-bias <integer> Influences how often B-frames are used [0]--b-pyramid <string> Keep some B-frames as references [normal]- none: Disabled- strict: Strictly hierarchical pyramid- normal: Non-strict (not Blu-ray compatible)--open-gop Use recovery points to close GOPsOnly available with b-frames--no-cabac Disable CABAC-r, --ref <integer> Number of reference frames [3]--no-deblock Disable loop filter-f, --deblock <alpha:beta> Loop filter parameters [0:0]--slices <integer> Number of slices per frame; forces rectangularslices and is overridden by other slicing options--slices-max <integer> Absolute maximum slices per frame; overridesslice-max-size/slice-max-mbs when necessary--slice-max-size <integer> Limit the size of each slice in bytes--slice-max-mbs <integer> Limit the size of each slice in macroblocks (max)--slice-min-mbs <integer> Limit the size of each slice in macroblocks (min)--tff Enable interlaced mode (top field first)--bff Enable interlaced mode (bottom field first)--constrained-intra Enable constrained intra prediction.--pulldown <string> Use soft pulldown to change frame rate- none, 22, 32, 64, double, triple, euro (requires cfr input)--fake-interlaced Flag stream as interlaced but encode progressive.Makes it possible to encode 25p and 30p Blu-Raystreams. Ignored in interlaced mode.--frame-packing <integer> For stereoscopic videos define frame arrangement- 0: checkerboard - pixels are alternatively from L and R- 1: column alternation - L and R are interlaced by column- 2: row alternation - L and R are interlaced by row- 3: side by side - L is on the left, R on the right- 4: top bottom - L is on top, R on bottom- 5: frame alternation - one view per frame- 6: mono - 2D frame without any frame packing- 7: tile format - L is on top-left, R split acrossRatecontrol:-q, --qp <integer> Force constant QP (0-81, 0=lossless)-B, --bitrate <integer> Set bitrate (kbit/s)--crf <float> Quality-based VBR (-12-51) [23.0]--rc-lookahead <integer> Number of frames for frametype lookahead [40]--vbv-maxrate <integer> Max local bitrate (kbit/s) [0]--vbv-bufsize <integer> Set size of the VBV buffer (kbit) [0]--vbv-init <float> Initial VBV buffer occupancy [0.9]--crf-max <float> With CRF+VBV, limit RF to this valueMay cause VBV underflows!--qpmin <integer> Set min QP [0]--qpmax <integer> Set max QP [81]--qpstep <integer> Set max QP step [4]--ratetol <float> Tolerance of ABR ratecontrol and VBV [1.0]--ipratio <float> QP factor between I and P [1.40]--pbratio <float> QP factor between P and B [1.30]--chroma-qp-offset <integer> QP difference between chroma and luma [0]--aq-mode <integer> AQ method [1]- 0: Disabled- 1: Variance AQ (complexity mask)- 2: Auto-variance AQ- 3: Auto-variance AQ with bias to dark scenes--aq-strength <float> Reduces blocking and blurring in flat andtextured areas. [1.0]-p, --pass <integer> Enable multipass ratecontrol- 1: First pass, creates stats file- 2: Last pass, does not overwrite stats file- 3: Nth pass, overwrites stats file--stats <string> Filename for 2 pass stats ["x264_2pass.log"]--no-mbtree Disable mb-tree ratecontrol.--qcomp <float> QP curve compression [0.60]--cplxblur <float> Reduce fluctuations in QP (before curve compression) [20.0]--qblur <float> Reduce fluctuations in QP (after curve compression) [0.5]--zones <zone0>/<zone1>/... Tweak the bitrate of regions of the videoEach zone is of the form<start frame>,<end frame>,<option>where <option> is eitherq=<integer> (force QP)or b=<float> (bitrate multiplier)--qpfile <string> Force frametypes and QPs for some or all framesFormat of each line: framenumber frametype QPQP is optional (none lets x264 choose). Frametypes: I,i,K,P,B,b.K=<I or i> depending on open-gop settingQPs are restricted by qpmin/qpmax.Analysis:-A, --partitions <string> Partitions to consider ["p8x8,b8x8,i8x8,i4x4"]- p8x8, p4x4, b8x8, i8x8, i4x4- none, all(p4x4 requires p8x8. i8x8 requires --8x8dct.)--direct <string> Direct MV prediction mode ["spatial"]- none, spatial, temporal, auto--no-weightb Disable weighted prediction for B-frames--weightp <integer> Weighted prediction for P-frames [2]- 0: Disabled- 1: Weighted refs- 2: Weighted refs + Duplicates--me <string> Integer pixel motion estimation method ["hex"]- dia: diamond search, radius 1 (fast)- hex: hexagonal search, radius 2- umh: uneven multi-hexagon search- esa: exhaustive search- tesa: hadamard exhaustive search (slow)--merange <integer> Maximum motion vector search range [16]--mvrange <integer> Maximum motion vector length [-1 (auto)]--mvrange-thread <int> Minimum buffer between threads [-1 (auto)]-m, --subme <integer> Subpixel motion estimation and mode decision [7]- 0: fullpel only (not recommended)- 1: SAD mode decision, one qpel iteration- 2: SATD mode decision- 3-5: Progressively more qpel- 6: RD mode decision for I/P-frames- 7: RD mode decision for all frames- 8: RD refinement for I/P-frames- 9: RD refinement for all frames- 10: QP-RD - requires trellis=2, aq-mode>0- 11: Full RD: disable all early terminations--psy-rd <float:float> Strength of psychovisual optimization ["1.0:0.0"]#1: RD (requires subme>=6)#2: Trellis (requires trellis, experimental)--no-psy Disable all visual optimizations that worsenboth PSNR and SSIM.--no-mixed-refs Don't decide references on a per partition basis--no-chroma-me Ignore chroma in motion estimation--no-8x8dct Disable adaptive spatial transform size-t, --trellis <integer> Trellis RD quantization. [1]- 0: disabled- 1: enabled only on the final encode of a MB- 2: enabled on all mode decisions--no-fast-pskip Disables early SKIP detection on P-frames--no-dct-decimate Disables coefficient thresholding on P-frames--nr <integer> Noise reduction [0]--deadzone-inter <int> Set the size of the inter luma quantization deadzone [21]--deadzone-intra <int> Set the size of the intra luma quantization deadzone [11]Deadzones should be in the range 0 - 32.--cqm <string> Preset quant matrices ["flat"]- jvt, flat--cqmfile <string> Read custom quant matrices from a JM-compatible fileOverrides any other --cqm* options.--cqm4 <list> Set all 4x4 quant matricesTakes a comma-separated list of 16 integers.--cqm8 <list> Set all 8x8 quant matricesTakes a comma-separated list of 64 integers.--cqm4i, --cqm4p, --cqm8i, --cqm8p <list>Set both luma and chroma quant matrices--cqm4iy, --cqm4ic, --cqm4py, --cqm4pc <list>Set individual quant matricesVideo Usability Info (Annex E):
The VUI settings are not used by the encoder but are merely suggestions to
the playback equipment. See doc/vui.txt for details. Use at your own risk.--overscan <string> Specify crop overscan setting ["undef"]- undef, show, crop--videoformat <string> Specify video format ["undef"]- component, pal, ntsc, secam, mac, undef--range <string> Specify color range ["auto"]- auto, tv, pc--colorprim <string> Specify color primaries ["undef"]- undef, bt709, bt470m, bt470bg, smpte170m,smpte240m, film, bt2020, smpte428,smpte431, smpte432--transfer <string> Specify transfer characteristics ["undef"]- undef, bt709, bt470m, bt470bg, smpte170m,smpte240m, linear, log100, log316,iec61966-2-4, bt1361e, iec61966-2-1,bt2020-10, bt2020-12, smpte2084, smpte428,arib-std-b67--colormatrix <string> Specify color matrix setting ["???"]- undef, bt709, fcc, bt470bg, smpte170m,smpte240m, GBR, YCgCo, bt2020nc, bt2020c,smpte2085, chroma-derived-nc,chroma-derived-c, ICtCp--chromaloc <integer> Specify chroma sample location (0 to 5) [0]--alternative-transfer <string> Specify an alternative transfercharacteristics ["undef"]- same values as --transfer--nal-hrd <string> Signal HRD information (requires vbv-bufsize)- none, vbr, cbr (cbr not allowed in .mp4)--filler Force hard-CBR and generate filler (implied by--nal-hrd cbr)--pic-struct Force pic_struct in Picture Timing SEI--crop-rect <string> Add 'left,top,right,bottom' to the bitstream-levelcropping rectangleInput/Output:-o, --output <string> Specify output file--muxer <string> Specify output container format ["auto"]- auto, raw, mkv, flv--demuxer <string> Specify input container format ["auto"]- auto, raw, y4m, avs--input-fmt <string> Specify input file format (requires lavf support)--input-csp <string> Specify input colorspace format for raw input- valid csps for `raw' demuxer:i420, yv12, nv12, nv21, i422, yv16, nv16, yuyv,uyvy, i444, yv24, bgr, bgra, rgb--output-csp <string> Specify output colorspace ["i420"]- i420, i422, i444, rgb--input-depth <integer> Specify input bit depth for raw input--output-depth <integer> Specify output bit depth--input-range <string> Specify input color range ["auto"]- auto, tv, pc--input-res <intxint> Specify input resolution (width x height)--index <string> Filename for input index file--sar width:height Specify Sample Aspect Ratio--fps <float|rational> Specify framerate--seek <integer> First frame to encode--frames <integer> Maximum number of frames to encode--level <string> Specify level (as defined by Annex A)--bluray-compat Enable compatibility hacks for Blu-ray support--avcintra-class <integer> Use compatibility hacks for AVC-Intra class- 50, 100, 200--stitchable Don't optimize headers based on video contentEnsures ability to recombine a segmented encode-v, --verbose Print stats for each frame--no-progress Don't show the progress indicator while encoding--quiet Quiet Mode--log-level <string> Specify the maximum level of logging ["info"]- none, error, warning, info, debug--psnr Enable PSNR computation--ssim Enable SSIM computation--threads <integer> Force a specific number of threads--lookahead-threads <integer> Force a specific number of lookahead threads--sliced-threads Low-latency but lower-efficiency threading--thread-input Run Avisynth in its own thread--sync-lookahead <integer> Number of buffer frames for threaded lookahead--non-deterministic Slightly improve quality of SMP, at the cost of repeatability--cpu-independent Ensure exact reproducibility across different cpus,as opposed to letting them select different algorithms--asm <integer> Override CPU detection--no-asm Disable all CPU optimizations--opencl Enable use of OpenCL--opencl-clbin <string> Specify path of compiled OpenCL kernel cache--opencl-device <integer> Specify OpenCL device ordinal--dump-yuv <string> Save reconstructed frames--sps-id <integer> Set SPS and PPS id numbers [0]--aud Use access unit delimiters--force-cfr Force constant framerate timestamp generation--tcfile-in <string> Force timestamp generation with timecode file--tcfile-out <string> Output timecode v2 file from input timestamps--timebase <int/int> Specify timebase numerator and denominator<integer> Specify timebase numerator for input timecode fileor specify timebase denominator for other input--dts-compress Eliminate initial delay with container DTS hackFiltering:--vf, --video-filter <filter0>/<filter1>/... Apply video filtering to the input fileFilter options may be specified in <filter>:<option>=<value> format.Available filters:crop:left,top,right,bottomremoves pixels from the edges of the frameselect_every:step,offset1[,...]apply a selection pattern to input framesstep: the number of frames in the patternoffsets: the offset into the step to select a framesee: http://avisynth.nl/index.php/Select#SelectEvery
ffmpeg libx264 h264_nvenc 编码参数解析相关推荐
- FFmpeg使用X264编码参数
X264编码参数 下面为相关参数,其中加粗为常用参数. preset(字符串):编码器预设参数,取值:ultrafast,superfast,veryfast,faster,fast,medium,s ...
- FFmpeg基础:获取音视频的各种编码参数
文章目录 获取视频编码参数 获取音频编码参数 上一篇文章中介绍了音视频的各种编码参数的概念,这里介绍一下如何通过ffmpeg库获取一个视频文件的各种音视频编码参数.在对视频文件进行处理和转码的时候这些 ...
- ffmpeg使用x264编码的配置+ ffmpeg与 x264编码器参数完整对照表
ffmpeg使用x264编码的配置+ ffmpeg与 x264编码器参数完整对照表 分类: 多媒体 2010-07-13 11:31 1072人阅读 评论(0) 收藏 举报 转载自:扶凯[http:/ ...
- 音视频编解码 -- 编码参数 CRF
之前多多少少接触过一些编解码参数,CRF 参数也用过,但是最近在和朋友们聊天时,说到使用 FFMPEG 过程中碰到 CRF 参数,以及具体作用流程,这个之前一直没有跟踪过,也没有详细记录过,所以吊起了 ...
- 最简单的视频编码器:基于libx264(编码YUV为H.264)
===================================================== 最简单的视频编码器系列文章列表: 最简单的视频编码器:编译 最简单的视频编码器:基于libx ...
- ffmpeg设置h264编码IDR间隔
在ffmpeg中,编码h264时,想强制刷出一个I帧,比较容易,但是想强制刷出IDR帧,却没有明确的说明. 而在x264的头文件中,可以看到一个参数说明: int i_keyint_max; /* F ...
- FFmpeg最常用命令参数详解及应用实例
FFMPEG堪称自由软件中最完备的一套多媒体支持库,它几乎实现了所有当下常见的数据封装格式.多媒体传输协议以及音视频编解码器,提供了录制.转换以及流化音视频的完整解决方案. ffmpeg命令行参数解释 ...
- FFMPEG 摄像头 命令行参数 录像 直播 rtmp
解决FFMPEG采集音视频时不同步的问题: 添加参数 -copyinkf 例如: ffmpeg.exe -copyinkf -f dshow -i video="USB2.0 UVC V ...
- 【Android RTMP】音频数据采集编码 ( FAAC 音频编码参数设置 | FAAC 编码器创建 | 获取编码器参数 | 设置 AAC 编码规格 | 设置编码器输入输出参数 )
文章目录 一. 头文件.成员变量准备 二. 创建 FAAC 编码器 三. 获取并设置 FAAC 编码器参数 四. 设置 FAAC 编码器编码标准 五. 设置 FAAC 编码器 AAC 编码规格 六. ...
最新文章
- java工作流 数据库设计_Java开发网
- 质量追溯和防窜货管理解决分析
- matlab中的containers.Map()
- iOS-Xcode代码统计
- linux使用find命令_如何在Linux中使用FIND
- (140)FPGA面试题-FPGA IP简介
- 性能测试之JMeter测试结果写入Excel
- c语言实现文档中字符串的替换,C语言 16行代码实现字符串中指定字符串替换
- 《Java深入解析》阅读笔记二(运算符与表达式)
- DPDK - mlx5 drop action 性能 patch
- 传输线模型(分布参数模型)
- 【JAVA】根据汉字拼音首字母排序 不同类型处理
- H.264视频的RTP有效负载格式 (RFC-6184)
- 技术分享| 如何使用FFmpeg命令处理音视频
- Processing 案例 | 诡异的八爪鱼
- python 怎么输出实际的根号2_Python怎么输出根式?
- 【AD】Altium Designer 新建一个项目
- 画论13 朱景玄《唐朝名画录》
- vs2017编译iconv
- .htaccess文件
热门文章
- [足式机器人]Part3机构运动微分几何学分析与综合Ch02-3 平面机构离散运动鞍点综合——【读书笔记】
- 【DG】 DataGuard 中处理archive gap的方法
- 基于php和mysql实现的简易民航订票系统实验
- VTM10.0代码学习5:coding_unit()cu_pred_data()
- An adaptive LeNet-5 model for anomaly detection(翻译)
- Android斗地主游戏源码
- 使用Eclips开发java程序
- linux将多个文件打包成一个文件,将多个文件打包成一个shell
- CodeBlocks 20.3无法编译C++文件
- HEVC 高级运动向量预测技术(AMVP)