From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id D1B9A47F1E for ; Sat, 4 Nov 2023 21:26:39 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D35FA68CE02; Sat, 4 Nov 2023 23:26:36 +0200 (EET) Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9D57A68CE02 for ; Sat, 4 Nov 2023 23:26:30 +0200 (EET) Received: by mail-ej1-f42.google.com with SMTP id a640c23a62f3a-9d2e6c8b542so470116566b.0 for ; Sat, 04 Nov 2023 14:26:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1699133189; x=1699737989; darn=ffmpeg.org; h=user-agent:in-reply-to:content-disposition:mime-version:references :mail-followup-to:message-id:subject:to:from:date:from:to:cc:subject :date:message-id:reply-to; bh=i/wyyOtyTy0ZUs5cjawI4EAc3AKaEKcT7ANGkyOHyQY=; b=GWW95jSkqLzMqnwulC7ddZkP/+Xew65ZqpRJrBSfBBzk2iUf6DjilyGcX/Az6r41Xz v73+cCQAew0Eqbyny96ln+Vd0AKzgJtrzn9xRpBaOfcXaMFKHPVRqyBOGAajXY+AV+ZT JVv/LYDcWsfvL6oh1Ra/Lz9rIXAPrUGU+7yUtm4LMkjniYk2Bm5LqSm2rW1asespyNsa efkt955HLXMJJLgAxdKyb0wbZ5lFDztagzg5IJ6CNrCdwigrOERMNLvlrdVQKEhKuSkM pCVMonYyp3y5QIBebTbx1pZcXmR8XN7ZdG+fzC7t8FG/dToCNv3LXU9ZVimt5ZEJ45M2 hmbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699133189; x=1699737989; h=user-agent:in-reply-to:content-disposition:mime-version:references :mail-followup-to:message-id:subject:to:from:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=i/wyyOtyTy0ZUs5cjawI4EAc3AKaEKcT7ANGkyOHyQY=; b=QXddfBdgviqiQADehDfhsk50dpPIumuevVwDN9Z+8ZFqiBcc8W3wMptAT39JTgklvR XSdamSzZoFjgEgAMNM9wQE4PayE/a7MvA2/oNE9l2PcpGMh9OvOn4ktEj10uoHCZvy71 ghp8/bCOXNGHoeJFVNnL0LQcRVudslW8Z749TpsjCxVQP3RQ8JE8jwye/HhGkDLUnRBk JMa8+IW3GK1+veVw1R+4CXHW52iCtxoIHd+4/Qx/T0+sEGb1nMH4CX3cI8Ma/pngiKqX x8OJ+yuaxp1wuPYxr6dOnbeX+3ePaUMBW2jvb2R8zF9k7soc+4g1s7Y6UMMTMnGYuJod DHFQ== X-Gm-Message-State: AOJu0Yx8YiQM/A7R65pYUE6pefavZzE5CRQCnmjLaANXWIyf8fARnQlZ Uv5FPdDq79qBO5yE5aIB2N3/HQcqV6v5Gw== X-Google-Smtp-Source: AGHT+IGhZsG8EbOiPmIJSg0bdzGyPDN4VLpyW1l/a1s/W/KdzLVPaEztlvI36wf+9j5vHK0SMPrsHQ== X-Received: by 2002:a17:907:6093:b0:9b2:955a:e375 with SMTP id ht19-20020a170907609300b009b2955ae375mr11534586ejc.23.1699133188780; Sat, 04 Nov 2023 14:26:28 -0700 (PDT) Received: from mariano (dynamic-adsl-84-220-189-10.clienti.tiscali.it. [84.220.189.10]) by smtp.gmail.com with ESMTPSA id m21-20020a1709066d1500b009b9aa8fffdasm2312609ejr.131.2023.11.04.14.26.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 04 Nov 2023 14:26:28 -0700 (PDT) Received: by mariano (Postfix, from userid 1000) id 0C368BFCDA; Sat, 4 Nov 2023 22:26:27 +0100 (CET) Date: Sat, 4 Nov 2023 22:26:26 +0100 From: Stefano Sabatini To: FFmpeg development discussions and patches Message-ID: Mail-Followup-To: FFmpeg development discussions and patches References: <20230826011030.76116-1-stefasab@gmail.com> <263c33e9-2584-1f08-a752-43a937596957@gyani.pro> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="m+7LpteFT5Dc6SeM" Content-Disposition: inline In-Reply-To: <263c33e9-2584-1f08-a752-43a937596957@gyani.pro> User-Agent: Mutt/2.1.4 (2021-12-11) Subject: Re: [FFmpeg-devel] [PATCH 1/3] doc/encoders/libx264: review and extend option description X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: --m+7LpteFT5Dc6SeM Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On date Wednesday 2023-09-06 11:04:49 +0530, Gyan Doshi wrote: [...] Sorry for the slow reply. > > -Argument is a list of @var{key}=@var{value} couples separated by > > -":". In @var{filter} and @var{psy-rd} options that use ":" as a separator > > -themselves, use "," instead. They accept it as well since long ago but this > > -is kept undocumented for some reason. > > +@option{x264-param} is functionally the same as the @option{x264opts}, > > +but is duplicated for compatibility with the Libav fork. > > There is a difference, in that x264opts accepts boolean args without a > value. Right. > > + > > +The argument for both options is a list of @var{key}=@var{value} > > +couples separated by ":". In @var{filter} and @var{psy-rd} options > > +that use ":" as a separator themselves, use "," instead. They accept > > +it as well since long ago but this is kept undocumented for some > > +reason. > > + > > +For example, the options might be provided as: > > +@example > > +level=30:bframes=0:weightp=0:cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1:subq=6:8x8dct=0:trellis=0 > > +@end example > > For example to specify libx264 encoding options with @command{ffmpeg}: > > @example > > ffmpeg -i foo.mpg -c:v libx264 -x264opts keyint=123:min-keyint=20 -an out.mkv > > @end example > > +To get the complete list of the libx264 options, invoke the command > > +@command{x264 --fullhelp} or consult the libx264 documentation. > > May want to make it clear that x264 refers to the standalone CLI tool. Isn't that clear enough? (we use the same formula in other places, e.g. in x265 docs). --m+7LpteFT5Dc6SeM Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="0001-doc-encoders-libx264-review-and-extend-option-descri.patch" >From a11eafe5a61a572f4e9ab9e4ab9907bba98300e4 Mon Sep 17 00:00:00 2001 From: Stefano Sabatini Date: Sat, 26 Aug 2023 01:10:09 +0200 Subject: [PATCH] doc/encoders/libx264: review and extend option description Also, merge x264opts and x264-opts option docs to avoid duplication and make it clearer that they provide mostly the same functionality. --- doc/encoders.texi | 65 ++++++++++++++++++++++++++--------------------- 1 file changed, 36 insertions(+), 29 deletions(-) diff --git a/doc/encoders.texi b/doc/encoders.texi index 8b2ab937d1..f2aba10627 100644 --- a/doc/encoders.texi +++ b/doc/encoders.texi @@ -2421,6 +2421,10 @@ To get a more accurate and extensive documentation of the libx264 options, invoke the command @command{x264 --fullhelp} or consult the libx264 documentation. +In the list below, note that the @command{x264} option name is shown +in parentheses after the libavcodec corresponding name, in case there +is a direct mapping. + @table @option @item b (@emph{bitrate}) Set bitrate in bits/s. Note that FFmpeg's @option{b} option is @@ -2428,17 +2432,19 @@ expressed in bits/s, while @command{x264}'s @option{bitrate} is in kilobits/s. @item bf (@emph{bframes}) +Number of B-frames between I and P-frames @item g (@emph{keyint}) +Maximum GOP size @item qmin (@emph{qpmin}) -Minimum quantizer scale. +Minimum quantizer scale @item qmax (@emph{qpmax}) -Maximum quantizer scale. +Maximum quantizer scale @item qdiff (@emph{qpstep}) -Maximum difference between quantizer scales. +Maximum difference between quantizer scales @item qblur (@emph{qblur}) Quantizer curve blur @@ -2447,7 +2453,7 @@ Quantizer curve blur Quantizer curve compression factor @item refs (@emph{ref}) -Number of reference frames each P-frame can use. The range is from @var{0-16}. +Number of reference frames each P-frame can use. The range is @var{0-16}. @item level (@emph{level}) Set the @code{x264_param_t.i_level_idc} value in case the value is @@ -2469,7 +2475,8 @@ Sets the threshold for the scene change detection. @item trellis (@emph{trellis}) Performs Trellis quantization to increase efficiency. Enabled by default. -@item nr (@emph{nr}) +@item nr (@emph{nr}) +Noise reduction @item me_range (@emph{merange}) Maximum range of the motion search in pixels. @@ -2550,6 +2557,7 @@ open GOP by setting it to @code{-cgop}. The result is similar to the behavior of @command{x264}'s @option{--open-gop} option. @item rc_init_occupancy (@emph{vbv-init}) +Initial VBV buffer occupancy @item preset (@emph{preset}) Set the encoding preset. @@ -2595,7 +2603,7 @@ Set AQ strength, reduce blocking and blurring in flat and textured areas. Use psychovisual optimizations when set to 1. When set to 0, it has the same effect as @command{x264}'s @option{--no-psy} option. -@item psy-rd (@emph{psy-rd}) +@item psy-rd (@emph{psy-rd}) Set strength of psychovisual optimization, in @var{psy-rd}:@var{psy-trellis} format. @@ -2627,7 +2635,7 @@ to 1. @item avcintra-class (@emph{class}) Configure the encoder to generate AVC-Intra. -Valid values are 50,100 and 200 +Valid values are 50, 100 and 200 @item bluray-compat (@emph{bluray-compat}) Configure the encoder to be compatible with the bluray standard. @@ -2678,8 +2686,8 @@ Set loop filter parameters, in @var{alpha}:@var{beta} form. Set fluctuations reduction in QP (before curve compression). @item partitions (@emph{partitions}) -Set partitions to consider as a comma-separated list of. Possible -values in the list: +Set partitions to consider as a comma-separated list of +values. Possible values in the list: @table @samp @item p8x8 @@ -2735,19 +2743,32 @@ Variable bit rate. Constant bit rate (not allowed in MP4 container). @end table -@item x264opts (N.A.) -Set any x264 option, see @command{x264 --fullhelp} for a list. +@item x264opts @var{opts} +@item x264-params @var{opts} +Override the x264 configuration using a :-separated list of key=value +options. -Argument is a list of @var{key}=@var{value} couples separated by -":". In @var{filter} and @var{psy-rd} options that use ":" as a separator -themselves, use "," instead. They accept it as well since long ago but this -is kept undocumented for some reason. +The argument for both options is a list of @var{key}=@var{value} +couples separated by ":". With @option{x264opts} the value can be +omitted, the value @code{1} is assumed in that case. + +For @var{filter} and @var{psy-rd} options values that use ":" as a +separator themselves, use "," instead. They accept it as well since +long ago but this is kept undocumented for some reason. + +For example, the options might be provided as: +@example +level=30:bframes=0:weightp=0:cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1:subq=6:8x8dct=0:trellis=0 +@end example For example to specify libx264 encoding options with @command{ffmpeg}: @example ffmpeg -i foo.mpg -c:v libx264 -x264opts keyint=123:min-keyint=20 -an out.mkv @end example +To get the complete list of the libx264 options, invoke the command +@command{x264 --fullhelp} or consult the libx264 documentation. + @item a53cc @var{boolean} Import closed captions (which must be ATSC compatible format) into output. Only the mpeg2 and h264 decoders provide these. Default is 1 (on). @@ -2758,20 +2779,6 @@ Import user data unregistered SEI if available into output. Default is 0 (off). @item mb_info @var{boolean} Set mb_info data through AVFrameSideData, only useful when used from the API. Default is 0 (off). - -@item x264-params (N.A.) -Override the x264 configuration using a :-separated list of key=value -parameters. - -This option is functionally the same as the @option{x264opts}, but is -duplicated for compatibility with the Libav fork. - -For example to specify libx264 encoding options with @command{ffmpeg}: -@example -ffmpeg -i INPUT -c:v libx264 -x264-params level=30:bframes=0:weightp=0:\ -cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:\ -no-fast-pskip=1:subq=6:8x8dct=0:trellis=0 OUTPUT -@end example @end table Encoding ffpresets for common usages are provided so they can be used with the -- 2.34.1 --m+7LpteFT5Dc6SeM Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". --m+7LpteFT5Dc6SeM--